แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แฒกแƒแƒšแƒแƒ›แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒก! แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ—แƒ•แƒ˜แƒก แƒฌแƒ˜แƒœ, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ - Grafana แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ“แƒ˜แƒ— DevOpsProdigy KubeGraf. แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” แƒกแƒแƒฏแƒแƒ แƒ แƒกแƒแƒชแƒแƒ•แƒ˜ GitHub-แƒ–แƒ”. แƒ“แƒ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒ’แƒ˜แƒ–แƒ˜แƒแƒ แƒแƒ— แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ›แƒแƒ“แƒฃแƒšแƒ˜, แƒ แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ“แƒ แƒ แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ’แƒ•แƒฎแƒ•แƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜. แฒฌแƒแƒ•แƒ”แƒ“แƒ˜แƒ—!

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 0 - แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜: แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜แƒ— แƒแƒฅแƒแƒ›แƒ“แƒ”?

Grafan-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ˜แƒ“แƒ”แƒ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ’แƒแƒ’แƒ•แƒ˜แƒฉแƒœแƒ“แƒ. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ 10 แƒฌแƒ”แƒšแƒ–แƒ” แƒ›แƒ”แƒขแƒ˜แƒ แƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒœแƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒก แƒ•แƒ”แƒ‘ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒก. แƒแƒ› แƒ“แƒ แƒแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ— แƒ“แƒ˜แƒ“แƒ˜ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒขแƒ˜แƒ–แƒ, แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒจแƒ˜. แƒ“แƒ แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒ—แƒแƒ•แƒก แƒ•แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ—: "แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ—แƒฃ แƒแƒ แƒ แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ Kubernetes-แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ—แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒ‘แƒแƒ‘แƒ”แƒœ, "แƒ“แƒแƒแƒงแƒ”แƒœแƒ” แƒ“แƒ แƒ“แƒแƒ˜แƒ•แƒ˜แƒฌแƒงแƒ"?". K8-แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒ˜แƒœแƒ“แƒฃแƒกแƒขแƒ แƒ˜แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒแƒœแƒ˜แƒ แƒ˜แƒงแƒ. แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ” + แƒ’แƒ แƒแƒคแƒแƒœแƒแƒก แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ. แƒ“แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ› แƒกแƒขแƒ”แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ–แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒฎแƒ˜แƒก แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜: แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜, แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก-แƒ›แƒ˜แƒฅแƒกแƒ˜แƒœแƒ˜แƒก แƒ“แƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ’แƒ แƒแƒแƒœแƒ-แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒก-แƒแƒžแƒ˜.

แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, grafana-kubernetes-app แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒ˜แƒงแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒฌแƒ”แƒšแƒ˜แƒฌแƒแƒ“แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒ, แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ•แƒ”แƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก node-exporter แƒ“แƒ kube-state-metrics-แƒ˜แƒก แƒแƒฎแƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ. แƒ“แƒ แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—: "แƒฉแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ?"

แƒ แƒ แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒจแƒ˜:

  • โ€žแƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ แƒฃแƒ™แƒ˜แƒกโ€œ แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ: แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜, แƒ“แƒแƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก...;
  • แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ "แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ - แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ (+แƒžแƒแƒ แƒขแƒ”แƒ‘แƒ˜)".
  • แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒš แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒจแƒ˜.
  • แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒกแƒ แƒ“แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒšแƒ”แƒฅแƒชแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒงแƒแƒ แƒแƒ“แƒแƒœ: แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ” แƒ“แƒ k8s api แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜.
  • แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก (แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ“แƒ แƒแƒ˜แƒก, แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก, แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒฅแƒ•แƒ”แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก, แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ) แƒ“แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜ - แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒžแƒแƒ“แƒ”แƒ‘แƒ˜, แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒแƒกแƒšแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ, แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ˜แƒกแƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก/แƒ›แƒ–แƒแƒ“แƒงแƒแƒคแƒœแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1: แƒ แƒ แƒแƒ แƒ˜แƒก โ€žแƒ’แƒ แƒแƒคแƒแƒœแƒแƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜โ€œ?

แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, Grafana-แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ™แƒฃแƒ—แƒฎแƒแƒ•แƒแƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ Grafana แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ (/var/grafana/plugins/ /dist/module.js) แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช SystemJS แƒ›แƒแƒ“แƒฃแƒšแƒ˜. แƒแƒกแƒ”แƒ•แƒ” แƒแƒ› แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก plugin.json แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ”แƒขแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘: แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜, แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜แƒก/แƒกแƒแƒ˜แƒขแƒ˜แƒก/แƒšแƒ˜แƒชแƒ”แƒœแƒ–แƒ˜แƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜, แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ.

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ
แƒ›แƒแƒ“แƒฃแƒšแƒ˜.แƒช

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ
plugin.json

แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒ™แƒ แƒ˜แƒœแƒจแƒแƒขแƒจแƒ˜ แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ— plugin.type = app. แƒ แƒแƒ“แƒ’แƒแƒœ Grafana-แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒกแƒแƒ›แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก:

แƒžแƒแƒœแƒ”แƒšแƒ˜: แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜ - แƒ”แƒก แƒแƒ แƒ˜แƒก แƒžแƒแƒœแƒ”แƒšแƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒคแƒ˜แƒก แƒแƒกแƒแƒ’แƒ”แƒ‘แƒแƒ“.
แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒ: แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒกแƒ—แƒ•แƒ˜แƒก (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Prometheus-datasource, ClickHouse-datasource, ElasticSearch-datasource).
app: แƒ›แƒแƒ“แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒฌแƒ˜แƒœแƒแƒžแƒ˜แƒ แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ Grafana-แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ html แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒ–แƒ” แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒกแƒ”แƒ•แƒ”, แƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜ (แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒ, แƒžแƒแƒœแƒ”แƒšแƒ˜) แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒคแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ
แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ type=app.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ แƒแƒ’แƒแƒ แƒช JavaScript, แƒแƒกแƒ”แƒ•แƒ” TypeScript, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ (แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ”แƒ—). แƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ hello-world แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก, แƒ แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒœแƒ”แƒ— แƒ‘แƒ›แƒฃแƒšแƒ˜แƒ—: แƒ”แƒก แƒกแƒแƒชแƒแƒ•แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ“แƒแƒ›แƒฌแƒงแƒ”แƒ‘-แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก (แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒช แƒ™แƒ˜ แƒแƒ แƒ˜แƒก React-แƒจแƒ˜) แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒšแƒ“แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 2: แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ

แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ–แƒ” แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ“, แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ kubernetes แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜แƒ—: แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”, แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒแƒ แƒขแƒ˜แƒแƒ แƒ˜, kube-state-metrics, grafana. แƒ’แƒแƒ แƒ”แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒแƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“, แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒชแƒฎแƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“, Grafana แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ“แƒ”แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒ“แƒแƒœ.

แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒ–แƒ, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ–แƒ แƒ˜แƒ—, แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ™แƒฃแƒ‘แƒ”. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒแƒ แƒ˜แƒก Prometheus + Grafana แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. IN แƒ”แƒก แƒแƒ แƒขแƒ˜แƒ™แƒšแƒ˜ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ™แƒฃแƒ‘แƒ”แƒ–แƒ” แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ›แƒซแƒšแƒ”แƒแƒ‘แƒ: แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ แƒฉแƒแƒ แƒขแƒ”แƒ‘แƒจแƒ˜/grafana/values.yaml แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ PV แƒ“แƒ PVC แƒ“แƒ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ persistence.existingClaim แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ‘แƒแƒšแƒแƒ minikube แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

minikube start --kubernetes-version=v1.13.4 --memory=4096 --bootstrapper=kubeadm --extra-config=scheduler.address=0.0.0.0 --extra-config=controller-manager.address=0.0.0.0
minikube mount 
/home/sergeisporyshev/Projects/Grafana:/var/grafana --gid=472 --uid=472 --9p-version=9p2000.L

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 3: แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ

แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒแƒ— Kubernetes-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ—แƒแƒœแƒแƒช แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ— TypeScript แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—: pod, deployment, daemonset, statefulset, job, cronjob, แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ™แƒ•แƒแƒœแƒซแƒ˜, แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ”แƒก แƒ™แƒšแƒแƒกแƒ˜ แƒ›แƒ”แƒ›แƒ™แƒ•แƒ˜แƒ“แƒ แƒ”แƒแƒ‘แƒ˜แƒ— แƒ˜แƒฆแƒ”แƒ‘แƒก แƒกแƒแƒ”แƒ แƒ—แƒ 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 = [];
   }
}

แƒ’แƒ”แƒขแƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ”แƒขแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒแƒ— แƒแƒœ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜แƒก แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ—. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒแƒ“แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜:

get cpuAllocatableFormatted(){
   let cpu = this.data.status.allocatable.cpu;
   if(cpu.indexOf('m') > -1){
       cpu = parseInt(cpu)/1000;
   }
   return cpu;
}

แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒก pluing.json-แƒจแƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜:

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒแƒ— PAGE NAME (แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒจแƒšแƒแƒ’แƒแƒ“, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒ”แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ); แƒแƒ› แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ–แƒ” แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ (แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ”แƒฅแƒกแƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ module.ts-แƒ–แƒ”); แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ แƒแƒšแƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒ› แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ“แƒ แƒœแƒแƒ•แƒ˜แƒ’แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒ–แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ–แƒ”, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— templateUrl, แƒกแƒแƒ“แƒแƒช แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒแƒ— html แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒ–แƒ แƒ›แƒแƒ แƒ™แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ 2-แƒ›แƒ“แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœ แƒ™แƒฃแƒ—แƒฎแƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ–แƒ”:

  • backendSrv - แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒชแƒ˜แƒแƒก Grafana API แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ;
  • datasourceSrv - แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก Grafana-แƒจแƒ˜ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒกแƒ—แƒแƒœ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, .getAll() แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ - แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒกแƒ˜แƒแƒก; .get( ) - แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก.

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒ

Grafana-แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฎแƒ•แƒ: แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ module.js, แƒแƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒขแƒแƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒ— plugin.json. แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก type = แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ—แƒแƒœ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, prometheus-datasource), แƒแƒกแƒ”แƒ•แƒ” แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ—แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ (dist/datasource/*) แƒแƒœ แƒ“แƒแƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒแƒงแƒ•แƒ”แƒ‘แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ™แƒแƒ“แƒ˜. แƒแƒกแƒ”แƒ•แƒ” แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒฅแƒแƒœแƒ“แƒ”แƒ— config.html แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜ แƒ“แƒ ConfigCtrl แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒšแƒแƒ’แƒ˜แƒ™แƒแƒก.

KubeGraf แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒจแƒ˜, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒ แƒแƒ แƒ˜แƒก kubernetes แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก (แƒฌแƒงแƒแƒ แƒ แƒ™แƒแƒ“แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ ะฟะพ ััั‹ะปะบะต):

  • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ k8s api-แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ (แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ, แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ...)
  • Prometheus-datasource-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ (แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜) แƒ“แƒ แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ—แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ  แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ”, แƒแƒกแƒ”แƒ•แƒ” แƒกแƒแƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ“แƒแƒคแƒ”แƒ‘แƒจแƒ˜.
  • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ” (แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ˜แƒ—).
  • แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒคแƒฃแƒ แƒชแƒšแƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก grafana-dashboards-แƒจแƒ˜ (metriFindQuery() แƒ›แƒ”แƒ—แƒแƒ“แƒ˜)

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

  • แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜ แƒกแƒแƒ‘แƒแƒšแƒแƒ k8s แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ—แƒแƒœ.
testDatasource(){
   let url = '/api/v1/namespaces';
   let _url = this.url;
   if(this.accessViaToken)
       _url += '/__proxy';
   _url += url;
   return this.backendSrv.datasourceRequest({
       url: _url,
       method: "GET",
       headers: {"Content-Type": 'application/json'}
   })
       .then(response => {
           if (response.status === 200) {
               return {status: "success", message: "Data source is OK", title: "Success"};
           }else{
               return {status: "error", message: "Data source is not OK", title: "Error"};
           }
       }, error => {
           return {status: "error", message: "Data source is not OK", title: "Error"};
       })
}

แƒชแƒแƒšแƒ™แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒžแƒฃแƒœแƒฅแƒขแƒ˜, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ–แƒ แƒ˜แƒ—, แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ Grafana แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ datasourceHttpSettings แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฌแƒงแƒแƒ แƒแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ› แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— http แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ url-แƒ˜แƒก แƒ“แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก/แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ—: แƒจแƒ”แƒกแƒ•แƒšแƒ-แƒžแƒแƒ แƒแƒšแƒ˜, แƒแƒœ แƒ™แƒšแƒ˜แƒ”แƒœแƒข-แƒกแƒ”แƒ แƒขแƒ˜/แƒ™แƒšแƒ˜แƒ”แƒœแƒข-แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒแƒœแƒ”แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒœแƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ›แƒแƒขแƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒœแƒ˜แƒจแƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒ“แƒ” แƒคแƒแƒฅแƒขแƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜ k8s-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก), แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ•แƒ˜แƒฌแƒ˜แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒจแƒ”แƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ.

แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ Grafana โ€žPlugin Routesโ€œ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ (แƒ“แƒแƒฌแƒ•แƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜). แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒแƒชแƒฎแƒแƒ“แƒแƒ— แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ“แƒ”แƒ‘แƒ grafana แƒžแƒ แƒแƒฅแƒกแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ . แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒœ url-แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ jsonData แƒ“แƒ safeJsonData แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ (แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒขแƒแƒ™แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ— แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“). แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜, แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ /__proxy/api/v1/namespaces แƒžแƒ แƒแƒฅแƒกแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒคแƒแƒ แƒ›แƒ˜แƒก url-แƒ–แƒ”
/api/v8/namespaces แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒ—: Bearer header.

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, k8s api แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ—, แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ™แƒแƒ“แƒ˜.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 5: แƒ’แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒช แƒ“แƒแƒฌแƒ”แƒ แƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  Grafana แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก, แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ˜แƒœแƒ“แƒ”แƒ‘แƒแƒ—, แƒ แƒแƒ› แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒแƒ“ แƒ’แƒแƒฎแƒแƒ“แƒแƒ—. Grafana-แƒจแƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒฅ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ grafana.com/grafana/plugins

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒงแƒแƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— PR แƒ”แƒก แƒกแƒแƒชแƒแƒ•แƒ˜แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— repo.json แƒคแƒแƒ˜แƒšแƒจแƒ˜:

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒกแƒแƒ“แƒแƒช แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ, url แƒแƒ แƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒกแƒแƒชแƒแƒ•แƒ—แƒแƒœ แƒ“แƒ commit แƒแƒ แƒ˜แƒก commit-แƒ˜แƒก แƒฐแƒ”แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ.

แƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ–แƒ” แƒœแƒแƒฎแƒแƒ•แƒ— แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ”แƒ  แƒกแƒฃแƒ แƒแƒ—แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ:

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ Grafana-แƒกแƒ—แƒ•แƒ˜แƒก: แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ

แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ Readme.md, Changelog.md แƒ“แƒ plugin.json แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒ—.

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 6: แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“

แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒแƒ  แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ–แƒ”, แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ UX-แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฃแƒแƒ›แƒ แƒแƒ• แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” GitHub-แƒ˜แƒก แƒฎแƒแƒšแƒฎแƒ˜แƒกแƒ’แƒแƒœ (แƒ—แƒฃ แƒ“แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒœ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, แƒ›แƒ” แƒซแƒแƒšแƒ˜แƒแƒœ แƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒ˜ แƒ•แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ˜ :)

แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ”แƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Grafana แƒ“แƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜.

แฒ’แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ—!)

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