{"id":22235000,"date":"2025-10-23T10:27:33","date_gmt":"2025-10-23T06:57:33","guid":{"rendered":"https:\/\/www.novinhost.org\/wiki\/?p=22235000"},"modified":"2025-10-05T13:56:07","modified_gmt":"2025-10-05T10:26:07","slug":"monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana","status":"publish","type":"post","link":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/","title":{"rendered":"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana"},"content":{"rendered":"<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c <a href=\"https:\/\/www.novinhost.org\/wiki\/%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%b4%d8%a8%da%a9%d9%87-%d8%b1%d8%a7%d9%87%da%a9%d8%a7%d8%b1%d9%87%d8%a7%db%8c-%d9%be%db%8c%d8%b4%d8%b1%d9%81%d8%aa%d9%87-%d9%88-%d8%a7\/\">\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af<\/a> \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<br \/>\n\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a <strong>Infrastructure as Code<\/strong> \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:<br \/>\n\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 <strong>Monitoring as Code (MaC)<\/strong>.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 <strong>\u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a<\/strong> \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u0645 \u06a9\u0647 Monitoring as Code \u0686\u06cc\u0633\u062a\u060c \u0686\u0631\u0627 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0648 \u0686\u0637\u0648\u0631 \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 <strong>Prometheus<\/strong> \u0648 <strong>Grafana<\/strong> \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u062e\u0648\u062f \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc\u200c\u0634\u062f\u0647 \u0637\u0631\u0627\u062d\u06cc\u060c \u0645\u0633\u062a\u0642\u0631 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2>Monitoring as Code \u0686\u06cc\u0633\u062a\u061f<\/h2>\n<p>Monitoring as Code \u06cc\u0639\u0646\u06cc \u062a\u0639\u0631\u06cc\u0641\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u06a9\u0644 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0627\u0632 \u0637\u0631\u06cc\u0642 <strong>\u06a9\u062f \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0646\u0633\u062e\u0647\u200c\u067e\u0630\u06cc\u0631<\/strong> \u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0633\u062a\u06cc.<\/p>\n<p>\u0628\u0647 \u0632\u0628\u0627\u0646 \u0633\u0627\u062f\u0647\u200c\u062a\u0631:<br \/>\n\u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u062f\u0631 Grafana \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0628\u0633\u0627\u0632\u06cc\u062f \u06cc\u0627 \u062f\u0631 Prometheus Rule\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc <strong>YAML \u06cc\u0627 JSON<\/strong> \u0646\u0648\u0634\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u062f\u0627\u062e\u0644 <strong>Git<\/strong> \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f\u060c \u0648 \u0627\u0632 \u0637\u0631\u06cc\u0642 CI\/CD \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u062f\u0644\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0631\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 \u0628\u062e\u0634\u06cc \u0627\u0632 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646\u200c\u06a9\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u2014 \u062f\u0642\u06cc\u0642\u060c \u0642\u0627\u0628\u0644 \u062a\u06a9\u0631\u0627\u0631\u060c \u0642\u0627\u0628\u0644 \u0646\u0633\u062e\u0647\u200c\u0628\u0646\u062f\u06cc \u0648 \u062e\u0648\u062f\u06a9\u0627\u0631.<\/p>\n<h2>\u0686\u0631\u0627 Monitoring as Code \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f<\/h2>\n<p>\u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc\u06cc \u0628\u0627 \u062f\u0647\u200c\u0647\u0627 \u0633\u0631\u0648\u0631\u060c \u0633\u0631\u0648\u06cc\u0633 \u0648 Container\u060c \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0633\u062a\u06cc \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Prometheus \u06cc\u0627 Grafana \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0639\u062b \u0646\u0627\u0647\u0645\u0627\u0647\u0646\u06af\u06cc\u060c \u062e\u0637\u0627 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647\u200c\u06a9\u0627\u0631\u06cc \u0634\u0648\u062f.<br \/>\nMonitoring as Code \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644\u0627\u062a \u0631\u0627 \u062d\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3>\u0645\u0632\u0627\u06cc\u0627:<\/h3>\n<ol>\n<li><strong>\u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u06a9\u0627\u0645\u0644:<\/strong> \u062f\u06cc\u06af\u0631 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062f\u0633\u062a\u06cc \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u0647\u0627 \u06cc\u0627 Rule\u0647\u0627 \u0646\u06cc\u0633\u062a.<\/li>\n<li><strong>\u0646\u0633\u062e\u0647\u200c\u0628\u0646\u062f\u06cc \u062f\u0631 Git:<\/strong> \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u0642\u0627\u0628\u0644 \u0631\u062f\u06cc\u0627\u0628\u06cc \u0648 \u0628\u0627\u0632\u06af\u0634\u062a\u200c\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a.<\/li>\n<li><strong>\u0647\u0645\u0627\u0647\u0646\u06af\u06cc \u0628\u06cc\u0646 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627:<\/strong> \u0645\u062d\u06cc\u0637 \u062a\u0633\u062a\u060c Stage \u0648 Production \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u06cc\u06a9\u0633\u0627\u0646\u06cc \u062f\u0627\u0631\u0646\u062f.<\/li>\n<li><strong>\u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc:<\/strong> \u0627\u0641\u0632\u0648\u062f\u0646 \u0633\u0631\u0648\u0631 \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u06cc\u062f \u0641\u0642\u0637 \u0628\u0627 \u06cc\u06a9 Commit \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li><strong>\u0647\u0645\u200c\u0631\u0627\u0633\u062a\u0627 \u0628\u0627 DevOps:<\/strong> \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0645\u062b\u0644 \u06a9\u062f \u062a\u0648\u0633\u0639\u0647\u060c \u062f\u0631 \u0641\u0631\u0622\u06cc\u0646\u062f CI\/CD \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<\/ol>\n<h2>Prometheus \u0686\u06cc\u0633\u062a\u061f<\/h2>\n<p><strong>Prometheus<\/strong> \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0628\u062a\u062f\u0627 \u062a\u0648\u0633\u0637 SoundCloud \u0633\u0627\u062e\u062a\u0647 \u0634\u062f \u0648 \u062d\u0627\u0644\u0627 \u062a\u0648\u0633\u0637 CNCF (Cloud Native Foundation) \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f.<br \/>\n\u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062a\u0631\u06cc\u06a9 \u0631\u0627 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc\u060c \u0630\u062e\u06cc\u0631\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3>\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc Prometheus:<\/h3>\n<ul>\n<li>\u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u062a\u0627\u06cc\u0645\u200c\u0633\u0631\u06cc (Time-Series Database)<\/li>\n<li>\u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 <strong>Pull-based<\/strong> (\u0633\u0631\u0648\u0631\u0647\u0627 \u0645\u062a\u0631\u06cc\u06a9\u200c\u0647\u0627 \u0631\u0627 \u0646\u0645\u06cc\u200c\u0641\u0631\u0633\u062a\u0646\u062f\u060c Prometheus \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f)<\/li>\n<li>\u0632\u0628\u0627\u0646 \u067e\u0631\u0633\u200c\u0648\u062c\u0648\u06cc \u0645\u062e\u0635\u0648\u0635 \u0628\u0647\u200c\u0646\u0627\u0645 <a href=\"https:\/\/cloud.google.com\/monitoring\/promql\"><strong>PromQL<\/strong><\/a><\/li>\n<li>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 Exporter\u0647\u0627\u06cc \u0641\u0631\u0627\u0648\u0627\u0646 (Linux, MySQL, Nginx, Docker, Node Exporter \u0648 &#8230;)<\/li>\n<li>Alertmanager \u0628\u0631\u0627\u06cc \u0627\u0639\u0644\u0627\u0646 \u0647\u0634\u062f\u0627\u0631\u0647\u0627<\/li>\n<\/ul>\n<h2>Grafana \u0686\u06cc\u0633\u062a\u061f<\/h2>\n<p><strong>Grafana<\/strong> \u0627\u0628\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u0628\u0631\u0627\u06cc <strong>Visualization \u0648 Dashboard \u0633\u0627\u0632\u06cc<\/strong>.<br \/>\n\u0627\u06cc\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Prometheus (\u0648 \u0633\u0627\u06cc\u0631 \u062f\u06cc\u062a\u0627\u0633\u0648\u0631\u0633\u200c\u0647\u0627 \u0645\u062b\u0644 InfluxDB, Loki, Elasticsearch) \u0631\u0627 \u0628\u0647 \u0646\u0645\u0648\u062f\u0627\u0631 \u0648 \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u0647\u0627\u06cc \u067e\u0648\u06cc\u0627 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0631\u0648\u06cc\u06a9\u0631\u062f Monitoring as Code\u060c \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u0647\u0627\u06cc Grafana \u0628\u0647\u200c\u0635\u0648\u0631\u062a JSON \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0627\u062e\u0644 Git \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 Deploy \u06a9\u0631\u062f.<\/p>\n<h2>\u0645\u0639\u0645\u0627\u0631\u06cc \u067e\u0627\u06cc\u0647 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana<\/h2>\n<p>\u062f\u0631 \u0645\u062f\u0644 \u0645\u0639\u0645\u0648\u0644\u06cc\u060c \u0645\u0639\u0645\u0627\u0631\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u06cc\u0646\u200c\u0637\u0648\u0631 \u0627\u0633\u062a:<\/p>\n<pre><code>[Server \/ Node Exporter] \u2192 Prometheus \u2192 Alertmanager \u2192 Grafana\r\n<\/code><\/pre>\n<ol>\n<li><strong>Node Exporter<\/strong> \u0631\u0648\u06cc \u0647\u0631 \u0633\u0631\u0648\u0631 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u0645\u062a\u0631\u06cc\u06a9\u200c\u0647\u0627\u06cc CPU\u060c RAM\u060c Disk \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u062f.<\/li>\n<li><strong>Prometheus<\/strong> \u0627\u06cc\u0646 \u0645\u062a\u0631\u06cc\u06a9\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0628\u0627\u0632\u0647\u200c\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u06cc \u0645\u0634\u062e\u0635 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>Alertmanager<\/strong> \u0628\u0631 \u0627\u0633\u0627\u0633 Rule\u0647\u0627 \u0647\u0634\u062f\u0627\u0631\u0647\u0627 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>Grafana<\/strong> \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0646\u0645\u0648\u062f\u0627\u0631 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<\/ol>\n<p>\u062f\u0631 Monitoring as Code\u060c \u0627\u06cc\u0646 \u0686\u0647\u0627\u0631 \u0628\u062e\u0634 \u0647\u0645\u06af\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc YAML \u0648 JSON \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0646\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0631\u0627\u0628\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc.<\/p>\n<h2>\u0646\u0645\u0648\u0646\u0647 \u0633\u0627\u062e\u062a\u0627\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc Monitoring as Code<\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 Git \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f:<\/p>\n<pre dir=\"ltr\"><code>monitoring\/\r\n\u251c\u2500\u2500 prometheus.yml\r\n\u251c\u2500\u2500 rules\/\r\n\u2502   \u251c\u2500\u2500 cpu_alerts.yml\r\n\u2502   \u2514\u2500\u2500 disk_alerts.yml\r\n\u251c\u2500\u2500 grafana_dashboards\/\r\n\u2502   \u251c\u2500\u2500 system_overview.json\r\n\u2502   \u2514\u2500\u2500 nginx_status.json\r\n\u251c\u2500\u2500 exporters\/\r\n\u2502   \u2514\u2500\u2500 node_exporter.sh\r\n\u2514\u2500\u2500 docker-compose.yml\r\n<\/code><\/pre>\n<p>\u0647\u0631 Commit \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0648\u0634\u0647 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u062c\u062f\u06cc\u062f \u0627\u0632 \u06a9\u0644 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0627\u0633\u062a.<\/p>\n<h2>\u0645\u062b\u0627\u0644: \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Prometheus \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u062f<\/h2>\n<pre dir=\"ltr\"><code class=\"language-yaml\">global:\r\n  scrape_interval: 15s\r\n\r\nscrape_configs:\r\n  - job_name: \"novinhost_servers\"\r\n    static_configs:\r\n      - targets: [\"192.168.1.10:9100\", \"192.168.1.11:9100\"]\r\n<\/code><\/pre>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c Prometheus \u0647\u0631 \u06f1\u06f5 \u062b\u0627\u0646\u06cc\u0647 \u0645\u062a\u0631\u06cc\u06a9\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 Node Exporter \u0633\u0631\u0648\u0631\u0647\u0627 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2>\u0645\u062b\u0627\u0644: Rule \u0628\u0631\u0627\u06cc \u0647\u0634\u062f\u0627\u0631 CPU \u0628\u0627\u0644\u0627<\/h2>\n<pre dir=\"ltr\"><code class=\"language-yaml\">groups:\r\n  - name: cpu_alerts\r\n    rules:\r\n      - alert: HighCPUUsage\r\n        expr: avg(rate(node_cpu_seconds_total{mode=\"system\"}[2m])) &gt; 0.8\r\n        for: 1m\r\n        labels:\r\n          severity: warning\r\n        annotations:\r\n          summary: \"CPU usage is high\"\r\n          description: \"CPU usage above 80% for more than 1 minute\"\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 Rule \u0627\u06af\u0631 \u0645\u0635\u0631\u0641 CPU \u0628\u06cc\u0634 \u0627\u0632 \u06f8\u06f0\u066a \u0628\u0627\u0634\u062f\u060c \u0647\u0634\u062f\u0627\u0631 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2>\u0645\u062b\u0627\u0644: \u062f\u0627\u0634\u0628\u0648\u0631\u062f Grafana \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u062f<\/h2>\n<pre dir=\"ltr\"><code class=\"language-json\">{\r\n  \"dashboard\": {\r\n    \"title\": \"NovinHost Server Overview\",\r\n    \"panels\": [\r\n      {\r\n        \"type\": \"graph\",\r\n        \"title\": \"CPU Usage\",\r\n        \"targets\": [\r\n          {\r\n            \"expr\": \"100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\\\"idle\\\"}[5m])) * 100)\",\r\n            \"legendFormat\": \"{{instance}}\"\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  }\r\n}\r\n<\/code><\/pre>\n<p>\u0627\u06cc\u0646 JSON \u06cc\u06a9 \u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0645\u0635\u0631\u0641 CPU \u062f\u0631 Grafana \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2>\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 (Automated Deployment)<\/h2>\n<p>\u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062d\u0631\u0641\u0647\u200c\u0627\u06cc\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0627 <strong>CI\/CD Pipeline<\/strong> \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<br \/>\n\u0645\u062b\u0644\u0627\u064b \u0628\u0627 GitLab CI \u06cc\u0627 Jenkins \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f:<\/p>\n<ol>\n<li>\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc YAML\/JSON \u0631\u0627 Validate \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0631\u0648\u06cc Prometheus \u0648 Grafana \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>Alertmanager \u0631\u0627 Reload \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<p>\u0646\u0645\u0648\u0646\u0647 Stage \u0633\u0627\u062f\u0647 \u062f\u0631 GitLab CI:<\/p>\n<pre dir=\"ltr\"><code class=\"language-yaml\">stages:\r\n  - validate\r\n  - deploy\r\n\r\nvalidate:\r\n  script:\r\n    - promtool check config prometheus.yml\r\n    - promtool check rules rules\/*.yml\r\n\r\ndeploy:\r\n  script:\r\n    - systemctl reload prometheus\r\n    - curl -X POST http:\/\/grafana.local\/api\/dashboards\/db --data @dashboard.json\r\n<\/code><\/pre>\n<h2>\u0627\u0645\u0646\u06cc\u062a \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u062f\u0631 Monitoring as Code<\/h2>\n<p>\u0647\u0631\u0686\u0642\u062f\u0631 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u062d\u06cc\u0627\u062a\u06cc\u200c\u062a\u0631 \u0634\u0648\u062f\u060c \u0627\u0645\u0646\u06cc\u062a \u0622\u0646 \u0646\u06cc\u0632 \u0627\u0647\u0645\u06cc\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<br \/>\n\u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f (Production)\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul>\n<li>\u0627\u0632 TLS \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 Prometheus \u0648 Exporter\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0627\u0632 Basic Auth \u06cc\u0627 OAuth \u062f\u0631 Grafana \u0628\u0647\u0631\u0647 \u0628\u0628\u0631\u06cc\u062f.<\/li>\n<li>\u0627\u0632 High Availability \u0628\u0631\u0627\u06cc Prometheus \u0648 Alertmanager \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u200c\u06af\u06cc\u0631\u06cc \u0645\u0646\u0638\u0645 \u0627\u0632 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u0647\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/li>\n<\/ul>\n<h2>Monitoring as Code \u062f\u0631 Kubernetes<\/h2>\n<p>\u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc Kubernetes\u060c \u062a\u0631\u06a9\u06cc\u0628 <strong>Helm<\/strong> \u06cc\u0627 <strong>Helmfile<\/strong> \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 Prometheus \u0648 Grafana \u0628\u0633\u06cc\u0627\u0631 \u0645\u062a\u062f\u0627\u0648\u0644 \u0627\u0633\u062a.<br \/>\n\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u0647\u0645\u0647 \u0686\u06cc\u0632 \u2014 \u0627\u0632 Namespace \u06af\u0631\u0641\u062a\u0647 \u062a\u0627 Rule \u0648 Dashboard \u2014 \u062f\u0631 \u0642\u0627\u0644\u0628 \u0641\u0627\u06cc\u0644 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0646\u0645\u0648\u0646\u0647 Helmfile:<\/p>\n<pre dir=\"ltr\"><code class=\"language-yaml\">releases:\r\n  - name: prometheus\r\n    chart: prometheus-community\/prometheus\r\n    values:\r\n      - values-prometheus.yaml\r\n\r\n  - name: grafana\r\n    chart: grafana\/grafana\r\n    values:\r\n      - values-grafana.yaml\r\n<\/code><\/pre>\n<h2>\u0645\u0632\u0627\u06cc\u0627\u06cc Monitoring as Code \u0628\u0631\u0627\u06cc \u0647\u0627\u0633\u062a\u06cc\u0646\u06af \u0648 DevOps<\/h2>\n<ol>\n<li><strong>\u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627<\/strong><br \/>\n\u0647\u0645\u0627\u0646 Rule\u0647\u0627 \u0648 \u062f\u0627\u0634\u0628\u0648\u0631\u062f\u0647\u0627 \u062f\u0631 \u0647\u0645\u0647 \u0633\u0631\u0648\u0631\u0647\u0627 \u062a\u06a9\u0631\u0627\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<li><strong>\u0633\u0631\u0639\u062a \u062f\u0631 \u0627\u0633\u062a\u0642\u0631\u0627\u0631<\/strong><br \/>\n\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062c\u062f\u06cc\u062f \u0641\u0642\u0637 \u0628\u0627 \u06cc\u06a9 Commit \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li><strong>\u0645\u0633\u062a\u0646\u062f\u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631<\/strong><br \/>\n\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc YAML \u0648 JSON \u0628\u0647\u062a\u0631\u06cc\u0646 \u062f\u0627\u06a9\u06cc\u0648\u0645\u0646\u062a \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0647\u0633\u062a\u0646\u062f.<\/li>\n<li><strong>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u06cc\u0645\u06cc \u0648 \u06a9\u0646\u062a\u0631\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a<\/strong><br \/>\n\u0647\u0645\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 Git Review \u0645\u06cc\u200c\u06af\u0630\u0631\u062f.<\/li>\n<li><strong>\u0627\u0646\u0639\u0637\u0627\u0641 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc<\/strong><br \/>\n\u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0647\u200c\u0647\u0627 \u06cc\u0627 \u0635\u062f\u0647\u0627 Node \u062f\u0631 \u0647\u0627\u0633\u062a\u06cc\u0646\u06af \u0645\u062f\u0631\u0646.<\/li>\n<\/ol>\n<h2>\u0686\u06a9\u200c\u0644\u06cc\u0633\u062a \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u06cc\u0639 Monitoring as Code<\/h2>\n<p>\u2705 \u0646\u0635\u0628 Prometheus \u0648 Grafana (Docker Compose \u06cc\u0627 Kubernetes)<br \/>\n\u2705 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc Node Exporter \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u0647\u0627<br \/>\n\u2705 \u062a\u0639\u0631\u06cc\u0641 Job\u0647\u0627 \u0648 Rule\u0647\u0627 \u062f\u0631 YAML<br \/>\n\u2705 \u0630\u062e\u06cc\u0631\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u062f\u0631 Git<br \/>\n\u2705 \u0627\u0641\u0632\u0648\u062f\u0646 Dashboard JSON \u062f\u0631 Grafana<br \/>\n\u2705 \u0633\u0627\u062e\u062a Pipeline \u0628\u0631\u0627\u06cc Validate \u0648 Deploy<br \/>\n\u2705 \u062a\u0633\u062a \u0647\u0634\u062f\u0627\u0631\u0647\u0627 \u0648 \u0627\u0645\u0646\u06cc\u062a<\/p>\n<h2>\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/h2>\n<p>Monitoring as Code \u06cc\u06a9 \u062a\u062d\u0648\u0644 \u0648\u0627\u0642\u0639\u06cc \u062f\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0648 \u0647\u0627\u0633\u062a\u06cc\u0646\u06af \u0627\u0633\u062a.<br \/>\n\u0628\u0627 \u062a\u0628\u062f\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06a9\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u062f\u0642\u06cc\u0642\u060c \u062a\u06a9\u0631\u0627\u0631\u067e\u0630\u06cc\u0631 \u0648 \u0628\u062f\u0648\u0646 \u062e\u0637\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0631\u062f.<br \/>\nPrometheus \u0648 Grafana \u062f\u0648 \u0627\u0628\u0632\u0627\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u06cc\u0646 \u0627\u0646\u0642\u0644\u0627\u0628 \u0647\u0633\u062a\u0646\u062f \u2014 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0642\u062f\u0631\u062a \u062a\u062d\u0644\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0648 \u0646\u0645\u0627\u06cc\u0634 \u0632\u0646\u062f\u0647 \u06a9\u0647 \u0628\u0647 \u062a\u06cc\u0645\u200c\u0647\u0627\u06cc DevOps \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0647\u0645\u06cc\u0634\u0647 \u06cc\u06a9 \u06af\u0627\u0645 \u062c\u0644\u0648\u062a\u0631 \u0627\u0632 \u062e\u0637\u0627\u0647\u0627 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<h2>\u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a \u06cc\u0627\u0631 \u0646\u0648\u06cc\u0646 \u0634\u0645\u0627\u0633\u062a<\/h2>\n<p>\u062f\u0631 <strong>\u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a<\/strong>\u060c \u0645\u0627 \u0628\u0627\u0648\u0631 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0645\u0624\u062b\u0631\u060c \u067e\u0627\u06cc\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0647\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u0633\u062a.<br \/>\n\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0646\u0648\u06cc\u0646 \u0645\u0627\u0646\u0646\u062f <strong>Prometheus\u060c Grafana \u0648 Monitoring as Code<\/strong>\u060c \u062a\u06cc\u0645 \u0641\u0646\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a \u062a\u0648\u0627\u0646\u0633\u062a\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u06cc \u0628\u0633\u0627\u0632\u062f \u06a9\u0647 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0647\u0648\u0634\u0645\u0646\u062f \u0633\u0644\u0627\u0645\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u0631\u0627 \u0632\u06cc\u0631 \u0646\u0638\u0631 \u062f\u0627\u0631\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a: \u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC). \u062f\u0631 \u0627\u06cc\u0646 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":22235001,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,1],"tags":[],"class_list":["post-22235000","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.5 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana - \u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a<\/title>\n<meta name=\"description\" content=\"\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC)\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code\u061b-\u0645\u062f\u06cc\u0631\u06cc\u062a-\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af-\u0628\u0627-prometheus-\u0648-grafana\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana\" \/>\n<meta property=\"og:description\" content=\"\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code\u061b-\u0645\u062f\u06cc\u0631\u06cc\u062a-\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af-\u0628\u0627-prometheus-\u0648-grafana\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-23T06:57:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5-1024x632.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"632\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/\"},\"author\":{\"name\":\"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#\/schema\/person\/9c19520b89795eb348a5720faf46ae66\"},\"headline\":\"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana\",\"datePublished\":\"2025-10-23T06:57:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/\"},\"wordCount\":205,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png\",\"articleSection\":[\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\",\"\u0645\u0642\u0627\u0644\u0627\u062a\"],\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/\",\"url\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/\",\"name\":\"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana - \u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a\",\"isPartOf\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png\",\"datePublished\":\"2025-10-23T06:57:33+00:00\",\"description\":\"\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC)\",\"breadcrumb\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage\",\"url\":\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png\",\"contentUrl\":\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png\",\"width\":1536,\"height\":948,\"caption\":\"Monitoring as Code\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\/\/www.novinhost.org\/wiki\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#website\",\"url\":\"https:\/\/www.novinhost.org\/wiki\/\",\"name\":\"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.novinhost.org\/wiki\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fa-IR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#organization\",\"name\":\"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a\",\"url\":\"https:\/\/www.novinhost.org\/wiki\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/01\/NovinHostLogo-4-1.webp\",\"contentUrl\":\"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/01\/NovinHostLogo-4-1.webp\",\"width\":270,\"height\":74,\"caption\":\"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a\"},\"image\":{\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#\/schema\/person\/9c19520b89795eb348a5720faf46ae66\",\"name\":\"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/www.novinhost.org\/wiki\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/088055006f4bd18931b4f76c085b5c4164a259b49cc772017ee33074c87d2f94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/088055006f4bd18931b4f76c085b5c4164a259b49cc772017ee33074c87d2f94?s=96&d=mm&r=g\",\"caption\":\"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc\"},\"url\":\"https:\/\/www.novinhost.org\/wiki\/author\/sepehr\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana - \u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a","description":"\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code\u061b-\u0645\u062f\u06cc\u0631\u06cc\u062a-\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af-\u0628\u0627-prometheus-\u0648-grafana\/","og_locale":"fa_IR","og_type":"article","og_title":"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana","og_description":"\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC)","og_url":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code\u061b-\u0645\u062f\u06cc\u0631\u06cc\u062a-\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af-\u0628\u0627-prometheus-\u0648-grafana\/","og_site_name":"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a","article_published_time":"2025-10-23T06:57:33+00:00","og_image":[{"width":1024,"height":632,"url":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5-1024x632.png","type":"image\/png"}],"author":"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc","twitter_card":"summary_large_image","twitter_misc":{"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a":"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc","\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"6 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#article","isPartOf":{"@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/"},"author":{"name":"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc","@id":"https:\/\/www.novinhost.org\/wiki\/#\/schema\/person\/9c19520b89795eb348a5720faf46ae66"},"headline":"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana","datePublished":"2025-10-23T06:57:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/"},"wordCount":205,"commentCount":0,"publisher":{"@id":"https:\/\/www.novinhost.org\/wiki\/#organization"},"image":{"@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png","articleSection":["\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc","\u0645\u0642\u0627\u0644\u0627\u062a"],"inLanguage":"fa-IR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/","url":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/","name":"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana - \u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a","isPartOf":{"@id":"https:\/\/www.novinhost.org\/wiki\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage"},"image":{"@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png","datePublished":"2025-10-23T06:57:33+00:00","description":"\u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0627\u0645\u0631\u0648\u0632\u06cc \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0648\u0632\u0628\u0647\u200c\u0631\u0648\u0632 \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u0631\u06a9\u0627\u0646 \u0627\u0635\u0644\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647 \u0648 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.\u0627\u0645\u0627 \u0647\u0645\u0627\u0646\u200c\u0637\u0648\u0631 \u06a9\u0647 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647 \u0633\u0645\u062a Infrastructure as Code \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0647\u0645 \u0627\u0632 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f\u06cc \u0627\u0632 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a:\u0645\u062f\u0644\u06cc \u0628\u0647 \u0646\u0627\u0645 Monitoring as Code (MaC)","breadcrumb":{"@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/"]}]},{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#primaryimage","url":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png","contentUrl":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-5-2025-11_34_48-AM-5.png","width":1536,"height":948,"caption":"Monitoring as Code"},{"@type":"BreadcrumbList","@id":"https:\/\/www.novinhost.org\/wiki\/monitoring-as-code%d8%9b-%d9%85%d8%af%db%8c%d8%b1%db%8c%d8%aa-%d9%85%d8%a7%d9%86%db%8c%d8%aa%d9%88%d8%b1%db%8c%d9%86%da%af-%d8%a8%d8%a7-prometheus-%d9%88-grafana\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/www.novinhost.org\/wiki\/"},{"@type":"ListItem","position":2,"name":"Monitoring as Code\u061b \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0627 Prometheus \u0648 Grafana"}]},{"@type":"WebSite","@id":"https:\/\/www.novinhost.org\/wiki\/#website","url":"https:\/\/www.novinhost.org\/wiki\/","name":"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a","description":"","publisher":{"@id":"https:\/\/www.novinhost.org\/wiki\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.novinhost.org\/wiki\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fa-IR"},{"@type":"Organization","@id":"https:\/\/www.novinhost.org\/wiki\/#organization","name":"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a","url":"https:\/\/www.novinhost.org\/wiki\/","logo":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/www.novinhost.org\/wiki\/#\/schema\/logo\/image\/","url":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/01\/NovinHostLogo-4-1.webp","contentUrl":"https:\/\/www.novinhost.org\/wiki\/wp-content\/uploads\/2025\/01\/NovinHostLogo-4-1.webp","width":270,"height":74,"caption":"\u0648\u06cc\u06a9\u06cc \u0646\u0648\u06cc\u0646 \u0647\u0627\u0633\u062a"},"image":{"@id":"https:\/\/www.novinhost.org\/wiki\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.novinhost.org\/wiki\/#\/schema\/person\/9c19520b89795eb348a5720faf46ae66","name":"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc","image":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/www.novinhost.org\/wiki\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/088055006f4bd18931b4f76c085b5c4164a259b49cc772017ee33074c87d2f94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/088055006f4bd18931b4f76c085b5c4164a259b49cc772017ee33074c87d2f94?s=96&d=mm&r=g","caption":"\u0633\u067e\u0647\u0631 \u0646\u0627\u062f\u0631\u06cc"},"url":"https:\/\/www.novinhost.org\/wiki\/author\/sepehr\/"}]}},"_links":{"self":[{"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/posts\/22235000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/comments?post=22235000"}],"version-history":[{"count":1,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/posts\/22235000\/revisions"}],"predecessor-version":[{"id":22235002,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/posts\/22235000\/revisions\/22235002"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/media\/22235001"}],"wp:attachment":[{"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/media?parent=22235000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/categories?post=22235000"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.novinhost.org\/wiki\/wp-json\/wp\/v2\/tags?post=22235000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}