เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจธเจคเจฟ เจธเฉเจฐเฉ€ เจ…เจ•เจพเจฒ เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ! เจ•เฉเจ เจฎเจนเฉ€เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเจพ เจจเจตเจพเจ‚ เจ“เจชเจจ-เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฒเจˆ เจ‡เฉฑเจ• เจ—เฉเจฐเจพเจซเจพเจจเจพ เจชเจฒเฉฑเจ—เจ‡เจจ, เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจธเฉ€เฅค DevOpsProdigy KubeGraf เจตเฉฑเจฒเฉ‹เจ‚ เจนเฉ‹เจฐเจชเจฒเฉฑเจ—เจ‡เจจ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจ‡เจธ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเฉˆ GitHub 'เจคเฉ‡ เจœเจจเจคเจ• เจญเฉฐเจกเจพเจฐเจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจกเฉ‡ เจจเจพเจฒ เจชเจฒเฉฑเจ—เจ‡เจจ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจ‡เจ†, เจตเจฐเจคเฉ‡ เจ—เจ เจŸเฉ‚เจฒเจธ, เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจฆเฉŒเจฐเจพเจจ เจธเจพเจจเฉ‚เฉฐ เจ†เจˆเจ†เจ‚ เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจฆเฉ€ เจ•เจนเจพเจฃเฉ€ เจธเจพเจ‚เจเฉ€ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ†เจ“ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ!

เจญเจพเจ— 0 - เจœเจพเจฃ-เจชเจ›เจพเจฃ: เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจชเจนเฉเฉฐเจšเฉ‡?

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ†เจชเจฃเจพ เจชเจฒเฉฑเจ—เจ‡เจจ เจฒเจฟเจ–เจฃ เจฆเจพ เจตเจฟเจšเจพเจฐ เจธเจพเจจเฉ‚เฉฐ เจ…เจšเจพเจจเจ• เจนเฉ€ เจ†เจ‡เจ†เฅค เจธเจพเจกเฉ€ เจ•เฉฐเจชเจจเฉ€ 10 เจธเจพเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจœเจŸเจฟเจฒเจคเจพ เจตเจพเจฒเฉ‡ เจตเฉˆเฉฑเจฌ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐ เจฐเจนเฉ€ เจนเฉˆเฅค เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจฆเฉŒเจฐเจพเจจ, เจ…เจธเฉ€เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจฎเฉเจนเจพเจฐเจค, เจฆเจฟเจฒเจšเจธเจช เจ•เฉ‡เจธ เจ…เจงเจฟเจเจจ เจ…เจคเฉ‡ เจ…เจจเฉเจญเจต เจฆเจพ เจญเฉฐเจกเจพเจฐ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจธเฉ€เจ‚ เจธเฉ‹เจšเจฟเจ†: "เจ•เฉ€ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฒเจˆ เจ•เฉ‹เจˆ เจœเจพเจฆเฉ‚เจˆ เจŸเฉ‚เจฒ เจนเฉˆ เจœเจฟเจธเจจเฉ‚เฉฐ เจคเฉเจธเฉ€เจ‚, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‰เจน เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจจ, 'เจ‡เจธเจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจญเฉเฉฑเจฒ เจœเจพเจ“'"? เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ + เจ—เฉเจฐเจพเจซเจพเจจเจพ เจ•เฉฐเจฌเฉ‹ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ K8S เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฒเจˆ เจ‰เจฆเจฏเฉ‹เจ— เจฆเจพ เจฎเจฟเจ†เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจ‡เจธ เจธเจŸเฉˆเจ• เจฒเจˆ เจคเจฟเจ†เจฐ-เจ•เฉ€เจคเฉ‡ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเจพเจฒ เจธเจผเฉเจฐเฉ‡เจฃเฉ€ เจฎเฉŒเจœเฉ‚เจฆ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ-เจ“เจชเจฐเฉ‡เจŸเจฐ, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ-เจฎเจฟเจ•เจธเจฟเจจ เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจธเฉ‚เจŸ, เจ…เจคเฉ‡ เจ—เฉเจฐเจพเจซเจพเจจเจพ-เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ-เจเจช เจธเจผเจพเจฎเจฒ เจนเจจเฅค

