āĻšāĻžāĻ āϏāĻŦ! āĻāϝāĻŧā§āĻ āĻŽāĻžāϏ āĻāĻā§, āĻāĻŽāϰāĻž āĻā§āĻĒāĻžāĻĻāύ⧠āĻāĻŽāĻžāĻĻā§āϰ āύāϤā§āύ āĻāĻĒā§āύ-āϏā§āϰā§āϏ āĻĒā§āϰāĻā§āĻā§āĻ āĻāĻžāϞ⧠āĻāϰā§āĻāĻŋ - āĻā§āĻŦāĻžāϰāύā§āĻāϏ āύāĻŋāϰā§āĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻā§āϰāĻžāĻĢāĻžāύāĻž-āĻĒā§āϞāĻžāĻāĻāύ, āϝāĻžāĻā§ āĻāĻŽāϰāĻž āĻŦāϞā§āĻāĻŋāϞāĻžāĻŽ . āĻĒā§āϞāĻžāĻāĻāύ āϏā§āϰā§āϏ āĻā§āĻĄ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ . āĻāĻŦāĻ āĻāĻ āύāĻŋāĻŦāύā§āϧā§, āĻāĻŽāϰāĻž āĻā§āĻāĻžāĻŦā§ āĻĒā§āϞāĻžāĻāĻāύ āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ, āĻāĻŽāϰāĻž āĻā§ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻļ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āĻāĻŽāϰāĻž āĻā§ āĻā§ āĻ
āϏā§āĻŦāĻŋāϧāĻžāϰ āϏāĻŽā§āĻŽā§āĻā§āύ āĻšāϝāĻŧā§āĻāĻŋ āϤāĻžāϰ āĻāϞā§āĻĒāĻāĻŋ āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻāĻžāĻ⧎ āĻāϞ⧠āϝāĻžāĻ!
āĻĒāĻžāϰā§āĻ 0 - āĻĒāϰāĻŋāĻāĻžāϝāĻŧāĻ: āĻāĻŽāϰāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ āĻŦāĻŋāύā§āĻĻā§āϤ⧠āĻĒā§āĻāĻāϞāĻžāĻŽ?
āĻā§āϰāĻžāĻĢāĻžāύā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻĒā§āϞāĻžāĻ-āĻāύ āϞā§āĻāĻžāϰ āϧāĻžāϰāĻŖāĻžāĻāĻŋ āĻĻā§āϰā§āĻāĻāύāĻžāĻā§āϰāĻŽā§ āĻāύā§āĻŽāĻā§āϰāĻšāĻŖ āĻāϰā§āĻāĻŋāϞāĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻŽā§āĻĒāĻžāύāĻŋ 10 āĻŦāĻāϰā§āϰāĻ āĻŦā§āĻļāĻŋ āϏāĻŽāϝāĻŧ āϧāϰ⧠āĻāĻāĻŋāϞāϤāĻžāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϏā§āϤāϰā§āϰ āĻāϝāĻŧā§āĻŦ-āĻĒā§āϰāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻāϰāĻā§āĨ¤ āĻāĻ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝā§, āĻāĻŽāϰāĻž āĻ āύā§āĻ āĻĻāĻā§āώāϤāĻž, āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻā§āϏ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āϏāĻŋāϏā§āĻā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻ āĻāĻŋāĻā§āĻāϤāĻž āĻ āϰā§āĻāύ āĻāϰā§āĻāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻŋāĻā§ āϏāĻŽāϝāĻŧā§ āĻāĻŽāϰāĻž āύāĻŋāĻā§āĻĻā§āϰāĻā§ āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰāϞāĻžāĻŽ: "āĻā§āĻŦāĻžāϰāύā§āĻāϏāĻā§ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŋ āĻā§āύ āĻāĻžāĻĻā§ āĻā§āϞ āĻāĻā§, āϝāĻžāϤ⧠āϤāĻžāϰāĻž āĻŦāϞā§, "āĻāĻāĻŋ āϏā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻā§āϞ⧠āϝāĻžāύ"?" āĻāĻŦāĻ āĻāĻ āϏā§āĻā§āϝāĻžāĻā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤ āϏāĻŽāĻžāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦā§, āĻŦāĻŋāĻāĻŋāύā§āύ āϧāϰāĻŖā§āϰ āϏāϰāĻā§āĻāĻžāĻŽā§āϰ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āϏā§āĻ āϰāϝāĻŧā§āĻā§: āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āĻ āĻĒāĻžāϰā§āĻāϰ, āĻā§āĻŦāĻžāϰāύā§āĻāϏ-āĻŽāĻŋāĻā§āϏāĻŋāύ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§āϰ āĻāĻāĻāĻŋ āϏā§āĻ, āĻā§āϰāĻžāĻĢāύāĻž-āĻā§āĻŦāĻžāϰāύā§āĻāϏ-āĻ ā§āϝāĻžāĻĒāĨ¤
Grafana-kubernetes-app āĻĒā§āϞāĻžāĻāĻāύāĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻŦāĻŋāĻāϞā§āĻĒ āĻŦāϞ⧠āĻŽāύ⧠āĻšāϝāĻŧā§āĻāĻŋāϞ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻāĻ āĻŦāĻāϰā§āϰāĻ āĻŦā§āĻļāĻŋ āϏāĻŽāϝāĻŧ āϧāϰ⧠āϏāĻŽāϰā§āĻĨāĻŋāϤ āύāϝāĻŧ āĻāĻŦāĻ āĻāĻĒāϰāύā§āϤā§, āύā§āĻĄ-āϰāĻĒā§āϤāĻžāύāĻŋāĻāĻžāϰāĻ āĻāĻŦāĻ āĻāĻŋāĻāĻŦā§-āϏā§āĻā§āĻ-āĻāϰ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻž āĻāĻžāύ⧠āύāĻžāĨ¤ āĻŽā§āĻā§āϰāĻŋāĻā§āϏ āĻāĻŦāĻ āĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻāĻŽāϰāĻž āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋāϞāĻžāĻŽ: "āĻāĻŽāĻžāĻĻā§āϰ āĻāĻŋ āύāĻŋāĻā§āĻĻā§āϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āĻāϝāĻŧāĻž āĻāĻāĻŋāϤ āύāϝāĻŧ?"
āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϞāĻžāĻāĻāύ⧠āĻāĻŽāϰāĻž āĻā§āύ āϧāĻžāϰāĻŖāĻžāĻā§āϞāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋ:
- "āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻŽā§āϝāĻžāĻĒ" āĻāϰ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύ: āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϰ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻāĻĒāϏā§āĻĨāĻžāĻĒāύāĻž, āύāĻžāĻŽāϏā§āĻĨāĻžāύ, āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻā§āώā§āĻ ā§āĻŦāĻĻā§āϧâĻ;
- āϞāĻŋāĻā§āĻā§āϰ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύ āϝā§āĻŽāύ "āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ - āϏāĻžāϰā§āĻāĻŋāϏ (+āĻĒā§āϰā§āĻ)"āĨ¤
- āĻā§āϞāĻžāϏā§āĻāĻžāϰ āύā§āĻĄ āĻĻā§āĻŦāĻžāϰāĻž āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻŦāĻŋāϤāϰāĻŖā§āϰ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύāĨ¤
- āĻŦāĻŋāĻāĻŋāύā§āύ āĻāϤā§āϏ āĻĨā§āĻā§ āĻŽā§āĻā§āϰāĻŋāĻā§āϏ āĻāĻŦāĻ āϤāĻĨā§āϝ āϏāĻāĻā§āϰāĻš: āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ āĻāĻŦāĻ k8s āĻāĻĒāĻŋāĻāĻ āϏāĻžāϰā§āĻāĻžāϰāĨ¤
- āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻ āĻāĻļ (āĻĒā§āϰāϏā§āϏāϰā§āϰ āϏāĻŽāϝāĻŧ, āĻŽā§āĻŽāϰāĻŋ, āĻĄāĻŋāϏā§āĻ āϏāĻžāĻŦāϏāĻŋāϏā§āĻā§āĻŽ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ) āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϞāĻāĻŋāĻ - āĻĒāĻĄā§āϰ āϏā§āĻŦāĻžāϏā§āĻĨā§āϝ-āϏā§āĻĨāĻŋāϤāĻŋ, āĻāĻĒāϞāĻŦā§āϧ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāĻā§āϞāĻŋāϰ āϏāĻāĻā§āϝāĻž, āϏāĻā§āĻŦāϤāĻž/āĻĒā§āϰāϏā§āϤā§āϤāĻŋ-āĻĒā§āϰā§āĻŦā§āϰ āĻāϤā§āϤāϰāĻŖ āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝ āĻāĻāϝāĻŧāĻ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻāϰāĻžāĨ¤
āĻĒāĻžāϰā§āĻ 1: "āĻā§āϰāĻžāĻĢāύāĻžāϰ āĻāύā§āϝ āĻĒā§āϞāĻžāĻāĻāύ" āĻāĻŋ?
āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāϤ āĻĻā§āώā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, Grafana-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āĻšāϞ āĻāĻāĻāĻŋ āĻā§āĻŖāĻŋāĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻ āϝāĻž Grafana-āĻāϰ āĻĄā§āĻāĻž āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠āϏāĻāϰāĻā§āώāĻŋāϤ āĻĨāĻžāĻā§ (/var/grafana/plugins/ /dist/module.js) āĻāĻŦāĻ āĻāĻāĻāĻŋ SystemJS āĻŽāĻĄāĻŋāĻāϞ āĻšāĻŋāϏāĻžāĻŦā§ āϞā§āĻĄ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠āĻāĻāĻāĻŋ plugin.json āĻĢāĻžāĻāϞ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻāĻāύ āϏāĻŽā§āĻĒāϰā§āĻā§ āϏāĻŽāϏā§āϤ āĻŽā§āĻāĻž āϤāĻĨā§āϝ āϰāϝāĻŧā§āĻā§: āύāĻžāĻŽ, āϏāĻāϏā§āĻāϰāĻŖ, āĻĒā§āϞāĻžāĻāĻāύ āĻĒā§āϰāĻāĻžāϰ, āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ / āϏāĻžāĻāĻ / āϞāĻžāĻāϏā§āύā§āϏā§āϰ āϞāĻŋāĻā§āĻ, āύāĻŋāϰā§āĻāϰāϤāĻž āĻāϤā§āϝāĻžāĻĻāĻŋāĨ¤

