āĻšāĻžāĻ āĻ¸āĻŦ! āĻāĻ¯āĻŧā§āĻ āĻŽāĻžāĻ¸ āĻāĻā§, āĻāĻŽāĻ°āĻž āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒā§āĻ¨-āĻ¸ā§āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻāĻŋ - āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž-āĻĒā§āĻ˛āĻžāĻāĻāĻ¨, āĻ¯āĻžāĻā§ āĻāĻŽāĻ°āĻž āĻŦāĻ˛ā§āĻāĻŋāĻ˛āĻžāĻŽ
āĻĒāĻžāĻ°ā§āĻ 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: āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž
āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ-āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĻāĻ°āĻāĻžāĻ°: āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸, āĻ¨ā§āĻĄ-āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻāĻžāĻ°āĻ, āĻā§āĻŦā§-āĻ¸ā§āĻā§āĻ-āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸, āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻžāĨ¤ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤, āĻ¸āĻšāĻā§ āĻāĻŦāĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻāĻŦāĻ āĻšāĻ-āĻ°āĻŋāĻ˛ā§āĻĄ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž āĻĄā§āĻāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻŽā§āĻļāĻŋāĻ¨ āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¤ā§, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ 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-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋ āĻĢā§āĻ¯āĻžāĻā§āĻā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻā§ āĻāĻŋāĻā§āĻāĻž "āĻĒā§āĻ°āĻ¤āĻžāĻ°āĻŖāĻž" āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž "āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ°ā§āĻ" āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻāĻ°ā§
/api/v8/āĻ¨ā§āĻŽāĻ¸ā§āĻĒā§āĻ¸ āĻšā§āĻĄāĻžāĻ° āĻ¸āĻš āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨: āĻŦāĻšāĻ¨āĻāĻžāĻ°ā§āĨ¤
āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ, k8s api āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŽāĻ¨ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻ āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ āĻāĻ¤ā§āĻ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻžāĻ°ā§āĻ 5: āĻŽā§āĻā§āĻ¤āĻŋ
āĻāĻāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° Grafana āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ˛āĻŋāĻā§ āĻā§āĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§āĻ āĻāĻāĻŋāĻā§ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻŦā§āĻ¨āĨ¤ Grafana, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ˛āĻŋāĻā§āĻā§ āĻāĻĒāĻ˛āĻŦā§āĻ§
āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋ āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸ā§āĻā§āĻ°ā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ PR āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ā§āĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ, url āĻšāĻ˛ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻāĻŦāĻ āĻāĻŽāĻŋāĻ āĻšāĻ˛ āĻāĻŽāĻŋāĻā§āĻ° āĻšā§āĻ¯āĻžāĻļ āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻŦā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻĢāĻ°ā§āĻŽāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻāĻŦāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨:
āĻāĻĒāĻ¨āĻžāĻ° Readme.md, Changelog.md āĻāĻŦāĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻš plugin.json āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻāĻāĻŋāĻ° āĻĄā§āĻāĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻŋāĻ¨āĻ¤āĻžāĻ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
āĻĒāĻžāĻ°ā§āĻ 6: āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§
āĻāĻŽāĻ°āĻž āĻŽā§āĻā§āĻ¤āĻŋāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻŋāĻ¨āĻŋāĨ¤ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¸āĻ āĻŋāĻ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ, UX āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻžāĻ āĻāĻ°āĻāĻŋ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻāĻ¯āĻŧ āĻĒāĻā§āĻˇ āĻĨā§āĻā§ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻāĻŋāĨ¤ ishshui on github (āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻ¨ āĻŦāĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻžāĻ¨ā§āĻ¨, āĻāĻŽāĻŋ āĻā§āĻŦ āĻā§āĻļāĻŋ āĻšāĻŦ đ)āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ Grafana āĻāĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻŦā§āĻāĻ¤ā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°āĻŦā§āĨ¤
āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ!)
āĻāĻ¤ā§āĻ¸: www.habr.com