ื ืืืื ืืขืืขืจ! ืืื ืขืืืขืืข ืืืฉืื ืฆืืจืืง, ืืืจ ืืึธื ืืฉื ืืื ืืืขืจ ื ืืึทืข ืึธืคึฟื-ืืงืืจ ืคึผืจืืืขืงื ืืื ืคึผืจืึธืืืงืฆืืข - ืื Grafana ืคึผืืืืื ืคึฟืึทืจ ืืึธื ืืืึธืจืื ื ืงืืืขืจื ืขืืขืก, ืืืึธืก ืืืจ ืืขืจืืคื . ืืขืจ ืคึผืืืืื ืืงืืจ ืงืึธื ืืื ืื ืืืฆื ืืื . ืืื ืืื ืืขื ืึทืจืืืงื ืืืจ ืืืขืื ืฆื ืืืืื ืืื ืืืจ ืื ืืขืฉืืืืข ืคืื โโืืื ืืืจ ืืืฉืืคื ืืขื ืคึผืืืืื, ืืืึธืก ืืืฉืืจืื ืืืจ ืืขืืืืื ื ืืื ืืืึธืก ืคึผืืืคืึธืื ืืืจ ืืขืคึผืืึธื ืืขืจื ืืขืฉืึทืก ืื ืึทื ืืืืืงืืื ื ืคึผืจืึธืฆืขืก. ืืืืืจ ืืืื!
ืืืื 0 - ืื ืืจืึทืืึทืงืืขืจื: ืืื ืืึธืื ืืืจ ืืึทืงืืืขื ืฆื ืืขื ืคืื ื?
ืืขืจ ืืขืืึทื ืง ืฆื ืฉืจืืึทืื ืืื ืืืขืจ ืืืืื ืคึผืืืืื ืคึฟืึทืจ Grafan ืืขืงืืืขื ืฆื ืืื ืื ืืึทื ืฅ ืืืจื ืฆืืคืึทื. ืืื ืืืขืจ ืคืืจืืข ืืื ืืึธื ืืืึธืจืขื ืืืขื ืคึผืจืึทืืืฉืขืงืก ืคืื ืคืึทืจืฉืืื ืงืึทืืคึผืืขืงืกืืื ืืขืืืขืืก ืคึฟืึทืจ ืืขืจ ืืื 10 ืืึธืจ. ืืื ืืขื ืฆืืื, ืืืจ ืืึธืื ืึทืงืืืืืึทืืืืืื ืึท ืืจืืืก ืกืืืข ืคืื โโืขืงืกืคึผืขืจืืื, ืืฉืืงืึทืืืข ืงืึทืกืขืก ืืื ืืขืจืคืึทืจืื ื ืืื ื ืืฆื ืคืึทืจืฉืืื ืืึธื ืืืึธืจืื ื ืกืืกืืขืืขื. ืืื ืืื ืขืืืขืืข ืคืื ื ืืืจ ืืขืคืจืขืื ืืื: "ืืื ืขืก ืึท ืืึทืืืฉ ืืขืฆืืึทื ืคึฟืึทืจ ืืึธื ืืืึธืจืื ื ืงืืืขืจื ืขืืขืก, ืึทืืื ืึทื, ืืื ืืื ืืึธืื, "ืฉืืขืื ืขืก ืืื ืคืึทืจืืขืกื ืขืก"? ืคึผืจืึธืืขืืืขืืก + ืืจืึทืคืึทื ืึท ืงืึธืืืื ืึทืฆืืข. ืืื ืืื ืคืึทืจืืืง ืกืึทืืืฉืึทื ื ืคึฟืึทืจ ืืขื ืึธื ืืืืื, ืขืก ืืื ืึท ืืจืืืก ืืึทื ื ืคืื ืคืึทืจืฉืืื ืืื ืื ืคืื ืืืฉืืจืื: ืคึผืจืึธืืขืืืขืืก-ืึธืคึผืขืจืึทืืึธืจ, ืึท ืกืืื ืคืื kubernetes-mixin ืืึทืฉืืึธืจืื, ืืจืึทืคืึทื ืึท-kubernetes-ืึทืคึผ.
ืื ืืจืึทืคืึทื ืึท-kubernetes-ืึทืคึผ ืคึผืืืืื ืกืืื ืฆื ืืืื ืื ืืขืจืกื ืืฉืืงืึทืืืข ืึธืคึผืฆืืข ืคึฟืึทืจ ืืื ืื, ืึธืืขืจ ืขืก ืืื ื ืืฉื ืืขืฉืืืฆื ืคึฟืึทืจ ืืขืจ ืืื ืึท ืืึธืจ ืืื, ืืขืจืฆื, ืงืขื ื ืืฉื ืึทืจืืขืื ืืื ื ืืึทืข ืืืขืจืกืืขืก ืคืื ื ืึธืืข-ืขืงืกืคึผืึธืจืืขืจ ืืื ืงืืืข-ืฉืืึทื-ืืขืืจืืงืก. ืืื ืืื ืขืืืขืืข ืคืื ื ืืืจ ืืึทืฉืืึธืกื: "ืืึธื ืืืจ ื ืืฉื ืืึทืื ืืื ืืืขืจ ืืืืื ืืึทืฉืืืก?"
ืืืึธืก ืืืืืึทื ืืืจ ืืึทืฉืืึธืกื ืฆื ืื ืกืืจืืืขื ื ืืื ืืื ืืืขืจ ืคึผืืืืื:
- ืืืืืฉืืืึทืืึทืืืืฉืึทื ืคืื ืื "ืึทืคึผืืึทืงืืืฉืึทื ืืึทืคึผืข": ืืึทืงืืืขื ืคึผืจืขืืขื ืืืจืื ื ืคืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืืขื ืงื ืืื, ืืจืืคึผื ืืืจื ื ืึธืืขื ืกืคึผืืืกืึทื, ืืืคึผืืืืืึทื ืฅ ...;
- ืืืืืฉืืืึทืืึทืืืืฉืึทื ืคืื ืงืึทื ืขืงืฉืึทื ื ืืื "ืืืคึผืืืืืึทื ื - ืืื ืกื (+ ืคึผืึธืจืฅ)".
- ืืืืืฉืืืึทืืึทืืืืฉืึทื ืคืื ืื ืคืึทืจืฉืคึผืจืืืืื ื ืคืื ืงื ืืื ืึทืคึผืืึทืงืืืฉืึทื ื ืึทืจืืืขืจ ืงื ืืื ื ืึธืืื.
- ืืึทืืืื ื ืคืื ืืขืืจืืงืก ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืคึฟืื ืขืืืขืืข ืงืืืืื: ืคึผืจืึธืืขืืืขืืก ืืื ืง8ืก ืึทืคึผื ืกืขืจืืืขืจ.
- ืืึธื ืืืึธืจืื ื ืคืื ืืืืืข ืื ืื ืคืจืึทืกืืจืึทืงืืฉืขืจ ืืืื (ื ืืฆื ืคืื ืงืคึผื ืฆืืื, ืืืงืึธืจื, ืืืกืง ืกืืืกืืกืืขื, ื ืขืฅ) ืืื ืึทืคึผืืึทืงืืืฉืึทื ืืึธืืืง - ืืขืืื ื-ืกืืึทืืืก ืคึผืึธืืก, ื ืืืขืจ ืคืื ืื ืืืฆื ืจืขืคึผืืึทืงืึทื, ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืืจืืคืึธืจ ืืืืืื ืึทืก / ืืจืืืืงืืึทื ืืขืกืฅ.
ืืืื 1: ืืืึธืก ืืื ืึท "ืืจืึทืคืึทื ืึท ืคึผืืืืื"?
ืคึฟืื ืึท ืืขืื ืืฉ ืคืื ื ืคืื ืืืื ืื ื, ืื ืคึผืืืืื ืคึฟืึทืจ Grafana ืืื ืึท ืืืื ืงืืืืง ืงืึธื ืืจืึธืืืขืจ, ืืืึธืก ืืื ืกืืึธืจื ืืื ืื Grafana ืืึทืื ืืืขืืืืืึทืืขืจ (/var/grafana/plugins/ /ืืืกื/module.js) ืืื ืงืขื ืขื ืืืื ืืึธืืืื ืืื ืึท SystemJS ืืึธืืืืข. ืืืื ืืื ืืขื ืืืขืืืืืึทืืขืจ ืขืก ืืึธื ืืืื ืึท plugin.json ืืขืงืข ืืื ืึทืืข ืื ืืขืืึท ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืืื ืคึผืืืืื: ื ืึธืืขื, ืืืขืจืกืืข, ืคึผืืืืื ืืืคึผ, ืืื ืงืก ืฆื ืื ืจืืคึผืึทืืึทืืึธืจื / ืคึผืืึทืฅ / ืืขืจืืืืืขื ืืฉ, ืืืคึผืขื ืืึทื ืกืื, ืืื ืึทืืื ืืืืฃ.