grafana-kubernetes-app เจชเจฒเฉฑเจ—เจ‡เจจ เจธเจพเจกเฉ‡ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจฆเจฟเจฒเจšเจธเจช เจตเจฟเจ•เจฒเจช เจœเจพเจชเจฆเจพ เจธเฉ€, เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• เจธเจพเจฒ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน node-exporter เจ…เจคเฉ‡ kube-state-metrics เจฆเฉ‡ เจจเจตเฉ‡เจ‚ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจธเฉ€เจ‚ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, "เจ•เจฟเจ‰เจ‚ เจจเจพ เจ†เจชเจฃเจพ เจนเฉฑเจฒ เจ–เฉเจฆ เจฌเจฃเจพเจˆเจ?"

เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจตเจฟเฉฑเจš เจ•เจฟเจนเฉœเฉ‡ เจตเจฟเจšเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ?

  • เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฎเฉˆเจช เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจ: เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจชเฉเจฐเจคเฉ€เจจเจฟเจงเจคเจพ, เจจเจพเจฎ-เจธเจฅเจพเจจเจพเจ‚, เจคเฉˆเจจเจพเจคเฉ€เจ†เจ‚, เจ†เจฆเจฟ เจฆเฉเจ†เจฐเจพ เจธเจฎเฉ‚เจนเจฌเฉฑเจง;
  • "เจคเฉˆเจจเจพเจคเฉ€ - เจธเฉ‡เจตเจพ (+เจชเฉ‹เจฐเจŸ)" เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ•เจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจฆเจพ เจตเจฟเจœเจผเฉ‚เจ…เจฒเจพเจˆเจœเจผเฉ‡เจธเจผเจจเฅค
  • เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจกเจพเจ‚ เจตเจฟเฉฑเจš เจ•เจฒเฉฑเจธเจŸเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเฉฐเจก เจฆเจพ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃเฅค
  • เจ•เจˆ เจธเจฐเฉ‹เจคเจพเจ‚ เจคเฉ‹เจ‚ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจ…เจคเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ‡เจ•เฉฑเจ เฉ€ เจ•เจฐเจจเจพ: เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจ…เจคเฉ‡ k8s API เจธเจฐเจตเจฐเฅค
  • เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ (CPU เจธเจฎเจพเจ‚, เจฎเฉˆเจฎเฉ‹เจฐเฉ€, เจกเจฟเจธเจ• เจธเจฌเจธเจฟเจธเจŸเจฎ, เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚) เจ…เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจพเจœเจฟเจ• เจฆเฉ‹เจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ - เจชเฉŒเจกเจพเจ‚ เจฆเฉ€ เจธเจฟเจนเจค เจธเจฅเจฟเจคเฉ€, เจ‰เจชเจฒเจฌเจง เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€, เจ…เจคเฉ‡ เจฒเจพเจˆเจตเจจเฉˆเฉฑเจธ/เจคเจฟเจ†เจฐเฉ€ เจŸเฉˆเจธเจŸเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ—เจคเฉ€ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€เฅค

เจญเจพเจ— 1: เจ—เฉเจฐเจพเจซเจพเจจเจพ เจชเจฒเฉฑเจ—เจ‡เจจ เจ•เฉ€ เจนเฉˆ?

