рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

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

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

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

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

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

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

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

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

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕
рдореЙрдбреНрдпреВрд▓.ts

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕
рдкреНрд▓рдЧрдЗрди.json

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

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

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕
рдЯрд╛рдЗрдк=рдРрдк рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрднрд░рддрд╛рдПрдБ.

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

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

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

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

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

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;
}

рдкреЗрдЬ

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

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

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

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

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

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

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

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

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"};
       })
}

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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧреНрд░рд╛рдлрд╛рдирд╛ "рдкреНрд▓рдЧрдЗрди рд░реВрдЯреНрд╕" рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ)ред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреГрд╖реНрда). рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рд╕реНрд░реЛрдд рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ, рд╣рдо рд░реВрдЯрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рд╣реЗрдбрд░ рдпрд╛ рдпреВрдЖрд░рдПрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ jsonData рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рддJsonData рдлрд╝реАрд▓реНрдб рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлреЙрд░реНрдо рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ рдЯреЛрдХрди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЬреИрд╕реЗ рдкреНрд░рд╢реНрди /__рдкреНрд░реЙрдХреНрд╕реА/рдПрдкреАрдЖрдИ/рд╡реА1/рдиреЗрдорд╕реНрдкреЗрд╕реЗрд╕ рдлреЙрд░реНрдо рдХреЗ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
/api/v8/namespaces рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде: рдмрд┐рдпрд░рд░ рд╣реЗрдбрд░ред

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, k8s рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдкрд╣реБрдВрдЪ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдЖрдк рдпрд╣рд╛рдВ рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдкреНрд▓рдЧрдЗрди рд╕реНрд░реЛрдд рдХреЛрдб.

рднрд╛рдЧ 5: рд░рд┐рд╣рд╛рдИ

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

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

рдЖрдкрдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдЯреЛрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдпрд╣ рднрдВрдбрд╛рд░рд░реЗрдкреЛ.рдЬреЗрд╕рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝рдХрд░:

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

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

рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдЖрдкрдХреЛ рдПрдХ рдЕрджреНрднреБрдд рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬреИрд╕реЗ:

рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рд┐рдХрд╛рд╕: рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

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

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

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

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

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

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

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