module.ts

plugin.json
ืืื ืืืจ ืงืขื ืขื ืืขื ืืื ืื ืกืงืจืขืขื ืฉืึธื, ืืืจ ืกืคึผืขืกืืคืืขื plugin.type = app. ืืืืึทื ืคึผืืืืื ืก ืคึฟืึทืจ ืืจืึทืคืึทื ืึท ืงืขื ืขื ืืืื ืคืื ืืจืื ืืืืคึผืก:
ืืึทืคืืืข: ืื ืืขืจืกื ืคึผืจืึธืกื ืืืคึผ ืคืื ืคึผืืืืื - ืขืก ืืื ืึท ืืึทืคืืืข ืคึฟืึทืจ ืืืืืฉืืืึทืืืืืื ื ืงืืื ืืขืืจืืงืก, ืืขื ืืฆื ืฆื ืืืืขื ืคืึทืจืฉืืื ืืึทืฉืืึธืจืื.
ืืึทืืึทืกืึธืืจืกืข: ืคึผืืืืื ืงืึทื ืขืงืืขืจ ืฆื ืขืืืขืืข ืืึทืื ืืงืืจ (ืืืฉื, Prometheus-datasource, ClickHouse-datasource, ElasticSearch-datasource).
ืึทืคึผ: ื ืคึผืืืืื ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืืืืขื ืืืื ืืืืืขื ืข ืคืจืึธื ื-ืกืืฃ ืึทืคึผืืึทืงืืืฉืึทื ืืื Grafana, ืฉืึทืคึฟื ืืืื ืืืืืขื ืข HTML ืืืขืืขืจ ืืื ืืึทื ืืืึทืื ืึทืงืกืขืก ืื ืืึทืื ืืงืืจ ืฆื ืืืืืฉืืืึทืืืื ืคืึทืจืฉืืื ืืึทืื. ืืืื, ืคึผืืืืื ืก ืคืื ืื ืืขืจืข ืืืืคึผืก (ืืึทืืึทืกืึธืืจืก, ืืึทืคืืืข) ืืื ืคืึทืจืฉืืื ืืึทืฉืืึธืจืื ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืืืคึผืขื ืืึทื ืกืื.