เจคเจ•เจจเฉ€เจ•เฉ€ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚, เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจ‡เฉฑเจ• เจเจ‚เจ—เฉเจฒเจฐ เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจนเฉˆ เจœเฉ‹ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฆเฉ€ เจกเฉ‡เจŸเจพ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (/var/เจ—เฉเจฐเจพเจซเจพเจจเจพ/เจชเจฒเฉฑเจ—เจ‡เจจ/ /dist/module.js) เจ…เจคเฉ‡ เจ‡เฉฑเจ• SystemJS เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• plugin.json เจซเจพเจˆเจฒ เจตเฉ€ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจฌเจพเจฐเฉ‡ เจธเจพเจฐเจพ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ: เจจเจพเจฎ, เจธเฉฐเจธเจ•เจฐเจฃ, เจชเจฒเฉฑเจ—เจ‡เจจ เจ•เจฟเจธเจฎ, เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€/เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ/เจฒเจพเจ‡เจธเฉˆเจ‚เจธ เจฒเจฟเฉฐเจ•, เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚, เจ…เจคเฉ‡ เจนเฉ‹เจฐเฅค

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ
เจฎเฉ‹เจกเฉ€เจŠเจฒ.เจŸเฉ€.เจเฉฑเจธ

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ
เจชเจฒเฉฑเจ—เจ‡เจจ.เจœเฉ‡เจธเจจ

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเฉ€เจจเจธเจผเฉŒเจŸ เจตเจฟเฉฑเจš เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจธเฉ€เจ‚ plugin.type = app เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจฒเจˆ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจคเจฟเฉฐเจจ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจนเจจ:

เจชเฉˆเจจเจฒ เจจเฉ‚เฉฐ: เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเฉ€ เจธเจญ เจคเฉ‹เจ‚ เจ†เจฎ เจ•เจฟเจธเจฎ - เจ‡เจน เจ•เฉเจ เจ–เจพเจธ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉˆเจจเจฒ เจนเฉˆ เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
เจกเจพเจŸเจพ เจธเจฐเฉ‹เจค: เจ•เจฟเจธเฉ‡ เจตเฉ€ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจจเจพเจฒ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจ•เจจเฉˆเจ•เจŸเจฐ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ-เจกเจพเจŸเจพเจธเฉ‹เจฐเจธ, เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ-เจกเจพเจŸเจพเจธเฉ‹เจฐเจธ, เจ‡เจฒเฉˆเจธเจŸเจฟเจ• เจธเจฐเจš-เจกเจพเจŸเจพเจธเฉ‹เจฐเจธ)เฅค
เจเจช: เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจซเจฐเฉฐเจŸเจเจ‚เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฌเจฃเจพเจ‰เจฃ, เจ†เจชเจฃเฉ‡ เจ–เฉเจฆ เจฆเฉ‡ HTML เจชเฉฐเจจเฉ‡ เจฌเจฃเจพเจ‰เจฃ, เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจกเฉ‡เจŸเจพเจธเฉ‹เจฐเจธ เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจนเฉ‹เจฐ เจชเจฒเฉฑเจ—เจ‡เจจ เจ•เจฟเจธเจฎเจพเจ‚ (เจกเฉ‡เจŸเจพเจธเฉ‹เจฐเจธ, เจชเฉˆเจจเจฒ) เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ
เจ•เจฟเจธเจฎ = เจเจช เจจเจพเจฒ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ.

เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจตเจœเฉ‹เจ‚ JavaScript เจœเจพเจ‚ TypeScript เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจ…เจธเฉ€เจ‚ TypeScript เจšเฉเจฃเจฟเจ† เจนเฉˆ)เฅค เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ‡ hello-world เจชเจฒเฉฑเจ—เจ‡เจจ เจฒเจˆ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจฒเจฟเฉฐเจ• เจฆเฉเจ†เจฐเจพ เจฒเฉฑเจญเฉ‹: เจ‡เจธ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจฌเจฟเจฒเจกเจฐเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ เจตเจฟเฉฑเจš เจธเจŸเจพเจฐเจŸเจฐ เจชเฉˆเจ• (เจ‡เฉฑเจ• เจฐเฉ€เจเจ•เจŸ เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจตเฉ€ เจนเฉˆ) เจนเจจเฅค