module.ts

plugin.json
āĻāĻĒāύāĻŋ āϏā§āĻā§āϰāĻŋāύāĻļāĻā§ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻā§āĻā§āύ, āĻāĻŽāϰāĻž plugin.type = app āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āĻāĻŋāĨ¤ Grafana āĻāύā§āϝ āĻĒā§āϞāĻžāĻāĻāύ āϤāĻŋāύ āϧāϰāύā§āϰ āĻšāϤ⧠āĻĒāĻžāϰā§:
āĻĒā§āϝāĻžāύā§āϞ: āĻĒā§āϞāĻžāĻāĻāύāĻā§āϞāĻŋāϰ āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻžāϧāĻžāϰāĻŖ āϧāϰāύ - āĻŦāĻŋāĻāĻŋāύā§āύ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āϝā§āĻā§āύ āĻŽā§āĻā§āϰāĻŋāĻā§āϏ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞāĻžāĻāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϝāĻžāύā§āϞāĨ¤
āϤāĻĨā§āϝ āϏā§āϤā§āϰ: āϝā§āĻā§āύ⧠āĻĄā§āĻāĻž āĻā§āϏā§āϰ āĻĒā§āϞāĻžāĻ-āĻāύ āϏāĻāϝā§āĻāĻāĻžāϰ⧠(āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, Prometheus-datasource, ClickHouse-datasource, ElasticSearch-datasource)āĨ¤
āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ: āĻāĻāĻāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āϝāĻž āĻāĻĒāύāĻžāĻā§ Grafana-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻĢā§āϰāύā§āĻ-āĻāύā§āĻĄ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϤā§āϰāĻŋ āĻāϰāϤā§, āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ HTML āĻĒā§āώā§āĻ āĻžāĻā§āϞāĻŋ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĄā§āĻāĻž āϰā§āύā§āĻĄāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āĻĄā§āĻāĻžāϏā§āϰā§āϏ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ⧎ āĻ
āύā§āϝāĻžāύā§āϝ āϧāϰāύā§āϰ āĻĒā§āϞāĻžāĻāĻāύ (āĻĄā§āĻāĻžāϏā§āϰā§āϏ, āĻĒā§āϝāĻžāύā§āϞ) āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄāĻ āύāĻŋāϰā§āĻāϰāϤāĻž āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤

āĻāĻžāĻāĻĒ = āĻ
ā§āϝāĻžāĻĒ āϏāĻš āĻĒā§āϞāĻžāĻāĻāύ āύāĻŋāϰā§āĻāϰāϤāĻžāϰ āĻāĻĻāĻžāĻšāϰāĻŖ.
āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻž āĻšāĻŋāϏāĻžāĻŦā§, āĻāĻĒāύāĻŋ āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻŦāĻ āĻāĻžāĻāĻĒāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻāϝāĻŧāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻŦā§āĻā§ āύāĻŋāϝāĻŧā§āĻāĻŋ)āĨ¤ āĻāĻĒāύāĻŋ āϝ⧠āĻā§āύ⧠āϧāϰāύā§āϰ āĻšā§āϝāĻžāϞā§-āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ āĻĒā§āϞāĻžāĻāĻāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ : āĻāĻ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āĻĒā§āϰāĻŋ-āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻŦāĻŋāϞā§āĻĄāĻžāϰ āϏāĻš āĻĒā§āϰāĻā§āϰ āϏāĻāĻā§āϝāĻ āϏā§āĻāĻžāϰā§āĻāĻžāϰ-āĻĒā§āϝāĻžāĻ āϰāϝāĻŧā§āĻā§ (āĻāĻŽāύāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϞāĻžāĻāĻāύā§āϰ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāĻŽā§āϞāĻ āĻāĻĻāĻžāĻšāϰāĻŖāĻ āϰāϝāĻŧā§āĻā§)āĨ¤
āĻĒāĻžāϰā§āĻ 2: āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻĒāϰāĻŋāĻŦā§āĻļ āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāĻž
āĻĒā§āϞāĻžāĻāĻāύāĻāĻŋāϤ⧠āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻ āĻŦāĻļā§āϝāĻ, āĻāĻŽāĻžāĻĻā§āϰ āϏāĻŽāϏā§āϤ āĻĒā§āϰāĻžāĻ-āĻāύāϏā§āĻāϞ āĻāϰāĻž āϏāϰāĻā§āĻāĻžāĻŽ āϏāĻš āĻāĻāĻāĻŋ āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĻāϰāĻāĻžāϰ: āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ, āύā§āĻĄ-āϰāĻĒā§āϤāĻžāύāĻŋāĻāĻžāϰāĻ, āĻā§āĻŦā§-āϏā§āĻā§āĻ-āĻŽā§āĻā§āϰāĻŋāĻā§āϏ, āĻā§āϰāĻžāĻĢāĻžāύāĻžāĨ¤ āĻĒāϰāĻŋāĻŦā§āĻļāĻāĻŋ āĻĻā§āϰā§āϤ, āϏāĻšāĻā§ āĻāĻŦāĻ āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§ āϏā§āĻ āĻāĻĒ āĻāϰāĻž āĻāĻāĻŋāϤ āĻāĻŦāĻ āĻšāĻ-āϰāĻŋāϞā§āĻĄ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻā§āϰāĻžāĻĢāĻžāύāĻž āĻĄā§āĻāĻž āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰā§āϰ āĻŽā§āĻļāĻŋāύ āĻĨā§āĻā§ āϏāϰāĻžāϏāϰāĻŋ āĻŽāĻžāĻāύā§āĻ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤
āϏāĻŦāĻā§āϝāĻŧā§ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ, āĻāĻŽāĻžāĻĻā§āϰ āĻŽāϤā§, āĻā§āĻŦāĻžāϰāύā§āĻā§āϰ āϏāĻžāĻĨā§ āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāĻĒāĻžāϝāĻŧ . āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ āĻšāϞ āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āĻ āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ + āĻā§āϰāĻžāĻĢāĻžāύāĻž āĻŦāĻžāύā§āĻĄāĻŋāϞ āĻāύāϏā§āĻāϞ āĻāϰāĻžāĨ¤ āĻāĻŋāϤāϰ⧠āĻŽāĻŋāύāĻŋāĻā§āĻŦā§ āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āĻ āĻĒāĻžāϰā§āĻāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤāĻāĻžāĻŦā§ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻ āϧā§āϝāĻŦāϏāĻžāϝāĻŧ āϏāĻā§āώāĻŽ āĻāϰāϤā§, āĻāĻĒāύāĻžāĻā§ āĻ āĻŦāĻļā§āϝāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ āĻ āϧā§āϝāĻŦāϏāĻžāϝāĻŧ: āϏāϤā§āϝ āĻāĻžāϰā§āĻ/grafana/values.yaml āĻĢāĻžāĻāϞā§, āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ PV āĻāĻŦāĻ PVC āϝā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ persistence.existingClaim āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ⧠āĻāϞā§āϞā§āĻ āĻāϰā§āύ
āĻā§āĻĄāĻŧāĻžāύā§āϤ minikube āϏā§āĻāĻžāϰā§āĻāĻāĻĒ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻ āĻŽāϤ āĻĻā§āĻāĻžāϝāĻŧ:
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-āĻ āύāĻŋāϰā§āĻāϰāϤāĻž āĻŦāĻŋāĻāĻžāĻā§ āĻŦāϰā§āĻŖāĻŋāϤ āĻšāϝāĻŧā§āĻā§:

āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āώā§āĻ āĻžāϰ āĻāύā§āϝ āĻŦā§āϞāĻā§, āĻāĻŽāĻžāĻĻā§āϰ āĻ
āĻŦāĻļā§āϝāĻ PAGE NAME āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ (āĻāϰāĻĒāϰ āĻāĻāĻŋ āĻāĻāĻāĻŋ āϏā§āϞāĻžāĻā§ āϰā§āĻĒāĻžāύā§āϤāϰāĻŋāϤ āĻšāĻŦā§ āϝāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ āĻĒā§āώā§āĻ āĻžāĻāĻŋ āĻāĻĒāϞāĻŦā§āϧ āĻšāĻŦā§); āĻāĻ āĻĒā§āώā§āĻ āĻžāϰ āĻ
āĻĒāĻžāϰā§āĻļāύā§āϰ āĻāύā§āϝ āĻĻāĻžāϝāĻŧā§ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āύāĻžāĻŽ (āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āϤāĻžāϞāĻŋāĻāĻž module.ts āĻ āϰāĻĒā§āϤāĻžāύāĻŋ āĻāϰāĻž āĻšāϝāĻŧ); āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻā§āĻŽāĻŋāĻāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰ⧠āϝāĻžāϰ āĻāύā§āϝ āĻāĻ āĻĒā§āώā§āĻ āĻžāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāĻĒāϞāĻŦā§āϧ āĻāĻŦāĻ āϏāĻžāĻāĻĄāĻŦāĻžāϰā§āϰ āĻāύā§āϝ āύā§āĻāĻŋāĻā§āĻļāύ āϏā§āĻāĻŋāĻāϏāĨ¤
āĻĒā§āώā§āĻ āĻžāϰ āĻāύā§āϝ āĻĻāĻžāϝāĻŧā§ āĻāĻŽā§āĻĒā§āύā§āύā§āĻā§, āϏā§āĻāĻžāύ⧠āĻŽāĻžāϰā§āĻāĻāĻĒ āϏāĻš html āĻĢāĻžāĻāϞā§āϰ āĻĒāĻžāĻĨ āĻĒāĻžāϏ āĻāϰ⧠āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻāĻāϰāĻāϞ āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāύā§āĻā§āϰā§āϞāĻžāϰā§āϰ āĻāĻŋāϤāϰā§, āύāĻŋāϰā§āĻāϰāϤāĻž āĻāύāĻā§āĻāĻļāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§, āĻāĻŽāϰāĻž 2āĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻā§āĻŖāĻŋāĻ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻĒāϰā§āϝāύā§āϤ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ:
- backendSrv - āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻž āϝāĻž āĻā§āϰāĻžāĻĢāύāĻž āĻāĻĒāĻŋāĻāĻ-āϏāĻžāϰā§āĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§;
- datasourceSrv - āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻž āϝāĻž āĻāĻĒāύāĻžāϰ Grafana-āĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž āϏāĻŽāϏā§āϤ āĻĄā§āĻāĻžāϏā§āϰā§āϏā§āϰ āϏāĻžāĻĨā§ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠(āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, .getAll() āĻĒāĻĻā§āϧāϤāĻŋ - āϏāĻŽāϏā§āϤ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻĄā§āĻāĻžāϏā§āϰā§āϏā§āϰ āĻāĻāĻāĻŋ āϤāĻžāϞāĻŋāĻāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§; .get( ) - āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĄā§āĻāĻžāϏā§āϰā§āϏā§āϰ āĻāĻāĻāĻŋ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ āĻ āĻŦāĻā§āĻā§āĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤



āĻĒāĻžāϰā§āĻ 4: āĻĄāĻžāĻāĻž āϏā§āϰā§āϏ
Grafana-āĻāϰ āĻĻā§āώā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻĄā§āĻāĻžāϏā§āϰā§āϏ āĻšāϞ āĻ āύā§āϝ āϏāĻŽāϏā§āϤ āĻĒā§āϞāĻžāĻāĻāύāĻā§āϞāĻŋāϰ āĻŽāϤā§āĻ: āĻāĻāĻŋāϰ āύāĻŋāĻāϏā§āĻŦ module.js āĻāύā§āĻā§āϰāĻŋ āĻĒāϝāĻŧā§āύā§āĻ āϰāϝāĻŧā§āĻā§, āĻŽā§āĻāĻž āϤāĻĨā§āϝ āϏāĻš āĻāĻāĻāĻŋ plugin.json āĻĢāĻžāĻāϞ āϰāϝāĻŧā§āĻā§ā§ˇ āĻāĻžāĻāĻĒ = āĻ ā§āϝāĻžāĻĒ āϏāĻš āĻāĻāĻāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āĻĄā§āĻā§āϞāĻĒ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻŽāϰāĻž āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĄā§āĻāĻžāϏā§āϰā§āϏ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āĻĄā§āĻāĻžāϏā§āϰā§āϏ) āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻāĻāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ, āϝāĻž āĻāĻŽāϰāĻž āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠(dist/datasource/*) āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĻŦāĻž āύāĻŋāϰā§āĻāϰāϤāĻž āĻšāĻŋāϏāĻžāĻŦā§ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ . āĻāĻŽāĻžāĻĻā§āϰ āĻā§āώā§āϤā§āϰā§, āĻĄā§āĻāĻžāϏā§āϰā§āϏ āĻĒā§āϞāĻžāĻāĻāύ āĻā§āĻĄā§āϰ āϏāĻžāĻĨā§ āĻāϏā§āĨ¤ āĻāĻāĻāĻŋ config.html āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ ConfigCtrl āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻĨāĻžāĻāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āϝāĻž āĻĄā§āĻāĻžāϏā§āϰā§āϏ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĒā§āώā§āĻ āĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāϏā§āϰā§āϏ āĻāύā§āĻā§āϰā§āϞāĻžāϰ āϝāĻž āĻāĻĒāύāĻžāϰ āĻĄā§āĻāĻžāϏā§āϰā§āϏā§āϰ āϝā§āĻā§āϤāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§ā§ˇ
KubeGraf āĻĒā§āϞāĻžāĻāĻāύā§, āĻāĻāĻāĻžāϰ āĻāύā§āĻāĻžāϰāĻĢā§āϏā§āϰ āĻĒāϰāĻŋāĻĒā§āϰā§āĻā§āώāĻŋāϤā§, āĻĄā§āĻāĻžāϏā§āϰā§āϏ āĻšāϞ āĻāĻāĻāĻŋ kubernetes āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āϝāĻž āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰ⧠(āϏā§āϰā§āϏ āĻā§āĻĄ āĻāĻĒāϞāĻŦā§āϧ ):
- k8s api-āϏāĻžāϰā§āĻāĻžāϰ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻāύāĻž āĻšāĻā§āĻā§ (āύā§āĻŽāϏā§āĻĒā§āϏ, āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āϤāĻžāϞāĻŋāĻāĻž āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāĻā§āĻā§...)
- āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ-āĻĄā§āĻāĻžāϏā§āϰā§āϏā§āϰ āĻĒā§āϰāĻā§āϏāĻŋ āĻāϰāĻžāϰ āĻ āύā§āϰā§āϧ (āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āĻāύā§āϝ āĻĒā§āϞāĻžāĻāĻāύ āϏā§āĻāĻŋāĻāϏ⧠āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ āĻšāϝāĻŧ) āĻāĻŦāĻ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĒā§āĻ āĻāĻŦāĻ āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§ āĻĄā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻĢāϰā§āĻŽā§āϝāĻžāĻāĻŋāĻ āĻāϰāĻžāĨ¤
- āĻĒā§āϞāĻžāĻāĻāύā§āϰ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĒā§āώā§āĻ āĻžāĻā§āϞāĻŋāϤ⧠āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāϰāĻž (āĻāĻāĻāĻŋ āϏā§āĻ āϰāĻŋāĻĢā§āϰā§āĻļ āϰā§āĻ āϏāĻŽāϝāĻŧ āϏāĻš)āĨ¤
- āĻā§āϰāĻžāĻĢāĻžāύāĻž-āĻĄā§āϝāĻžāĻļāĻŦā§āϰā§āĻĄā§ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻļā§āĻ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāĻļā§āύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖ (āĻĒāĻĻā§āϧāϤāĻŋ .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-āĻāϰ āĻāύā§āϝ āĻĄāĻŋ āĻĢā§āϝāĻžāĻā§āĻā§ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāύā§āϝ, āĻāĻŽāĻžāĻā§ āĻāĻŋāĻā§āĻāĻž "āĻĒā§āϰāϤāĻžāϰāĻŖāĻž" āĻāϰāϤ⧠āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤
āĻāĻ āϏāĻŽāϏā§āϝāĻžāĻāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤā§, āĻāĻĒāύāĻŋ āĻ
āύā§āϤāϰā§āύāĻŋāϰā§āĻŽāĻŋāϤ āĻā§āϰāĻžāĻĢāĻžāύāĻž "āĻĒā§āϞāĻžāĻāĻāύ āϰā§āĻ" āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (āĻāϰ⧠) āĻāĻŽāĻžāĻĻā§āϰ āĻĄā§āĻāĻžāϏā§āϰā§āϏā§āϰ āϏā§āĻāĻŋāĻāϏā§, āĻāĻŽāϰāĻž āϰāĻžāĻāĻāĻŋāĻ āύāĻŋāϝāĻŧāĻŽā§āϰ āĻāĻāĻāĻŋ āϏā§āĻ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āϝāĻž āĻā§āϰāĻžāĻĢāĻžāύāĻž āĻĒā§āϰāĻā§āϏāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āĻĨāĻ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§āϰ āĻāύā§āϝ, āĻā§āĻŽāĻĒā§āϞā§āĻāĻŋāĻāϝāĻŧā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āϏāĻš āĻšā§āĻĄāĻžāϰ āĻŦāĻž url āϏā§āĻ āĻāϰāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āϰāϝāĻŧā§āĻā§, āϝ⧠āĻĄā§āĻāĻžāϰ āĻāύā§āϝ jsonData āĻāĻŦāĻ safeJsonData āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āĻĨā§āĻā§ āύā§āĻāϝāĻŧāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠(āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻž āĻāĻāĻžāϰ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦāĻž āĻā§āĻā§āύ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ)āĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§, āϝā§āĻŽāύ āĻĒā§āϰāĻļā§āύ /__proxy/api/v1/namespace āĻĢāϰā§āĻŽā§āϰ url-āĻ āĻĒā§āϰāĻā§āϏāĻŋ āĻāϰāĻž āĻšāĻŦā§
/api/v8/āύā§āĻŽāϏā§āĻĒā§āϏ āĻšā§āĻĄāĻžāϰ āϏāĻš āĻ
āύā§āĻŽā§āĻĻāύ: āĻŦāĻšāύāĻāĻžāϰā§āĨ¤


āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ, k8s api āϏāĻžāϰā§āĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻŽāύ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āϝā§āĻāĻžāύ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒāĻ āύāϝā§āĻā§āϝ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āϰāϝāĻŧā§āĻā§, āϝāĻž āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŽā§āϝāĻžāύāĻŋāĻĢā§āϏā§āĻ āϝāĻž āĻāĻĒāύāĻŋ āĻāϤā§āĻ āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ .
āĻĒāĻžāϰā§āĻ 5: āĻŽā§āĻā§āϤāĻŋ

āĻāĻāĻŦāĻžāϰ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āύāĻŋāĻā§āϰ Grafana āĻĒā§āϞāĻžāĻāĻāύ āϞāĻŋāĻā§ āĻā§āϞā§, āĻāĻĒāύāĻŋ āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻāĻāĻŋāĻā§ āϏāϰā§āĻŦāĻāύā§āύāĻāĻžāĻŦā§ āĻāĻĒāϞāĻŦā§āϧ āĻāϰāϤ⧠āĻāĻžāĻāĻŦā§āύāĨ¤ Grafana, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϞāĻŋāĻā§āĻā§ āĻāĻĒāϞāĻŦā§āϧ
āĻāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻāĻāύāĻāĻŋ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āϏā§āĻā§āϰ⧠āĻāĻĒāϞāĻŦā§āϧ āĻšāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ PR āĻāϰāϤ⧠āĻšāĻŦā§ , repo.json āĻĢāĻžāĻāϞ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϝā§āĻ āĻāϰāĻž āĻšāĻā§āĻā§:

āϝā§āĻāĻžāύ⧠āϏāĻāϏā§āĻāϰāĻŖāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āϞāĻžāĻāĻāύā§āϰ āϏāĻāϏā§āĻāϰāĻŖ, url āĻšāϞ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āĻāĻāĻāĻŋ āϞāĻŋāĻā§āĻ āĻāĻŦāĻ āĻāĻŽāĻŋāĻ āĻšāϞ āĻāĻŽāĻŋāĻā§āϰ āĻšā§āϝāĻžāĻļ āϝāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒā§āϞāĻžāĻāĻāύ āϏāĻāϏā§āĻāϰāĻŖ āĻāĻĒāϞāĻŦā§āϧ āĻāϰāĻŦā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻā§ āĻāĻĒāύāĻŋ āĻĢāϰā§āĻŽāĻāĻŋāϰ āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻāĻŦāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύ:

āĻāĻĒāύāĻžāϰ Readme.md, Changelog.md āĻāĻŦāĻ āĻĒā§āϞāĻžāĻāĻāύ āĻŦāĻŋāĻŦāϰāĻŖ āϏāĻš plugin.json āĻĢāĻžāĻāϞ āĻĨā§āĻā§ āĻāĻāĻŋāϰ āĻĄā§āĻāĻž āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāĻŋāύāϤāĻžāĻ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§āĨ¤
āĻĒāĻžāϰā§āĻ 6: āϏāĻŋāĻĻā§āϧāĻžāύā§āϤā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§
āĻāĻŽāϰāĻž āĻŽā§āĻā§āϤāĻŋāϰ āĻĒāϰ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϞāĻžāĻāĻāύ āĻŦāĻŋāĻāĻžāĻļ āĻāϰāĻž āĻŦāύā§āϧ āĻāϰāĻŋāύāĻŋāĨ¤ āĻāĻŦāĻ āĻāĻāύ āĻāĻŽāϰāĻž āĻā§āϞāĻžāϏā§āĻāĻžāϰ āύā§āĻĄāĻā§āϞāĻŋāϰ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āϏāĻ āĻŋāĻ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ, UX āĻāύā§āύāϤ āĻāϰāĻžāϰ āĻāύā§āϝ āύāϤā§āύ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āĻĒā§āϰāĻŦāϰā§āϤāύā§āϰ āĻāĻĒāϰ āĻāĻžāĻ āĻāϰāĻāĻŋ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻŦāĻ āĻāĻāϝāĻŧ āĻĒāĻā§āώ āĻĨā§āĻā§ āĻĒā§āϞāĻžāĻāĻāύ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒāϰ⧠āĻāĻŽāϰāĻž āĻĒā§āϰāĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϰāĻžāĻĒā§āϤ āĻāϰāĻāĻŋāĨ¤ ishshui on github (āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āϏāĻŽāϏā§āϝāĻžāĻāĻŋ āĻā§āĻĄāĻŧā§ āϝāĻžāύ āĻŦāĻž āĻ āύā§āϰā§āϧ āĻāĻžāύā§āύ, āĻāĻŽāĻŋ āĻā§āĻŦ āĻā§āĻļāĻŋ āĻšāĻŦ đ)āĨ¤
āĻāĻŽāϰāĻž āĻāĻļāĻž āĻāϰāĻŋ āϝ⧠āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻāĻĒāύāĻžāĻā§ Grafana āĻāϰ āĻŽāϤ⧠āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āϏāϰāĻā§āĻāĻžāĻŽ āĻŦā§āĻāϤ⧠āĻāĻŦāĻ āϏāĻŽā§āĻāĻŦāϤ āĻāĻĒāύāĻžāϰ āύāĻŋāĻā§āϰ āĻĒā§āϞāĻžāĻāĻāύ āϞāĻŋāĻāϤ⧠āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāϰāĻŦā§āĨ¤
āϧāύā§āϝāĻŦāĻžāĻĻ!)
āĻāϤā§āϏ: www.habr.com
