เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เชจเชฎเชธเซเชคเซ‡ เชฌเชงเชพ! เชฅเซ‹เชกเชพ เชฎเชนเชฟเชจเชพ เชชเชนเซ‡เชฒเชพ, เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชจเชตเชพ เช“เชชเชจ-เชธเซ‹เชฐเซเชธ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ, เช•เซเชฌเชฐเซเชจเซ‡เชŸเซเชธ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชฎเชพเชŸเซ‡ เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจ, เชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชฒเซ‹เชจเซเชš เช•เชฐเซเชฏเซเช‚. เชกเซ‡เชตเช“เชชเซเชธเชชเซเชฐเซ‹เชกเชฟเชœเซ€ เช•เซเชฏเซเชฌเช—เซเชฐเชพเชซเชชเซเชฒเช—เช‡เชจ เชธเซ‹เชฐเซเชธ เช•เซ‹เชก เช†เชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ GitHub เชชเชฐ เชœเชพเชนเซ‡เชฐ เชญเช‚เชกเชพเชฐเช† เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ เชชเซเชฒเช—เช‡เชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเซเชฏเซเช‚, เช…เชฎเซ‡ เช•เชฏเชพ เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เช…เชจเซ‡ เชตเชฟเช•เชพเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช…เชฎเชจเซ‡ เช•เชˆ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เชคเซ‡เชจเซ€ เชตเชพเชฐเซเชคเชพ เชถเซ‡เชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช. เชšเชพเชฒเซ‹ เชถเชฐเซ‚ เช•เชฐเซ€เช!

เชญเชพเช— เซฆ - เชชเชฐเชฟเชšเชฏ: เช†เชชเชฃเซ‡ เช…เชนเซ€เช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชนเซ‹เช‚เชšเซเชฏเชพ?

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

grafana-kubernetes-app เชชเซเชฒเช—เช‡เชจ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชธเซŒเชฅเซ€ เชฐเชธเชชเซเชฐเชฆ เชตเชฟเช•เชฒเซเชช เชฒเชพเช—เชคเซ‹ เชนเชคเซ‹, เชชเชฐเช‚เชคเซ เชคเซ‡ เชเช• เชตเชฐเซเชทเชฅเซ€ เชตเชงเซ เชธเชฎเชฏเชฅเซ€ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชจเชฅเซ€ เช…เชจเซ‡ เชตเชงเซเชฎเชพเช‚, node-exporter เช…เชจเซ‡ kube-state-metrics เชจเชพ เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เช•เซ‹เชˆเช• เชธเชฎเชฏเซ‡, เช…เชฎเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, "เชถเชพ เชฎเชพเชŸเซ‡ เช†เชชเชฃเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชธเซ‹เชฒเซเชฏเซเชถเชจ เชจ เชฌเชจเชพเชตเชตเซเช‚?"

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชชเซเชฒเช—เช‡เชจเชฎเชพเช‚ เช•เชฏเชพ เชตเชฟเชšเชพเชฐเซ‹ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚?

  • เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเซ‡เชช เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ: เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹เชจเซเช‚ เช…เชจเซเช•เซ‚เชณ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต, เชจเซ‡เชฎเชธเซเชชเซ‡เชธ, เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ, เชตเช—เซ‡เชฐเซ‡ เชฆเซเชตเชพเชฐเชพ เชœเซ‚เชฅเชฌเชฆเซเชง;
  • "เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ - เชธเชฐเซเชตเชฟเชธ (+เชชเซ‹เชฐเซเชŸเซเชธ)" เชชเซเชฐเช•เชพเชฐเชจเชพ เชœเซ‹เชกเชพเชฃเซ‹เชจเซเช‚ เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ.
  • เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชกเซเชธเชฎเชพเช‚ เช•เซเชฒเชธเซเชŸเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชจเชพ เชตเชฟเชคเชฐเชฃเชจเซเช‚ เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ.
  • เชฌเชนเซเชตเชฟเชง เชธเซเชคเซเชฐเซ‹เชคเซ‹เชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เช…เชจเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเซ€: เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เช…เชจเซ‡ k8s API เชธเชฐเซเชตเชฐ.
  • เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ (CPU เชธเชฎเชฏ, เชฎเซ‡เชฎเชฐเซ€, เชกเชฟเชธเซเช• เชธเชฌเชธเชฟเชธเซเชŸเชฎ, เชจเซ‡เชŸเชตเชฐเซเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช—) เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฒเซ‹เชœเชฟเช• เชฌเช‚เชจเซ‡เชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ - เชชเซ‹เชกเซเชธเชจเซ€ เช†เชฐเซ‹เช—เซเชฏ เชธเซเชฅเชฟเชคเชฟ, เช‰เชชเชฒเชฌเซเชง เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช…เชจเซ‡ เชœเซ€เชตเช‚เชคเชคเชพ/เชคเซˆเชฏเชพเชฐเซ€ เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชจเซ€ เชชเซเชฐเช—เชคเชฟ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€.