เจญเจพเจ— 2: เจธเจฅเจพเจจเจ• เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เจฐเจจเจพ

เจชเจฒเฉฑเจ—เจ‡เจจ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจพเจฐเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค เจŸเฉ‚เจฒเจธ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€: เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ, เจจเฉ‹เจก-เจเจ•เจธเจชเฉ‹เจฐเจŸเจฐ, เจ•เจฟเจŠเจฌ-เจธเจŸเฉ‡เจŸ-เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ, เจ…เจคเฉ‡ เจ—เฉเจฐเจพเจซเจพเจจเจพเฅค เจตเจพเจคเจพเจตเจฐเจฃ เจคเฉ‡เจœเจผ, เจ†เจธเจพเจจ เจ…เจคเฉ‡ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เจฐเจจ เจฒเจˆ เจฎเฉเจธเจผเจ•เจฒ เจฐเจนเจฟเจค เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ—เจฐเจฎ เจฐเฉ€เจฒเฉ‹เจกเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ—เฉเจฐเจพเจซเจพเจจเจพ เจกเฉ‡เจŸเจพ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฆเฉ€ เจฎเจธเจผเฉ€เจจ เจคเฉ‹เจ‚ เจธเจฟเฉฑเจงเจพ เจฎเจพเจŠเจ‚เจŸ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจธเจพเจกเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจจเจพเจฒ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจคเจฐเฉ€เจ•เจพ เจนเฉˆ minikubeเจ…เจ—เจฒเจพ เจ•เจฆเจฎ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ-เจ“เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ + เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฌเฉฐเจกเจฒ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ‡เจน เจฒเฉ‡เจ– เจฎเจฟเจจเฉ€เจ•เจฟเจŠเจฌ 'เจคเฉ‡ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ-เจ“เจชเจฐเฉ‡เจŸเจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจธเจฅเจฟเจฐเจคเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจฆเฉเจฐเจฟเฉœเจคเจพ: เจธเฉฑเจš charts/grafana/values.yaml เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš, เจ†เจชเจฃเจพ PV เจ…เจคเฉ‡ PVC เจœเฉ‹เฉœเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ persistence.existingClaim เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจตเจฟเฉฑเจš เจฆเฉฑเจธเฉ‹เฅค

เจธเจพเจกเฉ€ เจ…เฉฐเจคเจฟเจฎ เจฎเจฟเจจเฉ€เจ•เจฟเจŠเจฌ เจฒเจพเจ‚เจš เจธเจ•เฉเจฐเจฟเจชเจŸ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ:

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 เจ•เจฒเจพเจธเจพเจ‚ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจพเจ‚เจ—เฉ‡: pod, deployment, daemonset, statefulset, job, cronjob, service, node, เจ…เจคเฉ‡ namespaceเฅค เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐเฉ‡เจ• เจ•เจฒเจพเจธ เจ‡เฉฑเจ• เจ†เจฎ BaseModel เจ•เจฒเจพเจธ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจ‡เฉฑเจ• เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐ, เจกเจฟเจธเจŸเฉเจฐเจ•เจŸเจฐ, เจ…เจคเฉ‡ เจฆเจฟเฉฑเจ– เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจ…เจคเฉ‡ เจŸเฉŒเจ—เจฒ เจ•เจฐเจจ เจฆเฉ‡ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจนเจฐเฉ‡เจ• เจ•เจฒเจพเจธ เจนเฉ‹เจฐ เจ‡เจ•เจพเจˆเจ†เจ‚ เจจเจพเจฒ เจจเฉ‡เจธเจŸเจก เจธเจฌเฉฐเจงเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจกเจฟเจชเจฒเจพเจ‡เจฎเฉˆเจ‚เจŸ เจ‡เจ•เจพเจˆ เจฒเจˆ เจชเฉŒเจก เจฆเฉ€ เจธเฉ‚เจšเฉ€เฅค

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 เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพ เจญเจพเจ— เจตเจฟเฉฑเจš เจฆเฉฑเจธเฉ€ เจ—เจˆ เจนเฉˆ:

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจนเจฐเฉ‡เจ• เจชเฉฐเจจเฉ‡ เจฆเฉ‡ เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš, เจธเจพเจจเฉ‚เฉฐ PAGE NAME (เจ‡เจธเจจเฉ‚เฉฐ เจซเจฟเจฐ เจ‡เฉฑเจ• เจธเจฒเฉฑเจ— เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ เจœเจฟเจธ เจฆเฉเจ†เจฐเจพ เจ‡เจน เจชเฉฐเจจเจพ เจชเจนเฉเฉฐเจšเจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพ); เจ‡เจธ เจชเฉฐเจจเฉ‡ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเจฟเฉฑเจธเฉ‡ เจฆเจพ เจจเจพเจฎ (เจญเจพเจ—เจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ module.ts เจจเฉ‚เฉฐ เจจเจฟเจฐเจฏเจพเจค เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ); เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจญเฉ‚เจฎเจฟเจ•เจพ เจฆเจพ เจธเฉฐเจ•เฉ‡เจค เจœเจฟเจธ เจฒเจˆ เจ‡เจธ เจชเฉฐเจจเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจ…เจคเฉ‡ เจธเจพเจˆเจกเจฌเจพเจฐ เจฒเจˆ เจจเฉˆเจตเฉ€เจ—เฉ‡เจธเจผเจจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚เฅค

เจชเฉฐเจจเฉ‡ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš, เจธเจพเจจเฉ‚เฉฐ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจฏเฉ‚เจ†เจฐเจเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ‡เจธเจจเฉ‚เฉฐ เจฎเจพเจฐเจ•เจ…เฉฑเจช เจตเจพเจฒเฉ€ HTML เจซเจพเจˆเจฒ เจฆเจพ เจฎเจพเจฐเจ— เจฆเฉ‡เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ, เจจเจฟเจฐเจญเจฐเจคเจพ เจ‡เฉฐเจœเฉˆเจ•เจธเจผเจจ เจฐเจพเจนเฉ€เจ‚, เจ…เจธเฉ€เจ‚ เจฆเฉ‹ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจเจ‚เจ—เฉ‚เจฒเจฐ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚:

  • backendSrv เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจนเฉˆ เจœเฉ‹ Grafana API เจธเจฐเจตเจฐ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ;
  • datasourceSrv เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ Grafana เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค เจธเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจธเจฅเจพเจจเจ• เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, .getAll() เจตเจฟเจงเฉ€ เจธเจพเจฐเฉ‡ เจธเจฅเจพเจชเจค เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจตเจพเจชเจธ เจ•เจฐเจฆเฉ€ เจนเฉˆ; .get( ) โ€” เจ‡เฉฑเจ• เจ–เจพเจธ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจฆเจพ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจตเจธเจคเฉ‚ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจญเจพเจ— 4: เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฆเฉ‡ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚, เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจธเฉ‹เจฐเจธ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจนเฉ‹เจฐ เจชเจฒเฉฑเจ—เจ‡เจจ เจตเจพเจ‚เจ— เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจนเฉˆ: เจ‡เจธเจฆเจพ เจ†เจชเจฃเจพ เจเจ‚เจŸเจฐเฉ€ เจชเฉเจ†เจ‡เฉฐเจŸ, module.js, เจ…เจคเฉ‡ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• plugin.json เจซเจพเจˆเจฒ เจนเฉˆเฅค type = app เจจเจพเจฒ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจตเจฟเจ•เจธเจค เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ…เจธเฉ€เจ‚ เจฎเฉŒเจœเฉ‚เจฆเจพ เจกเฉ‡เจŸเจพเจธเฉ‹เจฐเจธ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, prometheus-datasource) เจœเจพเจ‚ เจ†เจชเจฃเฉ‡ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธเจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจธเจฟเฉฑเจงเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ (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"};
       })
}

