рдЧреНрд░реЗрдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕: рдкреВрд░реНрдг рд╢рдВрдХреБ рдХреА рдХрд╣рд╛рдиреА

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЕрдкрдиреЗ рдирдП рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдП, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╛рдирд╛ рдкреНрд▓рдЧрдЗрди, рдЬрд┐рд╕реЗ DevOpsProdigy KubeGraf рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЙрддреНрдкрд╛рджрди рдореЗрдВ ред рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдХрд╣рд╛рдиреА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдкреНрд▓рдЧ-рдЗрди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛, рд╣рдордиреЗ рдХреМрди рд╕реЗ рдЯреВрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╣реБрдПред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рднрд╛рдЧ реж - рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ: рд╣рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдорд┐рд▓рд╛?


рдЧреНрд░рд╛рдлрди рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рдВрдпреЛрдЧ рд╕реЗ рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ред рд╣рдорд╛рд░реА рдХрдВрдкрдиреА 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреА рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣реА рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рд╡рд┐рднрд┐рдиреНрди рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛, рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рдФрд░ рдЕрдиреБрднрд╡ рд╕рдВрдЪрд┐рдд рдХрд┐рдП рд╣реИрдВред рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рд╣рдордиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛: "рдХреНрдпрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рджреБрдИ рдЙрдкрдХрд░рдг рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ," рд╕реЗрдЯ рдФрд░ рднреВрд▓ рдЬрд╛рдУ "? .. k8s рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреНрд░рдЪрд╛рд░рдХ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ + рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред рдФрд░ рдЗрд╕ рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ рд╣реИ: рдкреНрд░реЛрдореЗрдерд┐рдпрд╕-рдСрдкрд░реЗрдЯрд░, рдбреИрд╢рдмреЛрд░реНрдбреНрд╕ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдорд┐рдХреНрд╕рд┐рди рдХрд╛ рд╕реЗрдЯ, рдЧреНрд░рд╛рдлрд╛рдирд╛-рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдРрдкред

рдЧреНрд░рд╛рдлрд╛рдирд╛-рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рдРрдк рдкреНрд▓рдЧрдЗрди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЛрдб-рдирд┐рд░реНрдпрд╛рддрдХ рдФрд░ рдХреНрдпреВрдм-рд╕реНрдЯреЗрдЯ-рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛: "рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдо рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВ?"

рд╣рдордиреЗ рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдХрд┐рди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ:

  • "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореИрдк" рдХрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди: рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЖрд╡реЗрджрдиреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╕реНрддреБрддрд┐, рдирд╛рдо рд╕реНрдерд╛рди, рддреИрдирд╛рддреА рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд ...;
  • "рддреИрдирд╛рддреА - рд╕реЗрд╡рд╛ (+ рдкреЛрд░реНрдЯ)" рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рдиред
  • рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рджреГрд╢реНрдпред
  • рдХрдИ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдирд╛: рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ k8s рдПрдк рд╕рд░реНрд╡рд░ред
  • рджреЛрдиреЛрдВ рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рднрд╛рдЧ (рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп, рдореЗрдореЛрд░реА, рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо, рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ), рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреА рдирд┐рдЧрд░рд╛рдиреА - рд╕реНрд╡рд╛рд╕реНрдереНрдп-рд╕реНрдерд┐рддрд┐ рдкреЙрдбреНрд╕, рдЙрдкрд▓рдмреНрдз рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЙрддреНрддреЛрд▓рди / рддреИрдпрд╛рд░ рдирдореВрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАред

рднрд╛рдЧ 1: рдЧреНрд░рд╛рдлрд╛рдирд╛ рдкреНрд▓рдЧрдЗрди рдХреНрдпрд╛ рд╣реИ?


рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, Grafana рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдПрдХ рдХреЛрдгреАрдп рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ, рдЬреЛ Grafan рдХреЗ рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ( /var/grafana/plugins/<your_plugin_name>/dist/mulule.js ) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ SystemJS рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ plugin.json рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ: рдирд╛рдо, рд╕рдВрд╕реНрдХрд░рдг, рдкреНрд▓рдЧрдЗрди рдХрд╛ рдкреНрд░рдХрд╛рд░, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА / рд╕рд╛рдЗрдЯ / рд▓рд╛рдЗрд╕реЗрдВрд╕, рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдВрдХ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред


module.ts


plugin.json

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ plugin.type = app рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИред Grafana рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рдкреИрдирд▓ : рд╕рдмрд╕реЗ рдЖрдо рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд▓рдЧ-рдЗрди - рдпрд╣ рдХрд┐рд╕реА рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдирд▓ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдбреИрд╢рдмреЛрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд : рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдХрдиреЗрдХреНрдЯрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕-рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕, рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕-рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕, рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ-рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕)ред
рдРрдк : рдПрдХ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдЖрдкрдХреЛ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлреНрд░рдВрдЯрдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ HTML рдкреГрд╖реНрда рдмрдирд╛рдПрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪреЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ (рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕, рдкреИрдирд▓) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдбреИрд╢рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдкреНрд░рдХрд╛рд░ = рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг ред

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