เชญเชพเช— เซง: เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจ เชถเซเช‚ เช›เซ‡?

เชŸเซ‡เช•เชจเชฟเช•เชฒ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เช—เซเชฐเชพเชซเชพเชจเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชชเซเชฒเช—เช‡เชจ เช เชเช• เช•เซ‹เชฃเซ€เชฏ เชจเชฟเชฏเช‚เชคเซเชฐเช• เช›เซ‡ เชœเซ‡ เช—เซเชฐเชพเชซเชพเชจเชพ เชกเซ‡เชŸเชพ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ (/var/เช—เซเชฐเชพเชซเชพเชจเชพ/เชชเซเชฒเช—เช‡เชจเซเชธ/ /dist/module.js) เช…เชจเซ‡ SystemJS เชฎเซ‹เชกเซเชฏเซเชฒ เชคเชฐเซ€เช•เซ‡ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช† เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ plugin.json เชซเชพเช‡เชฒ เชชเชฃ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เชœเซ‡เชฎเชพเช‚ เชคเชฎเชพเชฐเชพ เชชเซเชฒเช—เช‡เชจ เชตเชฟเชถเซ‡เชจเซ‹ เชคเชฎเชพเชฎ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชถเชพเชฎเซ‡เชฒ เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช: เชจเชพเชฎ, เชธเช‚เชธเซเช•เชฐเชฃ, เชชเซเชฒเช—เช‡เชจ เชชเซเชฐเช•เชพเชฐ, เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€/เชตเซ‡เชฌเชธเชพเช‡เชŸ/เชฒเชพเช‡เชธเชจเซเชธ เชฒเชฟเช‚เช•เซเชธ, เชกเชฟเชชเซ‡เชจเซเชกเชจเซเชธเซ€เช, เชตเช—เซ‡เชฐเซ‡.

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ
เชฎเซ‹เชกเซเชฏเซเชฒ.เชŸเซ€เชเชธ

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ
plugin.json

เชœเซ‡เชฎ เชคเชฎเซ‡ เชธเซเช•เซเชฐเซ€เชจเชถเซ‹เชŸเชฎเชพเช‚ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช…เชฎเซ‡ plugin.type = app เชธเซเชชเชทเซเชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เช†เชจเซเช‚ เช•เชพเชฐเชฃ เช เช›เซ‡ เช•เซ‡ Grafana เชฎเชพเชŸเซ‡ เชคเซเชฐเชฃ เชชเซเชฐเช•เชพเชฐเชจเชพ เชชเซเชฒเช—เชˆเชจเซเชธ เช›เซ‡:

เชชเซ‡เชจเชฒ: เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชชเซเชฐเช•เชพเชฐ - เชคเซ‡ เชšเซ‹เช•เซเช•เชธ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒเชพเชˆเช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชชเซ‡เชจเชฒ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชตเชฟเชตเชฟเชง เชกเซ‡เชถเชฌเซ‹เชฐเซเชก เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡.
เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชค: เช•เซ‹เชˆเชชเชฃ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชค เชธเชพเชฅเซ‡ เชชเซเชฒเช—เช‡เชจ เช•เชจเซ‡เช•เซเชŸเชฐ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ-เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ, เช•เซเชฒเชฟเช•เชนเชพเช‰เชธ-เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ, เช‡เชฒเชพเชธเซเชŸเซ€เช•เชธเชฐเซเชš-เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ).
เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ: เชเช• เชชเซเชฒเช—เช‡เชจ เชœเซ‡ เชคเชฎเชจเซ‡ เช—เซเชฐเชพเชซเชพเชจเชพเชฎเชพเช‚ เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฌเชจเชพเชตเชตเชพ, เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ HTML เชชเซƒเชทเซเช เซ‹ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เชกเซ‡เชŸเชพเชจเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒเชพเชˆเช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธเชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช…เชจเซเชฏ เชชเซเชฒเช—เช‡เชจ เชชเซเชฐเช•เชพเชฐเซ‹ (เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ, เชชเซ‡เชจเชฒ) เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เชกเซ‡เชถเชฌเซ‹เชฐเซเชกเชจเซ‹ เชชเชฃ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ
เชชเซเชฐเช•เชพเชฐ = เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชพเชฅเซ‡ เชชเซเชฒเช—เช‡เชจ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ.

เชคเชฎเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ เชคเชฐเซ€เช•เซ‡ JavaScript เช…เชฅเชตเชพ TypeScript เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ (เช…เชฎเซ‡ TypeScript เชชเชธเช‚เชฆ เช•เชฐเซเชฏเซเช‚ เช›เซ‡). เชคเชฎเซ‡ เช•เซ‹เชˆเชชเชฃ เชชเซเชฐเช•เชพเชฐเชจเชพ hello-world เชชเซเชฒเช—เช‡เชจ เชฎเชพเชŸเซ‡ เชŸเซ‡เชฎเซเชชเซเชฒเซ‡เชŸ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เชฒเชฟเช‚เช• เชฆเซเชตเชพเชฐเชพ เชถเซ‹เชงเซ‹: เช† เชญเช‚เชกเชพเชฐเชฎเชพเช‚ เชชเชนเซ‡เชฒเชพเชฅเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเชพ เช…เชจเซ‡ เช—เซ‹เช เชตเซ‡เชฒเชพ เชฌเชฟเชฒเซเชกเชฐเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‹เชŸเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชธเซเชŸเชพเชฐเซเชŸเชฐ เชชเซ‡เช• (เชฐเชฟเชเช•เซเชŸ เชชเซเชฒเช—เช‡เชจเชจเซเช‚ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เช‰เชฆเชพเชนเชฐเชฃ เชชเชฃ เช›เซ‡) เช›เซ‡.

เชญเชพเช— เซจ: เชธเซเชฅเชพเชจเชฟเช• เชตเชพเชคเชพเชตเชฐเชฃ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเซเช‚

เชชเซเชฒเช—เช‡เชจ เชชเชฐ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช†เชชเชฃเชจเซ‡ เชธเซเชตเชพเชญเชพเชตเชฟเช• เชฐเซ€เชคเซ‡ เชœ เชฌเชงเชพ เชชเซ‚เชฐเซเชต-เชธเซเชฅเชพเชชเชฟเชค เชธเชพเชงเชจเซ‹ เชธเชพเชฅเซ‡ เช•เซเชฌเชฐเซเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡: เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ, เชจเซ‹เชก-เชเช•เซเชธเชชเซ‹เชฐเซเชŸเชฐ, เช•เซเชฌเซ‡-เชธเซเชŸเซ‡เชŸ-เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เช…เชจเซ‡ เช—เซเชฐเชพเชซเชพเชจเชพ. เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชกเชชเซ€, เชธเชฐเชณ เช…เชจเซ‡ เชธเซ‡เชŸเช…เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซเชถเซเช•เซ‡เชฒเซ€-เชฎเซเช•เซเชค เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช, เช…เชจเซ‡ เชนเซ‹เชŸ เชฐเซ€เชฒเซ‹เชกเชฟเช‚เช— เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช—เซเชฐเชพเชซเชพเชจเชพ เชกเซ‡เชŸเชพ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชธเซ€เชงเซ€ เชกเซ‡เชตเชฒเชชเชฐเชจเชพ เชฎเชถเซ€เชจเชฅเซ€ เชฎเชพเช‰เชจเซเชŸ เชฅเชตเซ€ เชœเซ‹เชˆเช.