ืืืึทืฉืคึผืื ืคึผืืืืื ืืืคึผืขื ืืึทื ืกืื ืืื ืืืคึผ = ืึทืคึผ.
ืืืจ ืงืขื ืขื ื ืืฆื ืืืืืข ืืืฉืึทืืืึทืกืงืจืืคึผื ืืื TypeScript ืืื ืึท ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื (ืืืจ ืืืืกืืขืจืืืืืื ืขืก). ืคึผืจืขืคึผืขืจืืืฉืึทื ื ืคึฟืึทืจ ืืขืื-ืืืขืื ืคึผืืืืื ืก ืคืื ืงืืื ืืืคึผ ืืืจ ืงืขื ืขื : ืืขื ืจืืคึผืึทืืึทืืึธืจื ืึผืืื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืกืืึทืจืืขืจ ืคึผืึทืงืก (ืขืก ืืื ืืคืืื ืึทื ืืงืกืคึผืขืจืืขื ืึทื ืืืึทืฉืคึผืื ืคืื ืึท ืคึผืืืืื ืืื ืจืขืึทืงื) ืืื ืคืึทืจ-ืืื ืกืืึทืืืจื ืืื ืงืึทื ืคืืืืขืจื ืืืืืขืจื.
ืืืื 2: ืคึผืจืืคึผืขืจืื ื ืื ืืืืข ืกืืืืืืข
ืฆื ืึทืจืืขืื ืืืืฃ ืืขื ืคึผืืืืื, ืืืจ ืืขืืืืื ืืืขื ืืึทืจืคึฟื ืึท ืงืืืขืจื ืขืืขืก ืงื ืืื ืืื ืึทืืข ืื ืคึผืจืขืื ืกืืึทืืืขื ืืืฉืืจืื: ืคึผืจืึธืืขืืืขืืก, ื ืึธืืข-ืขืงืกืคึผืึธืจืืขืจ, ืงืื-ืฉืืึทื-ืืขืืจืืงืก, ืืจืึทืคืึทื ืึท. ืื ืกืืืืืืข ืืึธื ืืืื ืฉืืขืื ืืื ืืขืฉืืืื ื, ืืืืื ืืื ืืขืืืืื ืืืขื, ืืื ืฆื ืขื ืฉืืจ ืืืืก ืจืืืึธืื, ืื Grafana ืืึทืื ืืืขืืืืืึทืืขืจ ืืึธื ืืืื ืืึธืื ืืขื ืืืืึทื ืคึฟืื ืื ืืขืืืขืืึธืคึผืขืจ ืก ืืึทืฉืื.
ืื ืืขืจืกื ืืึทืงืืืขื ืืืขื, ืืื ืืื ืืืขืจ ืืืื ืื ื, ืฆื ืึทืจืืขืื ืืึธืืงืึทืื ืืื ืงืืืขืจื ืขืืขืก ืืื . ืืขืจ ืืืืึทืืขืจ ืฉืจืื ืืื ืฆื ืื ืกืืึทืืืจื ืื Prometheus + Grafana ืงืึธืืืื ืึทืฆืืข ืืื ืคึผืจืึธืืขืืืขืืก-ืึธืคึผืขืจืึทืืึธืจ. ืืื ืืขืจ ืคึผืจืึธืฆืขืก ืคืื ืื ืกืืึธืืื ื ืคึผืจืึธืืขืืืขืืก-ืึธืคึผืขืจืึทืืึธืจ ืืืืฃ ืืื ืืงืืืข ืืื ืืืกืงืจืืืื ืืื ืืขืืึทื. ืฆื ืืขืื ืคึผืขืจืกืืกืืึทื ืก, ืืืจ ืืืื ืฉืืขืื ืืขื ืคึผืึทืจืึทืืขืืขืจ ืคึผืขืจืกืืกืืึทื ืก: ืืืช ืืื ืื ืืฉืึทืจืฅ/ืืจืึทืคืึทื ืึท/ืืืึทืืืืขืก.ืืึทืื ืืขืงืข, ืืืืื ืืืื ืืืืืขื ืข ืคึผืื ืืื ืคึผืืืง ืืื ืกืคึผืขืฆืืคืืฆืืจื ืืื ืืื ืื ืคึผืขืจืกืืกืืขื ืกืข.ืขืงืกืืกืืื ืืงืืึทืื ืคึผืึทืจืึทืืขืืขืจ
ืืื ืืืขืจ ืืขืฆื ืืื ืืงืืืข ืงืึทืืขืจ ืฉืจืืคื ืงืืงื ืืื ืืึธืก:
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: ืคืึทืงืืืฉ ืึทื ืืืืืงืืื ื
ืึธืืืืฉืขืงื ืืึธืืขื
ืืื ืฆืืืจืืืืื ื ืคึฟืึทืจ ืืืคึผืืึทืืขื ืื ื ืื ืคึผืืืืื, ืืืจ ืืึทืฉืืึธืกื ืฆื ืืึทืฉืจืืึทืื ืึทืืข ืื ืืงืขืจืืืง Kubernetes ืขื ืืืืื ืืื ืืืึธืก ืืืจ ืืืขืื ืึทืจืืขืื ืืื ืื ืคืึธืจืขื ืคืื TypeScript ืงืืืกื: ืคึผืึธื, ืืืคึผืืืืืึทื ื, ืืึทืขืืึธื ืกืขื, ืกืืขืืืคืืืกืขื, ืึทืจืืขื, ืงืจืึธื ืืืฉืึธื, ืืื ืกื, ื ืึธืืข, ื ืึทืืขืกืคึผืึทืกืข. ืืขืืขืจ ืคืื ืื ืงืืืกื ืื ืืขืจืึทืฅ ืคืื ืื ืคึผืจืึธืกื ืืึทืกืขืืึธืืขื ืงืืึทืก, ืืืึธืก ืืืฉืจืืืื ืื ืงืึทื ืกืืจืึทืงืืขืจ, ืืขืกืืจืืงืืืจ, ืืขืืืึธืืก ืคึฟืึทืจ ืึทืคึผืืืืืื ื ืืื ืกืืืืืฉืื ื ืืืืืึทืืืืืื. ืืขืืขืจ ืคืื ืื ืงืืืกื ืืืฉืจืืืื ื ืขืกืืขื ืืืฆืืื ืืขื ืืื ืื ืืขืจืข ืขื ืืืืื, ืืืฉื, ืึท ืจืฉืืื ืคืื ืคึผืึธืืก ืคึฟืึทืจ ืึทื ืขื ืืืื ืคืื ืืืคึผ ืืืคึผืืืืืึทื ื.
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); ืื ืืึทืงืืืืื ื ืื ืืึทื ืืฆืขืจ ืจืึธืืข ืคึฟืึทืจ ืืืึธืก ืึทืจืืขื ืืื ืืขื ืืืึทื ืืื ืื ืืืฆื ืืื ื ืึทืืืืืึทืฆืืข ืกืขืืืื ืืก ืคึฟืึทืจ ืื ืกืืืืืึทืจ.
ืืื ืืขืจ ืงืึธืืคึผืึธื ืขื ื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื ืืืึทื, ืืืจ ืืืื ืฉืืขืื TemplateUrl, ืืื ืคืึธืจื ืืึธืจื ืื ืืจื ืฆื ืื HTML ืืขืงืข ืืื ืืึทืจืงืึทืคึผ. ืืื ืื ืงืึธื ืืจืึธืืืขืจ, ืืืจื ืึธืคืขื ืืืงืืึทื ืื ืืืฉืขืงืฉืึทื, ืืืจ ืงืขื ืขื ืึทืงืกืขืก ืึทืจืืืฃ ืฆื 2 ืืืืืืืง ืืืื ืงืืืืง ืืึทืืื ืื ืืก:
- backendSrv - ืึท ืืื ืกื ืืืึธืก ืืื ืื ืืขืจืึทืงืฉืึทื ืืื ืื Grafana API ืกืขืจืืืขืจ;
- datasourceSrv - ืึท ืืื ืกื ืืืึธืก ืืื ืืืืข ืื ืืขืจืึทืงืฉืึทื ืืื ืึทืืข ืืึทืืึทืกืึธืืจืกืขืก ืืื ืกืืึทืืืจื ืืื ืืืื ืืจืึทืคืึทื ืึท (ืืืฉื, ืื .getAll () ืืืคึฟื - ืงืขืจื ืึท ืจืฉืืื ืคืื ืึทืืข ืืื ืกืืึทืืืจื ืืึทืื ืืงืืจืื; .get( ) - ืงืขืจื ืึท ืืืึทืฉืคึผืื ืืืืคืขืฅ ืคืื ืึท ืกืคึผืขืฆืืคืืฉ ืืึทืื ืืงืืจ.



ืืืื 4: ืืึทืื ืืงืืจ
ืคึฟืื ืืจืึทืคืึทื ืึท ืก ืคืื ื ืคืื ืืืื ืื ื, ืืึทืืึทืกืึธืืจืกืข ืืื ืคึผืื ืงื ืืขืจ ืืขืืืืงืขืจ ืคึผืืืืื ืืื ืึทืืข ืื ืื ืืขืจืข: ืขืก ืืื ืืืึทื ืืืืื ืคึผืึธืืืฆืืข ืคืื ื module.js, ืขืก ืืื ืึท ืืขืงืข ืืื ืืขืืึท ืืื ืคึฟืึธืจืืึทืฆืืข plugin.json. ืืืขื ืืขืืืขืืึธืคึผืื ื ืึท ืคึผืืืืื ืืื ืืืคึผ = ืึทืคึผ, ืืืจ ืงืขื ืขื ืื ืืขืจืึทืงื ืืื ืืืืืข ืืืืืกืืื ื ืืึทืืึทืกืึธืืจืกืขืก (ืืืฉื, prometheus-datasource) ืืื ืืื ืืืขืจ ืืืืืขื ืข, ืืืึธืก ืืืจ ืงืขื ืขื ืงืจืึธื ืืืืื ืืื ืื ืคึผืืืืื ืืืขืืืืืึทืืขืจ (ืืืกื/ืืึทืืึทืกืึธืืจืกืข/*) ืึธืืขืจ ืื ืกืืึทืืืจื ืืื ืึท ืืขืคึผืขื ืืขื ืกื. ืืื ืืื ืืืขืจ ืคืึทื, ืื ืืึทืื ืืงืืจ ืงืืื ืืื ืื ืคึผืืืืื ืงืึธื. ืขืก ืืื ืืืื ื ืืืืืง ืฆื ืืึธืื ืึท config.html ืืขืืคึผืืึทืืข ืืื ืึท ConfigCtrl ืงืึทื ืืจืึธืืืขืจ, ืืืึธืก ืืืขื ืืืื ืืขืืืืื ื ืคึฟืึทืจ ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืึทื ืคืื ืื ืืึทืืึทืกืึธืืจืก ืืืึทืฉืคึผืื ืืื ืื ืืึทืืึทืกืึธืืจืก ืงืึธื ืืจืึธืืืขืจ, ืืืึธืก ืืืคึผืืึทืืึทื ืฅ ืื ืืึธืืืง ืคืื ืืืื ืืึทืืึทืกืึธืืจืก.
ืืื ืื KubeGraf ืคึผืืืืื, ืคึฟืื ืื ืืึทื ืืฆืขืจ ืฆืืืื ื ืคืื ื ืคืื ืืืื ืื ื, ืื ืืึทืื ืืงืืจ ืืื ืึท ืืืึทืฉืคึผืื ืคืื ืึท kubernetes ืงื ืืื ืืืึธืก ืืืคึผืืึทืืึทื ืฅ ืื ืคืืืืขื ืืข ืงืืืคึผืึทืืืืึทืืื (ืืงืืจ ืงืึธื ืืื ืื ืืืฆื ):
- ืงืึทืืขืงืืื ื ืืึทืื ืคืื ืื k8s ืึทืคึผื ืกืขืจืืืขืจ (ืืึทืงืืืขื ืึท ืจืฉืืื ืคืื ื ืึธืืขื ืกืคึผืืืกืึทื, ืืืคึผืืืืืึทื ืฅ ...)
- ืคึผืจืึทืงืกืืื ื ืจืืงืืืขืก ืฆื prometheus-datasource (ืืืึธืก ืืื ืืืืกืืขืงืืืื ืืื ืื ืคึผืืืืื ืกืขืืืื ืืก ืคึฟืึทืจ ืืขืืขืจ ืกืคึผืขืฆืืคืืฉ ืงื ืืื) ืืื ืคืึธืจืืึทืืืื ื ืจืขืกืคึผืึธื ืกืขืก ืฆื ื ืืฆื ืืึทืื ืืืืืข ืืื ืกืืึทืืืง ืืืขืืขืจ ืืื ืืื ืืึทืฉืืึธืจืื.
- ืึทืคึผืืืืืื ื ืืึทืื ืืืืฃ ืกืืึทืืืง ืคึผืืืืื ืืืขืืขืจ (ืืื ืึท ืืึทืฉืืืื ืืขืจืคืจืืฉื ืงืืจืก).
- ืคึผืจืึทืกืขืกืื ื ืคึฟืจืืื ืฆื ืืืฉืขื ืขืจืืื ืึท ืืืกืืขืจ ืืืึทื ืืื ืืจืึทืคืึทื ืึท-ืืึทืฉืืึธืจืื (metriFindQuery () ืืืคึฟื)



- ืงืฉืจ ืคึผืจืึธืืข ืืื ืื ืืขืฆื ืง8ืก ืงื ืืื.
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 ืฆื ืงืึทื ืคืืืืขืจ ืึทืงืกืขืก ืฆื ืื ืืขืฆื ืืึทืื ืืงืืจ. ื ืืฆื ืืขื ืงืึธืืคึผืึธื ืขื ื, ืืืจ ืงืขื ืขื ืงืึทื ืคืืืืขืจ ืึทืงืกืขืก ืฆื ืื ืืืืคึผ ืืึทืื ืืงืืจ ืืืจื ืกืคึผืขืฆืืคืืฆืืจื ืื URL ืืื ืืงืขืจืืืง ืึธืืขื ืืึทืงืืืฉืึทื / ืืขืจืืืืืขื ืืฉ ืกืขืืืื ืืก: ืืึธืืื-ืคึผืึทืจืึธื ืึธืืขืจ ืงืืืขื ื-ืกืขืจื/ืงืืืขื ื-ืฉืืืกื. ืืื ืกืืจ ืฆื ืื ืกืืจืืืขื ื ืื ืคืืืืงืืื ืฆื ืงืึทื ืคืืืืขืจ ืึทืงืกืขืก ื ืืฆื ืึท ืืจืขืืขืจ ืืึธืงืขื (ืื ืืข ืคืึทืงืืึธ ื ืึธืจืืึทื ืคึฟืึทืจ ืง8ืก), ืืืจ ืืึธืื ืฆื ืืืืืง ืขืก ืึท ืืืกื.
ืฆื ืกืึธืืืืข ืืขื ืคึผืจืึธืืืขื, ืืืจ ืงืขื ืขื ื ืืฆื ืื ืืขืืืื-ืืื ืืจืึทืคืึทื ืึท "ืคึผืืืืื ืจืึธืืืขืก" ืืขืงืึทื ืืืึทื (ืืขืจ ืืขืืึทืืืก ืืื ). ืืื ืื ืกืขืืืื ืืก ืคืื ืืื ืืืขืจ ืืึทืื ืืงืืจ, ืืืจ ืงืขื ืขื ืืขืจืงืืขืจื ืึท ืกืืื ืคืื ืจืืืื ื ืึผืืืื ืืืึธืก ืืืขื ืืืื ืคึผืจืึทืกืขืกื ืืืจื ืื ืืจืึทืคืึทื ืึท ืคืจืืงืกื ืกืขืจืืืขืจ. ืืืฉื, ืคึฟืึทืจ ืืขืืขืจ ืืืื ืขื ืืคึผืืื ื ืขืก ืืื ืืขืืืขื ืฆื ืฉืืขืื ืืขืืขืจื ืึธืืขืจ URL ืก ืืื ืื ืืขืืืขืืงืืื ืคืื ืืขืืคึผืืึทืืื ื, ืืึทืื ืคึฟืึทืจ ืืืึธืก ืงืขื ืขื ืืืื ืืขื ืืืขื ืคึฟืื ืื jsonData ืืื secureJsonData ืคืขืืืขืจ (ืคึฟืึทืจ ืกืืึธืจืื ื ืคึผืึทืกืืืขืจืื ืึธืืขืจ ืืึธืงืขื ืก ืืื ืื ืงืจืืคึผืืื ืคืึธืจืขื). ืืื ืืื ืืืขืจ ืืืึทืฉืคึผืื, ืคึฟืจืืื ืืื /__proxy/api/v1/namespaces ืืืขื ืืืื ืคึผืจืึทืงืกืืื ืฆื ืื URL ืคืื ืื ืคืึธืจืขื
/api/v8/namespaces ืืื ืื ืืขืจืืืืืขื ืืฉ: ืืจืขืืขืจ ืืขืืขืจ.


ืืขืืืืื ืืืขื, ืฆื ืึทืจืืขืื ืืื ืื k8s ืึทืคึผื ืกืขืจืืืขืจ, ืืืจ ืืึทืจืคึฟื ืึท ืืึทื ืืฆืขืจ ืืื ืืืืื ืืืืขื ืขื ืึทืงืกืขืก, ืืึทื ืืคืขืกืฅ ืคึฟืึทืจ ืงืจืืืืืื ื ืืืึธืก ืืืจ ืงืขื ืขื ืืืื ืืขืคึฟืื ืขื ืืื .
ืืืื 5: ืืขืืืื ื

ืึทืืึธื ืืืจ ืืึธื ืืขืฉืจืืื ืืืื ืืืืืขื ืข Grafana ืคึผืืืืื, ืืืจ ืืืขื ืืขืืืืื ืืืขื ืืึทืื ืขืก ืขืคื ืืืขื ืื ืืืฆื. ืืื Grafana ืืึธืก ืืื ืึท ืืืืืืึธืืขืง ืคืื ืคึผืืืืื ืก ืื ืืืฆื ืืึธ
ืึผืื ืืืื ืคึผืืืืื ืืึธื ืืืื ืืืจืขืืืืื ืืื ืืขืจ ืืึทืึทืืืขืจ ืงืจืึธื, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืื ืึท ืคึผืจ ืืื ืืืจื ืึทืืื ื ืืื ืืึทืื ืืื ืืึธืก ืฆื ืื repo.json ืืขืงืข:

ืืื ืืืขืจืกืืข ืืื ืื ืืืขืจืกืืข ืคืื โโืืืื ืคึผืืืืื, URL ืืื ืึท ืืื ืง ืฆื ืื ืจืืคึผืึทืืึทืืึธืจื, ืืื commit ืืื ืื ืืึทืฉ ืคืื ืื ืืืขืจืืขืื ืคึฟืึทืจ ืืืึธืก ืึท ืกืคึผืขืฆืืคืืฉ ืืืขืจืกืืข ืคืื โโโโืื ืคึผืืืืื ืืืขื ืืืื ืืืจืขืืืืื.
ืืื ืืื ืืขืจ ืจืขืืืืืึทื ืืืจ ืืืขื ืืขื ืึท ืืืื ืืขืจืืขื ืืืื ืืื:

ืื ืืึทืื ืคึฟืึทืจ ืขืก ืืืขื ืืืื ืืืืืึธืืึทืืืฉ ืืจืึทืื ืคึฟืื ืืืื Readme.md, Changelog.md ืืื ืื plugin.json ืืขืงืข ืืื ืื ืคึผืืืืื ืืึทืฉืจืืึทืืื ื.
ืืืื 6: ืึทื ืฉืืึธื ืคืื ืงืึทื ืงืืืืฉืึทื ื
ืืืจ ืืึธืื ื ืืฉื ืืึทืืื ืืขืืืขืืึธืคึผืื ื ืืื ืืืขืจ ืคึผืืืืื ื ืึธื ืืขืืืื ื. ืืื ืืืฆื ืืืจ ืึทืจืืขืื ืืืืฃ ืจืืืืืง ืืึธื ืืืึธืจืื ื ืื ื ืืฆื ืคืื ืจืืกืึธืจืกืื ืคืื ืงื ืืื ื ืึธืืื, ืื ืืจืึธืืืืกืื ื ื ืืึทืข ืคึฟืขืึดืงืืืื ืฆื ืคึฟืึทืจืืขืกืขืจื UX, ืืื ืืืื ืจืึทืงืื ื ืึท ืืจืืืก ืกืืืข ืคืื โโืืึทืืขืจืงืื ืืขื ืืืงืืืขื ื ืึธื ืื ืกืืึธืืื ื ืื ืคึผืืืืื ืืืืืข ืืืจื ืืื ืืืขืจ ืงืืืืึทื ืฅ ืืื ืคืื ืืขื ืืฉื ืืืืฃ GitHub (ืืืื ืืืจ ืคืึทืจืืึธืื. ืืืื ืึทืจืืืกืืขืื ืึธืืขืจ ืฆืืขื ืืงืฉื, ืืื ืืืขื ืืืื ืืืืขืจ ืฆืืคืจืืื :)
ืืืจ ืืึธืคื ืึทื ืืขืจ ืึทืจืืืงื ืืืขื ืืขืืคึฟื ืืืจ ืคึฟืึทืจืฉืืืื ืึทืืึท ืึท ืืืื ืืขืจืืขื ืืขืฆืืึทื ืืื Grafana ืืื, ืืึธืืขืจ, ืฉืจืืึทืื ืืืื ืืืืืขื ืข ืคึผืืืืื.
ืืืื ืง!)
ืืงืืจ: www.habr.com