เจ‡เฉฑเจ• เจ–เจพเจธ เจฆเจฟเจฒเจšเจธเจช เจชเจนเจฟเจฒเฉ‚, เจธเจพเจกเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจฒเจˆ เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจจ เจ…เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจตเจฟเจงเฉ€ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ, เจ…เจธเฉ€เจ‚ เจ…เฉฐเจคเจฎ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฒเจˆ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฆเฉ‡ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจคHttpSettings เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจฆเฉ‡ เจจเจพเจฒ, เจ…เจธเฉ€เจ‚ URL เจ…เจคเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจจ/เจ…เจงเจฟเจ•เจพเจฐ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจ•เฉ‡ HTTP เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚: เจฒเฉŒเจ—เจ‡เจจ/เจชเจพเจธเจตเจฐเจก, เจœเจพเจ‚ เจ•เจฒเจพเจ‡เฉฐเจŸ-เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ/เจ•เจฒเจพเจ‡เฉฐเจŸ-เจ•เฉเฉฐเจœเฉ€เฅค เจ‡เฉฑเจ• เจฌเฉ‡เจ…เจฐเจฐ เจŸเฉ‹เจ•เจจ (k8s เจฒเจˆ เจ…เจธเจฒ เจฎเจฟเจ†เจฐ) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เฉเจ เจŸเจฟเฉฐเจ•เจฐเจฟเฉฐเจ— เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€เฅค

เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฆเฉ‡ เจฌเจฟเจฒเจŸ-เจ‡เจจ "เจชเจฒเฉฑเจ—เจ‡เจจ เจฐเฉ‚เจŸเจธ" เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจชเฉฐเจจเจพ). เจธเจพเจกเฉ€เจ†เจ‚ เจกเฉ‡เจŸเจพเจธเฉ‹เจฐเจธ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจจเจฟเจฏเจฎเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจ˜เฉ‹เจธเจผเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจธเจฐเจตเจฐ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡เฅค เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจนเจฐเฉ‡เจ• เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจ…เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ‚ เจฒเจˆ, เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจธเจนเจพเจ‡เจคเจพ เจจเจพเจฒ เจนเฉˆเจกเจฐ เจœเจพเจ‚ URL เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเจพ เจตเจฟเจ•เจฒเจช เจนเฉˆ, เจœเจฟเจธ เจฒเจˆ เจกเฉ‡เจŸเจพ jsonData เจ…เจคเฉ‡ secureJsonData เจ–เฉ‡เจคเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจชเจพเจธเจตเจฐเจก เจœเจพเจ‚ เจŸเฉ‹เจ•เจจเจพเจ‚ เจจเฉ‚เฉฐ เจเจจเจ•เฉเจฐเจฟเจชเจŸเจก เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ)เฅค เจธเจพเจกเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจตเจฟเฉฑเจš, เจซเจพเจฐเจฎ เจฆเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ /__เจชเฉเจฐเฉŒเจ•เจธเฉ€/เจเจชเฉ€เจ†เจˆ/เจตเฉ€1/เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ‡ URL เจจเจพเจฒ เจชเฉเจฐเฉŒเจ•เจธเฉ€ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ
/api/v1/namespaces เจ…เจงเจฟเจ•เจพเจฐ เจฆเฉ‡ เจจเจพเจฒ: เจฌเฉ‡เจ…เจฐเจฐ เจนเฉˆเจกเจฐ เจธเฉˆเฉฑเจŸเฅค

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, k8s api เจธเจฐเจตเจฐ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ-เจชเฉœเฉเจนเจจ เจตเจพเจฒเฉ€ เจชเจนเฉเฉฐเจš เจตเจพเจฒเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเฉฑเจš เจตเฉ€ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจชเจฒเฉฑเจ—เจ‡เจจ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก.

