เจธเจพเจฐเจฟเจเจ เจจเฉเฉฐ เจธเจคเจฟ เจธเจผเฉเจฐเฉ เจ
เจเจพเจฒ! เจเฉเจ เจฎเจนเฉเจจเฉ เจชเจนเจฟเจฒเจพเจ, เจ
เจธเฉเจ เจเจชเจฃเฉ เจจเจตเฉเจ เจเจชเจจ-เจธเฉเจฐเจธ เจชเฉเจฐเฉเจเฉเจเจ เจจเฉเฉฐ เจเจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจ เจฒเจพเจเจ เจเฉเจคเจพ - เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจจ เจฒเจ เจเฉเจฐเจพเจซเจพเจจเจพ เจชเจฒเฉฑเจเจเจจ, เจเจฟเจธเจจเฉเฉฐ เจ
เจธเฉเจ เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ
เจญเจพเจ 0 - เจธเจผเฉเจฐเฉเจเจคเฉ: เจ เจธเฉเจ เจเจธ เจฌเจฟเฉฐเจฆเฉ เจคเฉฑเจ เจเจฟเจตเฉเจ เจชเจนเฉเฉฐเจเฉ?
เจเฉเจฐเจพเจซเจพเจจเจพ เจฒเจ เจเจชเจฃเจพ เจชเจฒเฉฑเจเจเจจ เจฒเจฟเจเจฃ เจฆเจพ เจตเจฟเจเจพเจฐ เจธเจพเจกเฉ เจเฉเจฒ เจ เจเจพเจจเจ เจนเฉ เจเจเจ เจธเฉเฅค เจธเจพเจกเฉ เจเฉฐเจชเจจเฉ 10 เจธเจพเจฒเจพเจ เจคเฉเจ เจตเฉฑเจง เจธเจฎเฉเจ เจคเฉเจ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉฑเจงเจฐเจพเจ เจฆเฉ เจเจเจฟเจฒเจคเจพ เจฆเฉ เจตเฉเจฌ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐ เจฐเจนเฉ เจนเฉเฅค เจเจธ เจธเจฎเฉเจ เจฆเฉเจฐเจพเจจ, เจ เจธเฉเจ เจตเฉฑเจ-เจตเฉฑเจ เจจเจฟเจเจฐเจพเจจเฉ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจตเฉฑเจกเฉ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจ เจฎเฉเจนเจพเจฐเจค, เจฆเจฟเจฒเจเจธเจช เจเฉเจธ เจ เจคเฉ เจคเจเจฐเจฌเจพ เจเจเฉฑเจ เจพ เจเฉเจคเจพ เจนเฉเฅค เจ เจคเฉ เจเจฟเจธเฉ เจธเจฎเฉเจ เจ เจธเฉเจ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจชเฉเฉฑเจเจฟเจ: "เจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจจ เจฒเจ เจเฉเจ เจเจพเจฆเฉเจ เจธเฉฐเจฆ เจนเฉ, เจคเจพเจ เจเฉ, เจเจฟเจตเฉเจ เจเจฟ เจเจน เจเจนเจฟเฉฐเจฆเฉ เจนเจจ, "เจเจธ เจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจญเฉเฉฑเจฒ เจเจพเจ"?".. k8s เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจฒเจ เจเจฆเจฏเฉเจ เจฆเจพ เจฎเจฟเจเจฐ, เจฌเฉเจธเจผเฉฑเจ, เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจฐเจฟเจนเจพ เจนเฉ Prometheus + Grafana เจธเฉเจฎเฉเจฒเฅค เจ เจคเฉ เจเจธ เจธเจเฉเจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจนเฉฑเจฒเจพเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ, เจตเฉฑเจ-เจตเฉฑเจ เจเจฟเจธเจฎเจพเจ เจฆเฉ เจธเจพเจงเจจเจพเจ เจฆเจพ เจเฉฑเจ เจตเฉฑเจกเจพ เจธเจฎเฉเจน เจนเฉ: เจชเฉเจฐเฉเจฎเฉเจฅเฉเจ เจธ-เจเจชเจฐเฉเจเจฐ, เจเฉเจฌเจฐเจจเฉเจเจธ-เจฎเจฟเจเจธเจฟเจจ เจกเฉเจธเจผเจฌเฉเจฐเจกเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจ, เจเฉเจฐเจพเจซเจพเจจเจพ-เจเฉเจฌเจฐเจจเฉเจเจธ-เจเจชเฅค
grafana-kubernetes-app เจชเจฒเฉฑเจเจเจจ เจธเจพเจกเฉ เจฒเจ เจธเจญ เจคเฉเจ เจฆเจฟเจฒเจเจธเจช เจตเจฟเจเจฒเจช เจเจพเจชเจฆเจพ เจธเฉ, เจชเจฐ เจเจน เจเฉฑเจ เจธเจพเจฒ เจคเฉเจ เจตเฉฑเจง เจธเจฎเฉเจ เจฒเจ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉเจ เจนเฉ เจ เจคเฉ เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจจเฉเจก-เจเจเจธเจชเฉเจฐเจเจฐ เจ เจคเฉ เจเจฟเจเจฌ-เจธเจเฉเจ-เจฎเฉเจเฉเจฐเจฟเจเจธ เจฆเฉ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจ เจคเฉ เจเจฟเจธเฉ เจธเจฎเฉเจ เจ เจธเฉเจ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ: "เจเฉ เจธเจพเจจเฉเฉฐ เจเจชเจฃเจพ เจซเฉเจธเจฒเจพ เจจเจนเฉเจ เจฒเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ?"
เจ เจธเฉเจ เจเจชเจฃเฉ เจชเจฒเฉฑเจเจเจจ เจตเจฟเฉฑเจ เจเจฟเจนเฉเฉ เจตเจฟเจเจพเจฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉ:
- "เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฎเฉเจช" เจฆเจพ เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ: เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจชเฉเจธเจผเจเจพเจฐเฉ, เจจเจพเจฎ-เจธเจฅเจพเจจเจพเจ, เจคเฉเจจเจพเจคเฉเจเจ เจฆเฉเจเจฐเจพ เจธเจฎเฉเจนเจฌเฉฑเจง ...;
- "เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ - เจธเจฐเจตเจฟเจธ (+เจชเฉเจฐเจ)" เจตเจฐเจเฉ เจเจจเฉเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฟเจเจผเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจเฅค
- เจเจฒเฉฑเจธเจเจฐ เจจเฉเจกเจพเจ เจตเจฟเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจตเฉฐเจก เจฆเจพ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃเฅค
- เจเจ เจธเจฐเฉเจคเจพเจ เจคเฉเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจ เจคเฉ เจเจพเจฃเจเจพเจฐเฉ เจฆเจพ เจธเฉฐเจเฉเจฐเจนเจฟ: Prometheus เจ เจคเฉ k8s api เจธเจฐเจตเจฐเฅค
- เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจญเจพเจเจพเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ (CPU เจธเจฎเจพเจ, เจฎเฉเจฎเฉเจฐเฉ, เจกเจฟเจธเจ เจธเจฌ-เจธเจฟเจธเจเจฎ, เจจเฉเฉฑเจเจตเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ) เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจคเจฐเจ - เจชเฉเจกเจพเจ เจฆเฉ เจธเจฟเจนเจค-เจธเจฅเจฟเจคเฉ, เจเจชเจฒเจฌเจง เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉเจเจ เจฆเฉ เจธเฉฐเจเจฟเจ, เจเฉเจตเจฟเจคเจคเจพ/เจคเจฟเจเจฐเจคเจพ เจเฉเจธเจ เจชเจพเจธ เจเจฐเจจ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉเฅค
เจญเจพเจ 1: "Grafana เจชเจฒเฉฑเจเจเจจ" เจเฉ เจนเฉ?
เจคเจเจจเฉเจเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, Grafana เจฒเจ เจชเจฒเฉฑเจเจเจจ เจเฉฑเจ เจเฉเจฃ เจเฉฐเจเจฐเฉเจฒเจฐ เจนเฉ, เจเฉ เจเจฟ Grafana เจกเฉเจเจพ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ (/var/grafana/plugins//dist/module.js) เจ เจคเฉ เจเฉฑเจ SystemJS เจฎเฉเจกเฉเจเจฒ เจตเจเฉเจ เจฒเฉเจก เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจจเจพเจฒ เจนเฉ เจเจธ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเฉฑเจ plugin.json เจซเจพเจเจฒ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจกเฉ เจชเจฒเฉฑเจเจเจจ เจฌเจพเจฐเฉ เจธเจพเจฐเฉ เจฎเฉเจเจพ เจเจพเจฃเจเจพเจฐเฉ เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉ: เจจเจพเจฎ, เจธเฉฐเจธเจเจฐเจฃ, เจชเจฒเฉฑเจเจเจจ เจเจฟเจธเจฎ, เจฐเจฟเจชเฉเจเจผเจเจฐเฉ/เจธเจพเจเจ/เจฒเจพเจเจธเฉเจเจธ, เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ, เจเจฆเจฟ เจฆเฉ เจฒเจฟเฉฐเจเฅค
module.ts
plugin.json
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจธเจเฉเจฐเฉเจจเจธเจผเฉเจ เจตเจฟเฉฑเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจ เจธเฉเจ plugin.type = เจเจช เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเฉเจคเจพ เจนเฉเฅค เจเจฟเจเจเจเจฟ Grafana เจฒเจ เจชเจฒเฉฑเจเจเจจ เจคเจฟเฉฐเจจ เจเจฟเจธเจฎเจพเจ เจฆเฉ เจนเฉ เจธเจเจฆเฉ เจนเจจ:
เจชเฉเจจเจฒ เจจเฉเฉฐ: เจชเจฒเฉฑเจเจเจจ เจฆเฉ เจธเจญ เจคเฉเจ เจเจฎ เจเจฟเจธเจฎ - เจเจน เจเจฟเจธเฉ เจตเฉ เจฎเฉเจเฉเจฐเจฟเจเจธ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจชเฉเจจเจฒ เจนเฉ, เจเฉ เจตเฉฑเจ-เจตเฉฑเจ เจกเฉเจธเจผเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจกเจพเจเจพ เจธเจฐเฉเจค: เจชเจฒเฉฑเจเจเจจ เจเฉเจจเฉเจเจเจฐ เจเฉเจ เจกเจพเจเจพ เจธเจฐเฉเจค (เจเจฆเจพเจนเจฐเจจ เจฒเจ, Prometheus-datasource, ClickHouse-datasource, ElasticSearch-datasource)เฅค
เจเจช: เจเฉฑเจ เจชเจฒเฉฑเจเจเจจ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ Grafana เจฆเฉ เจ
เฉฐเจฆเจฐ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจซเจฐเฉฐเจเจเจเจก เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเจฃเจพเจเจฃ, เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ html เจชเฉฐเจจเฉ เจฌเจฃเจพเจเจฃ เจ
เจคเฉ เจตเฉฑเจ-เจตเฉฑเจ เจกเฉเจเจพ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเจจ เจฒเจ เจกเฉเจเจพเจธเฉเจฐเจธ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจเจเจธเฉเจธ เจเจฐเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค เจจเจพเจฒ เจนเฉ, เจนเฉเจฐ เจเจฟเจธเจฎเจพเจ เจฆเฉ เจชเจฒเฉฑเจเจเจจ (เจกเฉเจเจพ เจธเจฐเฉเจค, เจชเฉเจจเจฒ) เจ
เจคเฉ เจตเฉฑเจ-เจตเฉฑเจ เจกเฉเจธเจผเจฌเฉเจฐเจกเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจเฉเจ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจพเจเจช=เจเจช เจฆเฉ เจจเจพเจฒ เจชเจฒเฉฑเจเจเจจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ เจเจฆเจพเจนเจฐเจจ.
เจคเฉเจธเฉเจ เจเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพ เจตเจเฉเจ JavaScript เจ
เจคเฉ TypeScript เจฆเฉเจตเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ (เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจเฉเจฃเจฟเจ เจนเฉ)เฅค เจเจฟเจธเฉ เจตเฉ เจเจฟเจธเจฎ เจฆเฉ เจนเฉเจฒเฉ-เจตเจฐเจฒเจก เจชเจฒเฉฑเจเจเจจ เจฒเจ เจคเจฟเจเจฐเฉเจเจ เจเฉ เจคเฉเจธเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจญเจพเจ 2: เจธเจฅเจพเจจเจ เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจจเจพ
เจชเจฒเฉฑเจเจเจจ 'เจคเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจเฉเจฆเจฐเจคเฉ เจคเฉเจฐ 'เจคเฉ เจธเจพเจฐเฉ เจชเฉเจฐเจต-เจเฉฐเจธเจเจพเจฒ เจเฉเจคเฉ เจเฉเจฒเจธ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ kubernetes เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจฒเฉเฉ เจนเฉ: prometheus, node-exporter, kube-state-metrics, 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 = [];
}
}
เจเฉเจเจฐเจพเจ เจ เจคเฉ เจธเฉเจเจฐเจพเจ เจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ, เจ เจธเฉเจ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจ เจคเฉ เจชเฉเฉเจนเจจเจฏเฉเจ เจฐเฉเจช เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเฉ เจเจเจพเจ เจฎเฉเจเฉเจฐเจฟเจเจธ เจจเฉเฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจพเจ เจธเฉเฉฑเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ เจฒเจพเจเฉเจเฉเจฌเจฒ cpu เจจเฉเจกเจธ เจฆเฉ เจซเจพเจฐเจฎเฉเจ เจเฉเจคเฉ เจเจเจเจชเฉเฉฑเจ:
get cpuAllocatableFormatted(){
let cpu = this.data.status.allocatable.cpu;
if(cpu.indexOf('m') > -1){
cpu = parseInt(cpu)/1000;
}
return cpu;
}
เจชเฉฐเจจเฉ
เจธเจพเจกเฉ เจธเจพเจฐเฉ เจชเจฒเฉฑเจเจเจจ เจชเฉฐเจจเจฟเจเจ เจฆเฉ เจธเฉเจเฉ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจธเจพเจกเฉ pluing.json เจตเจฟเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจญเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจฃเจจ เจเฉเจคเฉ เจเจ เจนเฉ:
เจนเจฐเฉเจ เจชเฉฐเจจเฉ เจฒเจ เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจธเจพเจจเฉเฉฐ เจชเฉฐเจจเจพ เจจเจพเจฎ เจฆเจฐเจธเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ (เจเจธ เจจเฉเฉฐ เจซเจฟเจฐ เจเฉฑเจ เจธเจฒเฉฑเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเจฟเฉฑเจคเจพ เจเจพเจตเฉเจเจพ เจเจฟเจธ เจฆเฉเจเจฐเจพ เจเจน เจชเฉฐเจจเจพ เจชเจนเฉเฉฐเจเจฏเฉเจ เจนเฉเจตเฉเจเจพ); เจเจธ เจชเฉฐเจจเฉ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเจฟเฉฑเจธเฉ เจฆเจพ เจจเจพเจฎ (เจเฉฐเจชเฉเจจเฉเจเจเจพเจ เจฆเฉ เจธเฉเจเฉ module.ts เจจเฉเฉฐ เจจเจฟเจฐเจฏเจพเจค เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ); เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจญเฉเจฎเจฟเจเจพ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉ เจเจฟเจธ เจฒเจ เจเจธ เจชเฉฐเจจเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจชเจฒเจฌเจง เจนเฉ เจ
เจคเฉ เจธเจพเจเจกเจฌเจพเจฐ เจฒเจ เจจเฉเจตเฉเจเฉเจธเจผเจจ เจธเฉเจเจฟเฉฐเจเจพเจเฅค
เจชเฉฐเจจเฉ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเจฟเฉฑเจธเฉ เจตเจฟเฉฑเจ, เจธเจพเจจเฉเฉฐ เจเฉเจเจชเจฒเฉเจเจฏเฉเจเจฐเจเจฒ เจธเฉเฉฑเจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจเฉฑเจฅเฉ เจฎเจพเจฐเจเจ เฉฑเจช เจฆเฉ เจจเจพเจฒ html เจซเจพเจเจฒ เจฆเจพ เจฎเจพเจฐเจ เจชเจพเจธ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเฉฐเจเจฐเฉเจฒเจฐ เจฆเฉ เจ เฉฐเจฆเจฐ, เจจเจฟเจฐเจญเจฐเจคเจพ เจเฉเจเฉ เจฆเฉเจเจฐเจพ, เจ เจธเฉเจ 2 เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจเฉเจฃ เจธเฉเจตเจพเจตเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ:
- backendSrv - เจเฉฑเจ เจธเฉเจตเจพ เจเฉ Grafana API เจธเจฐเจตเจฐ เจจเจพเจฒ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเฉ;
- datasourceSrv เจเฉฑเจ เจธเฉเจตเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจกเฉ Grafana เจตเจฟเฉฑเจ เจธเจฅเจพเจชเจฟเจค เจธเจพเจฐเฉ เจกเจพเจเจพ เจธเจฐเฉเจคเจพเจ เจจเจพเจฒ เจธเจฅเจพเจจเจ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเฉ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, .getAll() เจตเจฟเจงเฉ - เจธเจพเจฐเฉ เจเฉฐเจธเจเฉเจฒ เจเฉเจคเฉ เจกเฉเจเจพ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจธเฉเจเฉ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉ; .get() - เจเฉฑเจ เจเจพเจธ เจกเฉเจเจพ เจธเจฐเฉเจค เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจตเจธเจคเฉ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค .
เจญเจพเจ 4: เจกเจพเจเจพ เจธเจฐเฉเจค
Grafana เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, เจกเฉเจเจพเจธเฉเจฐเจธ เจฌเจฟเจฒเจเฉเจฒ เจเจนเฉ เจชเจฒเฉฑเจเจเจจ เจนเฉ เจเฉ เจฌเจพเจเฉ เจธเจพเจฐเฉ เจนเจจ: เจเจธเจฆเจพ เจเจชเจฃเจพ เจเจเจเจฐเฉ เจชเฉเจเจเฉฐเจ module.js เจนเฉ, เจฎเฉเจเจพ เจเจพเจฃเจเจพเจฐเฉ plugin.json เจตเจพเจฒเฉ เจเฉฑเจ เจซเจพเจเจฒ เจนเฉเฅค เจเจพเจเจช = เจเจช เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจชเจฒเฉฑเจเจเจจ เจตเจฟเจเจธเจฟเจค เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจ เจธเฉเจ เจฎเฉเจเฉเจฆเจพ เจกเฉเจเจพเจธเฉเจฐเจธ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจชเฉเจฐเฉเจฎเฉเจฅเฉเจ เจธ-เจกเฉเจเจพเจธเฉเจฐเจธ) เจ เจคเฉ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจฆเฉเจตเจพเจ เจจเจพเจฒ เจเฉฐเจเจฐเฉเจเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจเจฟเจธ เจจเฉเฉฐ เจ เจธเฉเจ เจธเจฟเฉฑเจงเจพ เจชเจฒเฉฑเจเจเจจ เจกเจพเจเจฐเฉเจเจเจฐเฉ (dist/datasource/*) เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจเจพเจ เจเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจเฉเจ เจธเจฅเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจกเฉเจเจพเจธเฉเจฐเจธ เจชเจฒเฉฑเจเจเจจ เจเฉเจก เจฆเฉ เจจเจพเจฒ เจเจเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ 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"};
})
}
เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจฆเจฟเจฒเจเจธเจช เจฌเจฟเฉฐเจฆเฉ, เจธเจพเจกเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจกเฉเจเจพ เจธเจฐเฉเจค เจฒเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจ เจคเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจตเจฟเจงเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ เจนเฉเฅค เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจฌเจพเจเจธ เจคเฉเจ เจฌเจพเจนเจฐ, เจ เจธเฉเจ เจ เฉฐเจคเจฎ เจกเฉเจเจพ เจธเจฐเฉเจค เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจฌเจฟเจฒเจ-เจเจจ เจเฉเจฐเจพเจซเจพเจจเจพ เจเฉฐเจชเฉเจจเฉเจเจ เจกเฉเจเจพเจธเฉเจฐเจธHttpSettings เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจเจธ เจเฉฐเจชเฉเจจเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจ เจธเฉเจ url เจ เจคเฉ เจฎเฉเจฒ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ/เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจธเฉเจเจฟเฉฐเจเจพเจ: เจฒเฉเจเจเจจ-เจชเจพเจธเจตเจฐเจก, เจเจพเจ เจเจฒเจพเจเฉฐเจ-เจธเจฐเจ/เจเจฒเจพเจเฉฐเจ-เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจเฉ http เจกเจพเจเจพ เจธเจฐเฉเจค เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจเฉฑเจ เจฌเฉเจ เจฐเจฐ เจเฉเจเจจ (k8s เจฒเจ เจกเฉ เจซเฉเจเจเฉ เจธเจเฉเจเจกเจฐเจก) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจฅเฉเฉเจพ เจเจฟเจนเจพ เจเจตเฉเจเจฟเฉฐเจ เจเจฐเจจเจพ เจชเจฟเจเฅค
เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจฌเจฟเจฒเจ-เจเจจ เจเฉเจฐเจพเจซเจพเจจเจพ "เจชเจฒเฉฑเจเจเจจ เจฐเฉเจเจธ" เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ (เจตเจงเฉเจฐเฉ เจตเฉเจฐเจตเฉ เจเฉฑเจฅเฉ
เจ
เจงเจฟเจเจพเจฐ เจฆเฉ เจจเจพเจฒ /api/v8/เจจเจพเจฎ เจธเจชเฉเจธ: เจฌเฉเจ
เจฐเจฐ เจนเฉเจกเจฐเฅค
เจเฉเจฆเจฐเจคเฉ เจคเฉเจฐ 'เจคเฉ, k8s api เจธเจฐเจตเจฐ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจชเฉเฉเจนเจจ เจฒเจ เจชเจนเฉเฉฐเจ เจตเจพเจฒเฉ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจฟเจธ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจคเฉเจธเฉเจ เจเจธ เจตเจฟเฉฑเจ เจตเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉเฅค
เจญเจพเจ 5: เจฐเจฟเจฒเฉเจเจผ
เจเฉฑเจ เจตเจพเจฐ เจเจฆเฉเจ เจคเฉเจธเฉเจ เจเจชเจฃเจพ Grafana เจชเจฒเฉฑเจเจเจจ เจฒเจฟเจ เจฒเฉเจเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเฉเจฆเจฐเจคเฉ เจคเฉเจฐ 'เจคเฉ เจเจธเจจเฉเฉฐ เจเจจเจคเจ เจคเฉเจฐ 'เจคเฉ เจเจชเจฒเจฌเจง เจเจฐเจตเจพเจเจฃเจพ เจเจพเจนเฉเจเฉเฅค Grafana เจตเจฟเฉฑเจ เจเจน เจเฉฑเจฅเฉ เจเจชเจฒเจฌเจง เจชเจฒเฉฑเจเจเจจเจพเจ เจฆเฉ เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจนเฉ
เจคเฉเจนเจพเจกเฉ เจชเจฒเฉฑเจเจเจจ เจฆเฉ เจ
เจงเจฟเจเจพเจฐเจค เจธเจเฉเจฐ 'เจคเฉ เจเจชเจฒเจฌเจง เจนเฉเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ PR เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ
เจเจฟเฉฑเจฅเฉ เจธเฉฐเจธเจเจฐเจฃ เจคเฉเจนเจพเจกเฉ เจชเจฒเฉฑเจเจเจจ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ เจนเฉ, url เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฆเจพ เจเฉฑเจ เจฒเจฟเฉฐเจ เจนเฉ, เจ
เจคเฉ เจเจฎเจฟเจ เจเจฎเจฟเจ เจฆเจพ เจนเฉเจธเจผ เจนเฉ เจเจฟเจธ เจฒเจ เจชเจฒเฉฑเจเจเจจ เจฆเจพ เจเฉฑเจ เจเจพเจธ เจธเฉฐเจธเจเจฐเจฃ เจเจชเจฒเจฌเจง เจนเฉเจตเฉเจเจพเฅค
เจ เจคเฉ เจเจเจเจชเฉเฉฑเจ 'เจคเฉ เจคเฉเจธเฉเจ เจเฉฑเจ เจธเจผเจพเจจเจฆเจพเจฐ เจคเจธเจตเฉเจฐ เจฆเฉเจเฉเจเฉ เจเจฟเจตเฉเจ เจเจฟ:
เจเจธเจฆเฉ เจฒเจ เจกเฉเจเจพ เจคเฉเจนเจพเจกเฉ Readme.md, Changelog.md เจ
เจคเฉ เจชเจฒเฉฑเจเจเจจ เจตเฉเจฐเจตเฉ เจตเจพเจฒเฉ plugin.json เจซเจพเจเจฒ เจคเฉเจ เจเจชเจฃเฉ เจเจช เจนเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจญเจพเจ 6: เจธเจฟเฉฑเจเฉ เจฆเฉ เจฌเจเจพเจ
เจ เจธเฉเจ เจฐเฉเจฒเฉเจเจผ เจคเฉเจ เจฌเจพเจ เจฆ เจธเจพเจกเฉ เจชเจฒเฉฑเจเจเจจ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจเจพ เจฌเฉฐเจฆ เจจเจนเฉเจ เจเฉเจคเจพ. เจ เจคเฉ เจนเฉเจฃ เจ เจธเฉเจ เจเจฒเฉฑเจธเจเจฐ เจจเฉเจกเจพเจ เจฆเฉ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจจ, UX เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจจเจตเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจชเฉเจธเจผ เจเจฐเจจ, เจ เจคเฉ เจธเจพเจกเฉ เจเฉเจฐเจพเจนเจเจพเจ เจฆเฉเจเจฐเจพ เจ เจคเฉ GitHub (เจเฉ เจคเฉเจธเฉเจ เจเฉฑเจกเจฆเฉ เจนเฉ) เจฆเฉเจตเจพเจ เจฆเฉเจเจฐเจพ เจชเจฒเฉฑเจเจเจจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจชเฉเจฐเจพเจชเจค เจนเฉเจ เจซเฉเจกเจฌเฉเจ เจฆเฉ เจเฉฑเจ เจตเฉฑเจกเฉ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ 'เจคเฉ เจเฉฐเจฎ เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค เจคเฉเจนเจพเจกเจพ เจฎเฉเฉฑเจฆเจพ เจเจพเจ เจชเฉเฉฑเจฒ เจฌเฉเจจเจคเฉ, เจฎเฉเจ เจฌเจนเฉเจค เจเฉเจธเจผ เจนเฉเจตเจพเจเจเจพ :)
เจ เจธเฉเจ เจเจฎเฉเจฆ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟ เจเจน เจฒเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจฐเจพเจซเจพเจจเจพ เจตเจฐเจเฉ เจธเจผเจพเจจเจฆเจพเจฐ เจเฉเจฒ เจจเฉเฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐเฉเจเจพ เจ เจคเฉ, เจธเจผเจพเจเจฆ, เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจชเจฒเฉฑเจเจเจจ เจฒเจฟเจเฉ.
เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ!)
เจธเจฐเฉเจค: www.habr.com