เช…เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช•เซเชฌเชฐเซเชจเซ‡เชŸเซเชธ เชธเชพเชฅเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ‹ เชธเซŒเชฅเซ€ เช…เชจเซเช•เซ‚เชณ เชฐเชธเซเชคเซ‹ เช›เซ‡ เชฎเชฟเชจเซ€เช•เซเชฏเซเชฌเช†เช—เชณเชจเซเช‚ เชชเช—เชฒเซเช‚ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ-เช“เชชเชฐเซ‡เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ + เช—เซเชฐเชพเชซเชพเชจเชพ เชฌเช‚เชกเชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡. เช† เชฒเซ‡เช– เชฎเชฟเชจเชฟเช•เซเชฏเซ‚เชฌ เชชเชฐ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ-เช“เชชเชฐเซ‡เชŸเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชชเชฐเซเชธเชฟเชธเซเชŸเชจเซเชธ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชฆเซเชฐเชขเชคเชพ: เชธเชพเชšเซเช‚ 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

เชญเชพเช— เซฉ: เชธเซ€เชงเซ‹ เชตเชฟเช•เชพเชธ

เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชฎเซ‹เชกเซ‡เชฒ

เชชเซเชฒเช—เช‡เชจเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ€ เชคเซˆเชฏเชพเชฐเซ€เชฎเชพเช‚, เช…เชฎเซ‡ เชฌเชงเชพ เชฎเซ‚เชณเชญเซ‚เชค เช•เซเชฌเชฐเซเชจเซ‡เชŸเซเชธ เชเชจเซเชŸเชฟเชŸเซ€เชเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เชŸเชพเช‡เชชเชธเซเช•เซเชฐเชฟเชชเซเชŸ เชตเชฐเซเช—เซ‹ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฎ เช•เชฐเซ€เชถเซเช‚: เชชเซ‹เชก, เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ, เชกเซ‡เชฎเซ‹เชจเชธเซ‡เชŸ, เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸ, เชœเซ‹เชฌ, เช•เซเชฐเซ‹เชจเชœเซ‹เชฌ, เชธเชฐเซเชตเชฟเชธ, เชจเซ‹เชก เช…เชจเซ‡ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ. เช† เชฆเชฐเซ‡เช• เช•เซเชฒเชพเชธ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชฌเซ‡เชเชฎเซ‹เชกเซ‡เชฒ เช•เซเชฒเชพเชธเชฎเชพเช‚เชฅเซ€ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เชฎเชณเซ‡ เช›เซ‡, เชœเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ, เชกเชฟเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เช…เชจเซ‡ เชฆเซƒเชถเซเชฏเชคเชพเชจเซ‡ เช…เชชเชกเซ‡เชŸ เช…เชจเซ‡ เชŸเซ‰เช—เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟเช“ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชฆเชฐเซ‡เช• เช•เซเชฒเชพเชธ เช…เชจเซเชฏ เชเชจเซเชŸเชฟเชŸเซ€เช เชธเชพเชฅเซ‡ เชจเซ‡เชธเซเชŸเซ‡เชก เชธเช‚เชฌเช‚เชงเซ‹เชจเซ‡ เชชเชฃ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชเชจเซเชŸเชฟเชŸเซ€ เชฎเชพเชŸเซ‡ เชชเซ‹เชกเซเชธเชจเซ€ เชธเซ‚เชšเชฟ.

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 เชชเชฐ เชจเชฟเช•เชพเชธ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡); เช† เชชเซƒเชทเซเช  เชธเชพเชฅเซ‡ เช•เชฏเชพ เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชญเซ‚เชฎเชฟเช•เชพ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชคเซ‡เชจเซ‹ เชธเช‚เช•เซ‡เชค เช…เชจเซ‡ เชธเชพเช‡เชกเชฌเชพเชฐ เชฎเชพเชŸเซ‡ เชจเซ‡เชตเชฟเช—เซ‡เชถเชจ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ.