рднрд╛рдЧ 2: рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдирд╛


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

рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдорд┐рдирд┐рдХреНрдпреВрдм рд╣реИред рдЕрдЧрд▓рд╛ рдХрджрдо рдкреНрд░реЛрдореЗрдерд┐рдпрд╕-рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ + рдЧреНрд░рд╛рдлрд╛рдирд╛ рдмрдВрдбрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рдорд┐рдиреАрдХреНрдпреВрдм рдкрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕-рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИред рджреГрдврд╝рддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреГрдврд╝рддрд╛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ : рдЪрд╛рд░реНрдЯ / рдЧреНрд░рд╛рдлрд╛рдирд╛ / рдорд╛рдиреЛрдВ рдореЗрдВ рд╕рддреНрдп рдкреИрд░рд╛рдореАрдЯрд░ редyaml рдлрд╝рд╛рдЗрд▓, рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ PV рдФрд░ PVC рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ persistence.existingClaim рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ

рдЕрдВрддрд┐рдо рдорд┐рдиреАрдмреНрдпреВрдм рд▓реЙрдиреНрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

minikube start --kubernetes-version=v1.13.4 --memory=4096 --bootstrapper=kubeadm --extra-config=scheduler.address=0.0.0.0 --extra-config=controller-manager.address=0.0.0.0 minikube mount /home/sergeisporyshev/Projects/Grafana:/var/grafana --gid=472 --uid=472 --9p-version=9p2000.L 

рднрд╛рдЧ 3: рд╡рд┐рдХрд╛рд╕ рд╣реА


рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓

рдкреНрд▓рдЧрдЗрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ, рд╣рдордиреЗ рдЙрди рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдХреБрдмреЗрд░рдиреЗрдЯ рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ: рдлрд▓реА, рддреИрдирд╛рддреА, рдбреЗрдореЛрдВрд╕реЗрдЯ, рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ, рдЬреЙрдм, рдХреНрд░реЛрдирдЬреЙрдм, рд╕рд░реНрд╡рд┐рд╕, рдиреЛрдб, рдиреЗрдорд╕реНрдкреЗрд╕ред рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рд╕рд╛рдорд╛рдиреНрдп рдмреЗрд╕рдореЙрдбрд▓ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬреЛ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛, рд╡рд┐рдзреНрд╡рдВрд╕рдХ, рджреГрд╢реНрдпрддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдкреЙрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреАред

 import {Pod} from "./pod"; import {Service} from "./service"; import {BaseModel} from './traits/baseModel'; export class Deployment extends BaseModel{ pods: Array<Pod>; services: Array<Service>; constructor(data: any){ super(data); this.pods = []; this.services = []; } } 

рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдкрдардиреАрдп рддрд░реАрдХреЗ рд╕реЗ рдЙрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдореАрдЯреНрд░рд┐рдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдпрд╛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд╡рдВрдЯрди рдпреЛрдЧреНрдп рд╕реАрдкреАрдпреВ рдиреЛрдбреНрд╕ рдХрд╛ рд╕реНрд╡рд░реВрдкрд┐рдд рдЖрдЙрдЯрдкреБрдЯ:

 get cpuAllocatableFormatted(){ let cpu = this.data.status.allocatable.cpu; if(cpu.indexOf('m') > -1){ cpu = parseInt(cpu)/1000; } return cpu; } 

рдкреЗрдЬ

рд╣рдорд╛рд░реЗ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╢реБрд░реВ рдореЗрдВ рд╣рдорд╛рд░реЗ pluing.json рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ:



рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдореЗрдВ, рд╣рдореЗрдВ рдкреГрд╖реНрда TITLE рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рддрдм рд╕реНрд▓рдЧ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛); рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдШрдЯрдХ рдХрд╛ рдирд╛рдо (рдШрдЯрдХреЛрдВ рдХреА рд╕реВрдЪреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ); рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдВрдЪ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

рдкреГрд╖реНрда рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдШрдЯрдХ рдореЗрдВ, рд╣рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯрдЕрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╡рд╣рд╛рдВ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде HTML рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЕрдВрджрд░, рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╣рдо 2 рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЛрдгреАрдп рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ:

  • backendSrv - рдПрдХ рд╕реЗрд╡рд╛ рдЬреЛ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдПрдкреА-рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ;
  • datasourceSrv - рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдЬреЛ рдЖрдкрдХреЗ Grafana рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╕рднреА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .getAll () рд╡рд┐рдзрд┐ - рд╕рднреА рд╕реНрдерд╛рдкрд┐рдд рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд'рдУрд╡ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддреА рд╣реИ;ред (<name>) - рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреА рдЖрд╡реГрддреНрддрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред







рднрд╛рдЧ 4: рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд


рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╣реИ: рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЬреЗрдПрд╕, рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЬреЗрд╕рдиред рдкреНрд░рдХрд╛рд░ = рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕-рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕) рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ, рдЬрд┐рд╕реЗ рд╣рдо рд╕реАрдзреЗ рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдбрд┐рд╕реНрдЯ / рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ / *) рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдпрд╣ рднреА рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ config.html рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ configCtrl рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИ рдЬреЛ рдХрд┐ рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреЗрдЬ рдФрд░ рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, KubeGraf рдкреНрд▓рдЧрдЗрди рдореЗрдВ, рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИрдВ (рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ ):

  • k8s рдПрдкрд┐-рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ (рдирд╛рдо рд╕реНрдерд╛рди рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдкрд░рд┐рдирд┐рдпреЛрдЬрди ...)
  • рдкреНрд░реЛрдореЗрдерд┐рдпрд╕-рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ (рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдкреГрд╖реНрдареЛрдВ рдФрд░ рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдзред
  • рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕реНрдерд┐рд░ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ (рд░рд┐рдлреНрд░реЗрд╢ рд░реЗрдЯ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде)ред
  • рдЧреНрд░рд╛рдлреНрдЯрд╛рдирд╛-рдбреИрд╢рдмреЛрд░реНрдбреНрд╕ (.metriFindQuery () рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдз







  • рдЕрдВрддрд┐рдо k8s рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред


 testDatasource(){ let url = '/api/v1/namespaces'; let _url = this.url; if(this.accessViaToken) _url += '/__proxy'; _url += url; return this.backendSrv.datasourceRequest({ url: _url, method: "GET", headers: {"Content-Type": 'application/json'} }) .then(response => { if (response.status === 200) { return {status: "success", message: "Data source is OK", title: "Success"}; }else{ return {status: "error", message: "Data source is not OK", title: "Error"}; } }, error => { return {status: "error", message: "Data source is not OK", title: "Error"}; }) } 

рдПрдХ рдЕрд▓рдЧ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ, рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рддрдВрддреНрд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░, рд╣рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Grafana рдШрдЯрдХ - datasourceHttpSettings рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдпреВрдЖрд░рдПрд▓ рдФрд░ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг / рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕: рд▓реЙрдЧрд┐рди-рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ / рдХреНрд▓рд╛рдЗрдВрдЯ-рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ http рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╡рд╛рд╣рдХ рдЯреЛрдХрди (k8s рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдереЛрдбрд╝рд╛ "рд░рд╛рд╕рд╛рдпрдирд┐рдХ" рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк Grafana рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд "рдкреНрд▓рдЧрдЗрди рд░реВрдЯ" рддрдВрддреНрд░ ( рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдкрд░ рдЕрдзрд┐рдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, рд╣рдо рд░реВрдЯрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдЪрд┐рдкрдХрд╛рдП рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдпреВрдЖрд░рдПрд▓, рдбреЗрдЯрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП jsonData рдФрд░ SecureJsonData рдлрд╝реАрд▓реНрдб (рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдпрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП) рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдлреЙрд░реНрдо / __ рдкреНрд░реЙрдХреНрд╕реА / рдПрдкреАрдЖрдИ / v1 / рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдлреЙрд░реНрдо рдХреЗ urx рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде <your_k8s_api_url> / api / v1 / рдирд╛рдорд╕реНрдерд╛рди: рд╡рд╛рд╣рдХ рд╢реАрд░реНрд╖рд▓реЗрдЦред





рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, k8 рдХреЗ рдПрдкреА-рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рднрд╛рдЧ 5: рд░рд┐рд▓реАрдЬрд╝




рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ Grafana рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред Grafana grafana.com/grafana/plugins рдкрд░ рдЙрдкрд▓рдмреНрдз рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ

рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ PR рдХреЛ рдкреБрди: рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рдЬрд╣рд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, url рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдФрд░ рдХрдорд┐рдЯ рдХрдорд┐рдЯ рдХрд╛ рдПрдХ рд╣реИрд╢ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдХреА рдПрдХ рдЕрджреНрднреБрдд рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:



рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ Readme.md, Changelog.md рдФрд░ plugin.json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд▓рдЧрдЗрди рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

рднрд╛рдЧ 6: рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рд╣рдордиреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдФрд░ рдЕрдм рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕рд╣реА рдирд┐рдЧрд░рд╛рдиреА рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, UX рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╢реБрд░реВрдЖрдд, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдЖрдЗрд╕рд╣реБрдИ рд╕реЗ рдЧреАрдердм рдкрд░ (рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдореБрджреНрджрд╛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА рд╣реИ) рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреА :-))ред

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

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

Source: https://habr.com/ru/post/hi474500/


All Articles