рдЬрдЯрд┐рд▓ рдЕрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдХрд╛рдоред рдпрд╛ Balerter рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдЬрдЯрд┐рд▓ рдЕрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдХрд╛рдоред рдпрд╛ Balerter рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЕрд▓рд░реНрдЯ рдкрд╕рдВрдж рд╣реЛрддреЗ рд╣реИрдВ.

рдирд┐рдГрд╕рдВрджреЗрд╣, рдЬрдм рдХреБрдЫ рдШрдЯрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реЛ (рдпрд╛ рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ) рддреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдмреИрда рдХрд░ рдЧреНрд░рд╛рдлрд╝ рджреЗрдЦреЗрдВ рдФрд░ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

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

рд╣рдордиреЗ, рдЕрдкрдиреА рдХрдВрдкрдиреА рдореЗрдВ, рддрдм рддрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рд╣рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛, рдпрд╛, рдмрд▓реНрдХрд┐, рдЬрдЯрд┐рд▓, рд╕рдордЧреНрд░ рдЕрд▓рд░реНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╣рдо рдЬреЛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рд╣рдордиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдХрдЯреМрддреА рд╕реЗ рдиреАрдЪреЗ рд╣реИред рдЯреАрдПрд▓рдбреАрдЖрд░: рдЗрд╕ рддрд░рд╣ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдордиреЗ рдЖрдпрд╛ Balerter

рдХрд╛рдлреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣рдо рдЧреНрд░рд╛рдлрд╛рдирд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЕрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреЗ рд╕реЗ рд░рд╣реЗред рд╣рд╛рдБ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ. рдЕрд▓рд░реНрдЯрдореИрдиреЗрдЬрд░ рдЬреИрд╕реЗ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╣рдореЗрд╢рд╛ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдФрд░ рд╣рдордиреЗ рднреА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рдУрд░ рджреЗрдЦрд╛ред рдФрд░ рдлрд┐рд░, рдзреАрд░реЗ-рдзреАрд░реЗ, рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рдЪрд╛рд╣рддреЗ рдереЗред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд╛рд░реНрдЯ рдореЗрдВ XX% рдХреА рдЧрд┐рд░рд╛рд╡рдЯ/рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ рдФрд░ рдПрдо рдШрдВрдЯреЗ рдХреА рдкрд┐рдЫрд▓реА рдЕрд╡рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрди рдорд┐рдирдЯ рддрдХ рд░рд╣рд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдпрд╛ рдЕрд▓рд░реНрдЯрдореИрдиреЗрдЬрд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред (рдпрд╛ рд╢рд╛рдпрдж рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЕрднреА рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛)

рдЪреАрдЬреЗрдВ рддрдм рдФрд░ рднреА рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рддрд░реНрдХ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреАрд╡рдВрдд рдЙрджрд╛рд╣рд░рдг:

рд╣рдо рджреЛ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХреЗ рдХреБрдЫ рдбреЗрдЯрд╛ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрд▓рд░реНрдЯ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред рд╕рдВрдХреЗрдд рджреЗрдВ рдпрд╛ рд░рджреНрдж рдХрд░реЗрдВ

рд╣рдордиреЗ рдЕрдкрдиреЗ рдирд┐рд░реНрдгрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реА рдЗрдЪреНрдЫрд╛рдПрдБ рдЬрдорд╛ рдХрд░ рд▓реА рд╣реИрдВред рдФрд░ рдлрд┐рд░ рд╣рдордиреЗ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ/рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдкрд╣рд▓реА рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬреЛ рдЕрднреА рддрдХ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред

  • рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рддрдХ рдкрд╣реБрдВрдЪреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕, рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ

  • рд╡рд┐рднрд┐рдиреНрди рдЪреИрдирд▓реЛрдВ - рдЯреЗрд▓реАрдЧреНрд░рд╛рдо, рд╕реНрд▓реИрдХ, рдЖрджрд┐ рдХреЛ рдЕрд▓рд░реНрдЯ рднреЗрдЬреЗрдВред

  • рд╕реЛрдЪрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореБрдЭреЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рд┐рдП рдереА

  • рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛

  • рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрд╕рд╛рди рдЕрджреНрдпрддрди

  • рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд╕реЗрд╡рд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛

рдпрд╣ рд╕реВрдЪреА рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдмрд╣реБрдд рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИред рдХреБрдЫ рдмрд┐рдВрджреБ рдмрджрд▓ рдЧрдпреЗ, рдХреБрдЫ рдЦрд╝рддреНрдо рд╣реЛ рдЧрдпреЗред рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реИ.

рджрд░рдЕрд╕рд▓, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмреИрд▓рд░рдЯрд░ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╢реБрд░реВ рд╣реБрдЖред

рдЬрдЯрд┐рд▓ рдЕрд▓рд░реНрдЯ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдХрд╛рдоред рдпрд╛ Balerter рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдЖрдЦрд╝рд┐рд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рд╣рд╛рдВ, рдмрд┐рд▓реНрдХреБрд▓, рдпрд╣ рдЕрдВрдд рдирд╣реАрдВ рд╣реИред рдЙрддреНрдкрд╛рдж рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрдИ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдореИрдВ рдмрд╕ рдЖрдЬ рд╣реА рд░реБрдХреВрдВрдЧрд╛)

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдЖрдк рд▓реБрдЖ рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ (рдкреНрд░реЛрдореЗрдерд┐рдпрд╕, рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕, рдЖрджрд┐ рдХреЛ)ред рдЖрдк рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрд▓рд░реНрдЯ рдЪрд╛рд▓реВ/рдмрдВрдж рдХрд░реЗрдВред Balerter рд╕реНрд╡рдпрдВ рдЙрди рдЪреИрдирд▓реЛрдВ рдХреЛ рдПрдХ рд╕реВрдЪрдирд╛ рднреЗрдЬреЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ (рдИрдореЗрд▓, рдЯреЗрд▓реАрдЧреНрд░рд╛рдо, рд╕реНрд▓реИрдХ, рдЖрджрд┐)ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╕ рдЗрддрдирд╛ рд╣реА)

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдирд╛ рд╕рд░реНрд╡реЛрддреНрддрдо рд╣реИ:

-- @interval 10s
-- @name script1

local minRequestsRPS = 100

local log = require("log")
local ch1 = require("datasource.clickhouse.ch1")

local res, err = ch1.query("SELECT sum(requests) AS rps FROM some_table WHERE date = now()")
if err ~= nil then
    log.error("clickhouse 'ch1' query error: " .. err)
    return
end

local resultRPS = res[1].rps

if resultRPS < minResultRPS then
    alert.error("rps-min-limit", "Requests RPS are very small: " .. tostring(resultRPS))
else
    alert.success("rps-min-limit", "Requests RPS ok")
end 

рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

  • рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рд░ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

  • рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рдмрддрд╛рдПрдВ (рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП)

  • рдЖрдЙрдЯрдкреБрдЯ рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

  • рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ ch1 (рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

  • рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ

  • рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рд▓реЙрдЧ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВ

  • рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗ рдХрд░реЗрдВ (рдПрдХ рдЬреАрд╡рдВрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдпрд╣ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ)

  • рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдЕрд▓рд░реНрдЯ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ rps-min-limit

  • рдпрджрд┐ рдЪреЗрддрд╛рд╡рдиреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА

рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИ. рд╣рд╛рд▓рд╛рдБрдХрд┐, рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдлреА рд▓рдВрдмреА рдФрд░ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рднреНрд░рдорд┐рдд рд╣реЛрдирд╛ рдФрд░ рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЗрдЪреНрдЫрд╛ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛ рдЧрдИ рд╣реИ - рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреАред рдФрд░ рд╕рдВрд╕реНрдХрд░рдг v0.4.0 рдореЗрдВ рдпрд╣ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред

рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рдг:

-- @test script1
-- @name script1-test

test = require('test')

local resp = {
    {
        rps = 10
    }
} 

test.datasource('clickhouse.ch1').on('query', 'SELECT sum(requests) AS rps FROM some_table WHERE date = now()').response(resp)

test.alert().assertCalled('error', 'rps-min-limit', 'Requests RPS are very small: 10')
test.alert().assertNotCalled('success', 'rps-min-limit', 'Requests RPS ok')

рдХреНрд░рдорд╢рдГ:

  • рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рдмрддрд╛рдПрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ

  • рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдирд╛рдо (рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП)

  • рдкрд░реАрдХреНрд╖рдг рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

  • рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ch1

  • рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрд▓рд░реНрдЯ (рддреНрд░реБрдЯрд┐) рдЖрд░рдкреАрдПрд╕-рдорд┐рди-рд▓рд┐рдорд┐рдЯ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрд░рдкреАрдПрд╕-рдорд┐рди-рд▓рд┐рдорд┐рдЯ рдЕрд▓рд░реНрдЯ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╕рдлрд▓рддрд╛)

Balerter рдФрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдмреИрд▓реЗрдЯрд░ рдХреМрд╢рд▓ рдХреЛ рдЫреВрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕рдм рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ https://balerter.com

  • рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

    • рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕

    • postgres

    • MySQL

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

    • рд▓реЛрдХреА

  • рдЪреИрдирд▓реЛрдВ рдХреЛ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬреЗрдВ

    • рдвреАрд▓рд╛

    • рддрд╛рд░

    • syslog

    • рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ (рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдпреВрдЖрдИ рд╕реВрдЪрдирд╛рдПрдВ)

    • рдИрдореЗрд▓

    • рдХрд▓рд╣

  • рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдПрдВ, рдЫрд╡рд┐ рдХреЛ S3 рд╕рдВрдЧрдд рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ (рдЪрд┐рддреНрд░реЛрдВ рд╕рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг)

  • рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рд╡реИрд╢реНрд╡рд┐рдХ рдХреБрдВрдЬреА/рдореВрд▓реНрдп рднрдВрдбрд╛рд░рдг

  • рд▓реБрдЖ рдореЗрдВ рдЕрдкрдиреА рдЦреБрдж рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд▓реБрдЖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ json, csv рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ)

  • рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ (рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)

  • рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЕрднреА рддрдХ рдЙрддрдирд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣реЗрдВрдЧреЗ)

  • рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ

рдЖрдк рдФрд░ рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╣рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреНрд░реЙрди. рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг v1.0.0 рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдореИрдВ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╡рд┐рддрд░рдг рдЪреИрдирд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ MongoDB рдХреЛ рдорд┐рд╕ рдХрд░реЗрдЧрд╛ред рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд▓реЛрдЪрджрд╛рд░ рдЦреЛрдЬ. рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдкрд░ рдПрд╕рдПрдордПрд╕ рднреЗрдЬреЗрдВ рдФрд░/рдпрд╛ рдХреЙрд▓ рдХрд░реЗрдВред рд╣рдо рди рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ, рдмрд▓реНрдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдФрд░ рдмреЗрд╣рддрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдХреЛ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рди рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ) рдпрд╣рд╛рдВ рд╣рдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рд╕рд╛рдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдореБрджрд╛рдп рдХреА рдорджрдж рдХрд░рдирд╛

рдЕрдВрдд рдореЗрдВ

рд╣рдо рдкреНрд░рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ Balerter рдпрд╣ рдореЗрд░реЗ рдкрд╛рд╕ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рд╣реИред рджрд░реНрдЬрдиреЛрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдорд╛рд░реЗ рдорди рдХреА рд╢рд╛рдВрддрд┐ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рддреА рд╣реИрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдФрд░ рдЖрдкрдХреЗ рдЕрдВрдХ рдФрд░ рдкреАрдЖрд░ рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