เชชเซ‡เชœเชจเชพ เช“เชชเชฐเซ‡เชถเชจ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช˜เชŸเช•เชฎเชพเช‚, เช†เชชเชฃเซ‡ templateUrl เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช, เชคเซ‡เชจเซ‡ เชฎเชพเชฐเซเช•เช…เชช เชงเชฐเชพเชตเชคเซ€ HTML เชซเชพเช‡เชฒเชจเซ‹ เชฎเชพเชฐเซเช— เชชเชธเชพเชฐ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช. เช•เช‚เชŸเซเชฐเซ‹เชฒเชฐเชจเซ€ เช…เช‚เชฆเชฐ, เชกเชฟเชชเซ‡เชจเซเชกเชจเซเชธเซ€ เช‡เชจเซเชœเซ‡เช•เซเชถเชจ เชฆเซเชตเชพเชฐเชพ, เช†เชชเชฃเซ‡ เชฌเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช•เซ‹เชฃเซ€เชฏ เชธเซ‡เชตเชพเช“เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช:

  • backendSrv เช เชเช• เชธเซ‡เชตเชพ เช›เซ‡ เชœเซ‡ Grafana API เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เชชเซ‚เชฐเซ€ เชชเชพเชกเซ‡ เช›เซ‡;
  • datasourceSrv เช เชเช• เชธเซ‡เชตเชพ เช›เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเชพ Grafana เชฎเชพเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเชพ เชฌเชงเชพ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เชธเชพเชฅเซ‡ เชธเซเชฅเชพเชจเชฟเช• เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เชชเซ‚เชฐเซ€ เชชเชพเชกเซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, .getAll() เชชเชฆเซเชงเชคเชฟ เชฌเชงเชพ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเชพ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธเชจเซ€ เชธเซ‚เชšเชฟ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡; .get( ) โ€” เชšเซ‹เช•เซเช•เชธ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธเชจเซ‹ เช‡เชจเซเชธเซเชŸเชจเซเชธ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡.

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เชญเชพเช— เซช: เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ

เช—เซเชฐเชพเชซเชพเชจเชพเชจเชพ เชฆเซเชฐเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เช เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เชชเซเชฒเช—เช‡เชจเชจเซ€ เชœเซ‡เชฎ เชœ เชเช• เชชเซเชฒเช—เช‡เชจ เช›เซ‡: เชคเซ‡เชจเซ‹ เชชเซ‹เชคเชพเชจเซ‹ เชเชจเซเชŸเซเชฐเซ€ เชชเซ‹เชˆเชจเซเชŸ, module.js เช…เชจเซ‡ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ plugin.json เชซเชพเช‡เชฒ เช›เซ‡. type = app เชธเชพเชฅเซ‡ เชชเซเชฒเช—เช‡เชจ เชตเชฟเช•เชธเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เช†เชชเชฃเซ‡ เชนเชพเชฒเชจเชพ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, prometheus-datasource) เช…เชฅเชตเชพ เช†เชชเชฃเชพ เชชเซ‹เชคเชพเชจเชพ เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช, เชœเซ‡เชจเซ‡ เช†เชชเชฃเซ‡ เชธเซ€เชงเชพ เชชเซเชฒเช—เช‡เชจ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ (dist/datasource/*) เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช เช…เชฅเชตเชพ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชคเชฐเซ€เช•เซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช†เชชเชฃเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เชชเซเชฒเช—เช‡เชจ เช•เซ‹เชก เชธเชพเชฅเซ‡ เชฌเช‚เชกเชฒ เชฅเชฏเซ‡เชฒ เช›เซ‡. config.html เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เช…เชจเซ‡ ConfigCtrl เชจเชฟเชฏเช‚เชคเซเชฐเช• เชชเชฃ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เช‡เชจเซเชธเซเชŸเชจเซเชธ เช•เชจเซเชซเชฟเช—เชฐเซ‡เชถเชจ เชชเซ‡เชœ เช…เชจเซ‡ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เชจเชฟเชฏเช‚เชคเซเชฐเช• เชฎเชพเชŸเซ‡ เชฅเชถเซ‡, เชœเซ‡ เชคเชฎเชพเชฐเชพ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เชฎเชพเชŸเซ‡ เชฒเซ‹เชœเชฟเช• เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡.

เช•เซเชฌเซ‡เช—เซเชฐเชพเชซ เชชเซเชฒเช—เช‡เชจเชฎเชพเช‚, เชฏเซเชเชฐ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเชพ เชฆเซเชฐเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เช เช•เซเชฌเชฐเซเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡ เชœเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เช•เซเชทเชฎเชคเชพเช“เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡ (เชธเซ‹เชฐเซเชธ เช•เซ‹เชก เช‰เชชเชฒเชฌเซเชง เช›เซ‡). เชฒเชฟเช‚เช•):

  • 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 เชซเซ€เชฒเซเชกเซเชธเชฎเชพเช‚เชฅเซ€ เชฒเชˆ เชถเช•เชพเชฏ เช›เซ‡ (เชชเชพเชธเชตเชฐเซเชกเซเชธ เช…เชฅเชตเชพ เชŸเซ‹เช•เชจเซเชธเชจเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡). เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชซเซ‹เชฐเซเชฎเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ /__เชชเซเชฐเซ‹เช•เซเชธเซ€/api/v1/เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชจเซ€เชšเซ‡เชจเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ URL เชจเซ‡ เชชเซเชฐเซ‹เช•เซเชธเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡
/api/v1/namespaces เชจเซ‡ Authorization: Bearer เชนเซ‡เชกเชฐ เชธเซ‡เชŸ เชธเชพเชฅเซ‡.

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เชธเซเชตเชพเชญเชพเชตเชฟเช• เชฐเซ€เชคเซ‡, k8s api เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช†เชชเชฃเชจเซ‡ เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เชเช•เซเชธเซ‡เชธ เชงเชฐเชพเชตเชคเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸ เชœเซ‡ เชคเชฎเซ‡ เช…เชนเซ€เช‚ เชชเชฃ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹. เชชเซเชฒเช—เช‡เชจ เชธเซ‹เชฐเซเชธ เช•เซ‹เชก.

เชญเชพเช— เซซ: เชชเซเชฐเช•เชพเชถเชจ

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เชเช•เชตเชพเชฐ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจ เชฒเช–เซ€ เชฒเซ‹, เชชเช›เซ€ เชคเชฎเซ‡ เชธเซเชตเชพเชญเชพเชตเชฟเช• เชฐเซ€เชคเซ‡ เชคเซ‡เชจเซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹. เช—เซเชฐเชพเชซเชพเชจเชพเชฎเชพเช‚, เช† เชเช• เชชเซเชฒเช—เช‡เชจ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช›เซ‡, เชœเซ‡ เช…เชนเซ€เช‚ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ grafana.com/grafana/plugins

เชคเชฎเชพเชฐเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เช‰เชชเชฒเชฌเซเชง เช•เชฐเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ PR เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช† เชญเช‚เชกเชพเชฐ, repo.json เชซเชพเช‡เชฒเชฎเชพเช‚ เช†เชจเชพ เชœเซ‡เชตเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช:

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เชœเซเชฏเชพเช‚ version เช เชคเชฎเชพเชฐเชพ เชชเซเชฒเช—เช‡เชจเชจเซเช‚ เชตเชฐเซเชเชจ เช›เซ‡, url เช เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ‹ เชฒเชฟเช‚เช• เช›เซ‡, เช…เชจเซ‡ commit เช commit เชจเซ‹ เชนเซ‡เชถ เช›เซ‡ เชœเซ‡ เชชเซเชฒเช—เช‡เชจเชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เชตเชฐเซเชเชจ เช‰เชชเชฒเชฌเซเชง เช•เชฐเชพเชตเชถเซ‡.

เช…เชจเซ‡ เช†เช‰เชŸเชชเซเชŸ เชชเชฐ เชคเชฎเชจเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เชเช• เช…เชฆเซเชญเซเชค เชšเชฟเชคเซเชฐ เชฆเซ‡เช–เชพเชถเซ‡:

เช—เซเชฐเชพเชซเชพเชจเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‹ เชตเชฟเช•เชพเชธ: เชญเซ‚เชฒเซ‹เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เชกเซ‡เชŸเชพ เช†เชชเชฎเซ‡เชณเซ‡ เชคเชฎเชพเชฐเชพ Readme.md, Changelog.md เช…เชจเซ‡ เชชเซเชฒเช—เช‡เชจ เชตเชฐเซเชฃเชจ เชธเชพเชฅเซ‡ plugin.json เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชญเชพเช— เซฌ: เชจเชฟเชทเซเช•เชฐเซเชทเชจเซ‡ เชฌเชฆเชฒเซ‡

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชชเซเชฒเช—เช‡เชจเชจเซ‡ เชฐเชฟเชฒเซ€เช เชฅเชฏเชพ เชชเช›เซ€ เชตเชฟเช•เชธเชพเชตเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซเชฏเซเช‚ เชจเชฅเซ€. เช…เชฎเซ‡ เชนเชพเชฒเชฎเชพเช‚ เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชก เชฐเชฟเชธเซ‹เชฐเซเชธ เชตเชชเชฐเชพเชถเชจเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพ, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชจเซเชญเชตเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เชฒเชพเช—เซ เช•เชฐเชตเชพ เช…เชจเซ‡ เชชเซเชฒเช—เช‡เชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เช…เชฎเชพเชฐเชพ เช—เซเชฐเชพเชนเช•เซ‹ เช…เชจเซ‡ GitHub เชชเชฐ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฌเช‚เชจเซ‡ เชคเชฐเชซเชฅเซ€ เชฎเชณเซ‡เชฒเชพ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ‡ เชธเซ‰เชฐเซเชŸ เช•เชฐเชตเชพ เชชเชฐ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช (เชœเซ‹ เชคเชฎเซ‡ เช•เซ‹เชˆ เชธเชฎเชธเซเชฏเชพ เช…เชฅเชตเชพ เชชเซเชฒ เชตเชฟเชจเช‚เชคเซ€ เช›เซ‹เชกเซ€ เชฆเซ‹ เช›เซ‹, เชคเซ‹ เชฎเชจเซ‡ เช–เซ‚เชฌ เช†เชจเช‚เชฆ เชฅเชถเซ‡ :)).

เช…เชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เช† เชฒเซ‡เช– เชคเชฎเชจเซ‡ เช—เซเชฐเชพเชซเชพเชจเชพ เชœเซ‡เชตเชพ เช…เชฆเซเชญเซเชค เชธเชพเชงเชจเชจเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เช…เชจเซ‡ เช•เชฆเชพเชš เชคเชฎเชพเชฐเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชชเซเชฒเช—เช‡เชจ เชฒเช–เชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

เช†เชญเชพเชฐ!)

เชธเซ‹เชฐเซเชธ: www.habr.com

DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐ เชงเชฐเชพเชตเชคเซ€ เชธเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ ๐Ÿ”ฅ DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐเซเชธ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ | ProHoster