เจญเจพเจ— 5: เจฐเจฟเจนเจพเจˆ

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเจพ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจชเจฒเฉฑเจ—เจ‡เจจ เจฒเจฟเจ– เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ‹เจ—เฉ‡เฅค เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเจฟเฉฑเจš, เจ‡เจน เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆ grafana.com/grafana/plugins

เจคเฉเจนเจพเจกเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจ…เจงเจฟเจ•เจพเจฐเจค เจธเจŸเฉ‹เจฐ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจ•เจฐเจตเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• PR เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ‡เจน เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€, repo.json เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจœเฉ‹เฉœเจจเจพ:

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจœเจฟเฉฑเจฅเฉ‡ version เจคเฉเจนเจพเจกเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฐเจœเจจ เจนเฉˆ, url เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเจพ เจฒเจฟเฉฐเจ• เจนเฉˆ, เจ…เจคเฉ‡ commit เจ•เจฎเจฟเจŸ เจฆเจพ เจนเฉˆเจธเจผ เจนเฉˆ เจœเฉ‹ เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเฉ‡ เจ–เจพเจธ เจตเจฐเจœเจจ เจจเฉ‚เฉฐ เจ‰เจชเจฒเจฌเจง เจ•เจฐเจตเจพเจเจ—เจพเฅค

เจ…เจคเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ 'เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจคเจธเจตเฉ€เจฐ เจตเฉ‡เจ–เฉ‹เจ—เฉ‡:

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฆเจพ เจตเจฟเจ•เจพเจธ: เจตเฉฑเจกเฉ‡ เจธเจผเจพเจŸเจธ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ

เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจกเฉ‡เจŸเจพ เจคเฉเจนเจพเจกเฉ‡ Readme.md, Changelog.md, เจ…เจคเฉ‡ plugin.json เจซเจพเจˆเจฒ เจคเฉ‹เจ‚ เจชเจฒเฉฑเจ—เจ‡เจจ เจตเฉ‡เจฐเจตเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจฒเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจญเจพเจ— 6: เจธเจฟเฉฑเจŸเจฟเจ†เจ‚ เจฆเฉ€ เจฌเจœเจพเจ

เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจฐเจฟเจฒเฉ€เจœเจผ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเจ•เจธเจค เจ•เจฐเจจเจพ เจฌเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš เจ•เจฒเฉฑเจธเจŸเจฐ เจจเฉ‹เจก เจธเจฐเฉ‹เจค เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ€ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจจเฉเจญเจต เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ, เจ…เจคเฉ‡ เจชเจฒเฉฑเจ—เจ‡เจจ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจกเฉ‡ เจ—เจพเจนเจ•เจพเจ‚ เจ…เจคเฉ‡ GitHub 'เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‹เจตเจพเจ‚ เจคเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจˆ เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจซเฉ€เจกเจฌเฉˆเจ• เจจเฉ‚เฉฐ เจ›เจพเจ‚เจŸเจฃ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚ (เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉ‹เจˆ เจฎเฉเฉฑเจฆเจพ เจœเจพเจ‚ เจชเฉเฉฑเจฒ เจฌเฉ‡เจจเจคเฉ€ เจ›เฉฑเจกเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจฌเจนเฉเจค เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€ :))เฅค

เจธเจพเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจฒเฉ‡เจ– เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเจฐเจ—เฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจŸเฉ‚เจฒ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡, เจธเจผเจพเจ‡เจฆ, เจ†เจชเจฃเจพ เจชเจฒเฉฑเจ—เจ‡เจจ เจฒเจฟเจ–เจฃ เจตเจฟเฉฑเจš เจตเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพเฅค

เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ!)

เจธเจฐเฉ‹เจค: www.habr.com

DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ ๐Ÿ”ฅ DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ | ProHoster