Grafana: рдлрд╝реАрдЪрд░: рд░рдВрдЧ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╢реВрдиреНрдп рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЬреБрд▓ре░ 2015  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: grafana/grafana

рд╕рд┐рдВрдЧрд▓рд╕реНрдЯреИрдЯ рдкреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╢реВрдиреНрдп рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдкреИрдирд▓ рдХреЛ рд╢реВрдиреНрдп рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд░рдВрдЧрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ OR рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде null рд▓рд┐рдП 0 рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: exression OR on() vector(0) рдЕрдЧрд░ рдореАрдЯреНрд░рд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рддреЛ 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред @pdf @torkelo

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдЖрдк рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдордирд▓ рдлрд╝рдВрдХреНрд╢рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореЗрд░реЗ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдЕрднреА рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рднрд░рдг рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред

рдЬреЛ рд╣реИ?

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕

рдХреНрдпрд╛ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рд░реНрдп/рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ? рдореБрдЭреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ)

рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЪрдпрди: http://prometheus.io/docs/querying/functions/

рдЧреНрд░рд╛рдлрд╛рдирд╛ 2.1 рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рд╢реВрдиреНрдп' рдорд╛рдиреЛрдВ рдХреЛ 0 рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрд░рдВрдЧ рдХрд╛ рд╕рдВрдмрдВрдз рд╣реИ (рднрд▓реЗ рд╣реА рдирд▓ рдХреЛ # 1166 рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ)ред

рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрджрд┐ рдирд┐рдЪрд▓рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк 0/1/3 рдкрд░ рд╣рд░реЗ/рдирд╛рд░рдВрдЧреА/рд▓рд╛рд▓ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рдпрд╛рдиреА рдорд╛рди> 3 рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╢реВрдиреНрдп рднреА рд▓рд╛рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рддреЛ рдлрд┐рд░ рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рд╣рд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рддрд░реНрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд▓рд╛рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЗрд╕реЗ #1319 рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдФрд░ рдРрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдХреЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рде рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрдХреАрдирди рдЕрдзрд┐рдХ рдмреЛрдЭрд┐рд▓ рд╣реИ)ред

@torkelo рдореИрдВ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдмрдЧ рдХрд╣рдиреЗ рддрдХ рдЬрд╛рдКрдВрдЧрд╛: рдЬрдм рдореЗрд░рд╛ рдПрдХ рдореЙрдирд┐рдЯрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреЛрдб рдСрдлрд╝рд▓рд╛рдЗрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓реЛрдб рдФрд╕рдд рд░рд┐рдЯрд░реНрди рдХреА рдХреНрд╡реЗрд░реА рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЪреВрдВрдХрд┐ рд╕рд┐рдВрдЧрд▓рд╕реНрдЯреИрдЯ рдкреИрдирд▓ рд╢реВрдиреНрдп рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдкреИрдирд▓ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ "рдПрди/рдП" рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рд▓ рдпрд╛ рд░рдВрдЧрд╣реАрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдзрд┐рдорд╛рдирддрдГ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред


рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкрд╣рд▓реЗ (#1130) рдореМрдЬреВрдж рдереА, рд▓реЗрдХрд┐рди cc21c66b3a128ea680be2e491cb89f8da90b2677 рдореЗрдВ рд╣рдЯрд╛ рджреА рдЧрдИ рдереАред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЪрд░реНрдЪрд╛ рдХреЛ #резрезрейреж рдкрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

+1 рдореИрдВ @n-st рдФрд░ @feliksik рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ: рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░рд╛ рдбреИрд╢рдмреЛрд░реНрдб N/A рдХреЗ рд▓рд┐рдП 'рд▓рд╛рд▓' рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ N/A рдХрд╛ рдЕрд░реНрде рдХреЛрдИ рдбреЗрдЯрд╛/рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдмрд┐рдирд╛ рд░рдВрдЧ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ OR рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде null рд▓рд┐рдП 0 рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: exression OR on() vector(0) рдЕрдЧрд░ рдореАрдЯреНрд░рд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рддреЛ 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред @pdf @torkelo

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ TSDB рдмреИрдХрдПрдВрдб рдХреЗ рдкрд╛рд╕ рдХреНрд╡реЗрд░реА рдореЗрдВ рдирд▓ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ

@grobie

рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ OR рдСрдкрд░реЗрдЯрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╡реНрдпрдВрдЬрдХ рд╢реВрдиреНрдп рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЖрдВрдХрдбрд╝реЗ рдкреГрд╖реНрда рдореЗрдВ рдпрд╣ рд╢реВрдиреНрдп рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реВрдиреНрдп-рд╢реВрдиреНрдп рдореАрдЯреНрд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрдИ рдорд╛рди рд╣реЛрдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА рдЬрд╛рдПрдЧреА: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рди рдФрд░ {} рдЖрдкрдХреЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ?

@boeboe рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдЕрдкрдиреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрдкрдбреЗрдЯ рдХреАред рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡реНрдпрд╛рдЦреНрдпрд╛: рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд▓реЗрдмрд▓ рдорд┐рд▓рд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ expression рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ vector(0) рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, on() рдЬреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рд▓реЗрдмрд▓ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

@grobie рдЖрдкрдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ on() рдСрдкрд░реЗрдЯрд░ (https://prometheus.io/docs/querying/operators) рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдХреНрд╡реЗрд░реА рд╣реИ:
counter_services_active_sessions_responses_4xx_total{kubernetes_namespace="dev-appservicebase"} OR vector(0)

рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдиреЗ HTTP 4xx рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рд▓реМрдЯрд╛ рджреА рд╣реИрдВ)ред рдЕрднреА рдХреНрд╡реЗрд░реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2 рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ:

counter_services_active_sessions_responses_4xx_total{instance="172.24.27.130:8081",job="kubernetes-pods",kubernetes_namespace="dev-appservicebase",kubernetes_pod_name="active-sessions-dp-3210291495-nw9n7",kubernetes_pod_node_name="рдиреЛрдб-172-16 -24-24",pod_template_hash="3210291495",type="active-session-type"} 1173
{} 0

@grobie рдиреЗ рдореЗрд░реА рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛, рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдиреЗ рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ MySQL рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреНрд╡реЗрд░реА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ?

@TheFrogDaddy рдЬрдм рдЖрдк рдФрд░/рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@TheFrogDaddy рдЬрдм рдЖрдк рдФрд░/рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирдорд╕реНрддреЗ, рдЗрддрдиреА рдЬрд▓реНрджреА рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА:

SELECT $__timeGroup(updated, '1h', 0) AS time, COALESCE(SUM(1),0) as value, 'Errors' AS metric FROM mytable WHERE $__timeFilter(updated) AND error_message IS NOT NULL GROUP BY 1;

рдФрд░ рдЗрд╕

SELECT $__timeGroup(updated, '1h', 0) AS time, CASE ISNULL(SUM(1)) WHEN TRUE THEN 0 ELSE SUM(1) END AS value, 'Errors' AS metric FROM myTable WHERE $__timeFilter(updated) AND error_message IS NOT NULL GROUP BY 1;

рдзрдиреНрдпрд╡рд╛рдж

@TheFrogDaddy рдЖрдк sum(1) рд╕рд╛рде рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреА рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╛рдЗрдЯ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЯреИрдЧ mysql рдкрд░ рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдХреГрдкрдпрд╛ рд╡рд╣рд╛рдВ рдПрдХ рдирдпрд╛ рд╡рд┐рд╖рдп рдЦреЛрд▓реЗрдВ рдФрд░ рдЖрдк рдореБрдЭреЗ @ + mefraimsson . рджреНрд╡рд╛рд░рд╛ рдкрд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ OR рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде null рд▓рд┐рдП 0 рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: exression OR on() vector(0) рдЕрдЧрд░ рдореАрдЯреНрд░рд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рддреЛ 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред @pdf @torkelo

рд╕рдХреНрд░рд┐рдп рддрддреНрдХрд╛рд▓ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ !!

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ OR рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде null рд▓рд┐рдП 0 рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: exression OR on() vector(0) рдЕрдЧрд░ рдореАрдЯреНрд░рд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рддреЛ 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред @pdf @torkelo

рдЕрдЪреНрдЫрд╛ред рднрд╛рдИ

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ OR рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде null рд▓рд┐рдП 0 рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: exression OR on() vector(0) рдЕрдЧрд░ рдореАрдЯреНрд░рд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рддреЛ 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред @pdf @torkelo

рдпрд╣ by (label) рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ:

expression OR up*0
sum by (label) (data_metric) - sum by (label) (nodata_metric or up*0)

рдпрд╣рд╛рдБ рдореЗрд░рд╛ 2 рд╕реЗрдВрдЯ рд╣реИ

sum(expression) by (label) -
sum(expression offset $__interval OR expression * 0) by (label)

рдпрд╣ рдореБрдЭреЗ рд▓рдХреНрд╖рд┐рдд рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ 2 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЕрдВрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЯрд╛рдЗрдорд░реА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ рдорд╛рди 0 . рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Azef1 picture Azef1  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ADeane6 picture ADeane6  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

royemmerich picture royemmerich  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SATHVIKRAJU picture SATHVIKRAJU  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tuxinaut picture tuxinaut  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