{"id":3690,"date":"2022-06-22T18:54:18","date_gmt":"2022-06-22T13:24:18","guid":{"rendered":"https:\/\/blog.osmosys.co\/?p=3690"},"modified":"2024-02-02T04:57:10","modified_gmt":"2024-02-02T04:57:10","slug":"monitoring-prometheus-grafana","status":"publish","type":"post","link":"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/","title":{"rendered":"Monitoring with Prometheus and Grafana"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_1 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\r\n<div class=\"ez-toc-title-container\">\r\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\r\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\r\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#What_is_Prometheus\" >What is Prometheus?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Prometheus_working\" >Prometheus working.<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Architecture_diagram\" >Architecture diagram<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Components_of_monitoring_with_prometheus\" >Components of monitoring with prometheus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Setup\" >Setup<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Step_1_Install_prometheus\" >Step 1: Install prometheus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Step_2_Install_the_Exporter_%E2%80%93_node_exporterwindows_exporter\" >Step 2: Install the Exporter &#8211; node_exporter\/windows_exporter<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Step_3_Grafana_visualization\" >Step 3: Grafana visualization<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Adding_a_datasource\" >Adding a datasource<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/staging.osmosys.co\/uk\/monitoring-prometheus-grafana\/#Adding_a_dashboard\" >Adding a dashboard<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\r\n<h2 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"What_is_Prometheus\"><\/span><strong><span style=\"color: #c20404\">What is Prometheus?<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/prometheus.io\/\n<\/div><\/figure>\n\n\n\n<p>Prometheus is a monitoring tool which was created to monitor highly dynamic container environments like Kubernetes, Docker swarm etc. It can also be used to monitor bare server where applications are directly deployed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"Prometheus_working\"><\/span><strong><span style=\"color: #c20404\">Prometheus working.<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Prometheus collects and stores its metrics as time series data, i.e. metrics information is stored with the timestamp at which it was recorded, alongside optional key-value pairs called labels.<\/p>\n\n\n\n<p>More info on data model of metrics: <a href=\"https:\/\/prometheus.io\/docs\/concepts\/data_model\/\" target=\"_blank\" rel=\"noopener\">https:\/\/prometheus.io\/docs\/concepts\/data_model\/<\/a><\/p>\n\n\n\n<p>Prometheus pulls metric data, stores metrics data in a time series database which is stored in local, it then accepts queries called <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/querying\/basics\/\" target=\"_blank\" rel=\"noopener\">PromQL<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"Architecture_diagram\"><\/span><strong><span style=\"color: #c20404\">Architecture diagram<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/prometheus.io\/assets\/architecture.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"Components_of_monitoring_with_prometheus\"><\/span><strong><span style=\"color: #c20404\">Components of monitoring with prometheus<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>1. <strong>Target:<\/strong> A machine, application server, microservice, containers, log services etc. We will monitor our own machine in the example.<br>2. <strong>Prometheus server<\/strong><br>3. <strong>Exporter:<\/strong> Each target will have an exporter which exposes an end point like localhost:3030\/metrics&nbsp;The end point is\/metrics<\/p>\n\n\n\n<p>Prometheus pulls the metrics from this URL. For our example since we are monitoring our machine we will use node exporter.&nbsp;For windows we have <a href=\"https:\/\/github.com\/prometheus-community\/windows_exporter\/releases\" target=\"_blank\" rel=\"noopener\">windows exporter<\/a>.<\/p>\n\n\n\n<p>Prometheus has a long list of exporters available for different targets: <a href=\"https:\/\/prometheus.io\/docs\/instrumenting\/exporters\/\" target=\"_blank\" rel=\"noopener\">https:\/\/prometheus.io\/docs\/instrumenting\/exporters\/<\/a><\/p>\n\n\n\n<p>Once we have metrics being collected by prometheus we will use <a href=\"https:\/\/grafana.com\/\" target=\"_blank\" rel=\"noopener\">Grafana<\/a>. Prometheus lacks a good visualization tool, hence we will use grafana.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"Setup\"><\/span><strong><span style=\"color: #c20404\">Setup<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We can do all the setup using dockers or can directly install\/run on our machine.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_1_Install_prometheus\"><\/span>Step 1: Install prometheus<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Download the archive file for your system.<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/prometheus.io\/download\/#prometheus\n<\/div><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">tar xvfz prometheus-*.tar.gz\ncd prometheus-*\n<\/pre>\n\n\n\n<p>Prometheus already has a default configuration file called&nbsp;<span class=\"lang:default decode:true crayon-inline \">prometheus.yaml<\/span>\u252c\u00e1<em>.<\/em><\/p>\n\n\n\n<p>Open the file it should have three parts to it with explanation.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">global:\n  scrape_interval: 15s\n  evaluation_interval: 15s\n\nrule_files:\n  # - \"first.rules\"\n  # - \"second.rules\"\n\nscrape_configs:\n  - job_name: prometheus\n    static_configs:\n      - targets: [\"localhost:9090\"]\n<\/pre>\n\n\n\n<p>As you have noticed we already have a job called&nbsp;<strong>prometheus<\/strong>&nbsp;which is monitoring the prometheus server itself at&nbsp;<span class=\"theme:xcode lang:default decode:true crayon-inline \">localhost:9090<\/span>\u252c\u00e1.<\/p>\n\n\n\n<p><strong>rule_files<\/strong>: this will be another yaml file which has rules either recording i.e. precompute frequently needed or computationally expensive expressions and save their result as a new set of time series or alerting rules.<\/p>\n\n\n\n<p>Run prometheus using the following command<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\/prometheus --config.file=prometheus.yml<\/pre>\n\n\n\n<p>By default prometheus uses port&nbsp;<span class=\"lang:default decode:true crayon-inline \">9090<\/span>\u252c\u00e1. Which means we have to check the end point&nbsp;<span class=\"lang:default decode:true  crayon-inline \">http:\/\/localhost:9090\/metrics<\/span>\u252c\u00e1 for metrics. Open up&nbsp;<a href=\"http:\/\/localhost:9090\/\" target=\"_blank\" rel=\"noopener\">http:\/\/localhost:9090\/<\/a>&nbsp;in your browser to open the prometheus dashboard.<\/p>\n\n\n\n<p>Open it and check how the metrics appears.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/ZXQdtGk.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<p>Execute few queries and check for data.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">promhttp_metric_handler_requests_total\n<img decoding=\"async\" class=\"size-full wp-image-3551 aligncenter\" src=\"https:\/\/i.imgur.com\/yCCprIv.png\" alt=\"\"><\/pre>\n\n\n\n<p>You may not get same as above as it has more targets.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_2_Install_the_Exporter_%E2%80%93_node_exporterwindows_exporter\"><\/span>Step 2: Install the Exporter &#8211; node_exporter\/windows_exporter<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Node Exporter:&nbsp;<a href=\"https:\/\/prometheus.io\/download\/#node_exporter\" target=\"_blank\" rel=\"noopener\">https:\/\/prometheus.io\/download\/#node_exporter<\/a><br>Windows Exporter:&nbsp;<a href=\"https:\/\/github.com\/prometheus-community\/windows_exporter\/releases\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/prometheus-community\/windows_exporter\/releases<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar xvfz node_exporter-*.*-amd64.tar.gz\ncd node_exporter-*.*-amd64\n.\/node_exporter\n<\/pre>\n\n\n\n<p>Node Exporter by default runs on port&nbsp;<span class=\"lang:default decode:true crayon-inline \">9100<\/span>\u252c\u00e1. So we get expect the metrics in&nbsp;<span class=\"lang:default decode:true crayon-inline \">http:\/\/localhost:9100\/metrics<\/span><\/p>\n\n\n\n<p>Open up the&nbsp;<span class=\"lang:default decode:true crayon-inline \">prometheus.yaml<\/span>\u252c\u00e1. And add the node exporter job to the&nbsp;<span class=\"lang:default decode:true crayon-inline \">scape_configs<\/span>\u252c\u00e1.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">- job_name: my_machine\n  static_configs:\n- targets: [\"localhost:9100\"]\n<\/pre>\n\n\n\n<p>Restart the prometheus service with new config.<br>Run the query to monitor the average amount of CPU time spent in system mode, per second, over the last minute (in seconds)<br><a href=\"http:\/\/localhost:9090\/graph?g0.range_input=1h&amp;g0.expr=rate(node_cpu_seconds_total%7Bmode%3D%22system%22%7D%5B1m%5D)&amp;g0.tab=1\" target=\"_blank\" rel=\"noopener\">rate(node_cpu_seconds_total{mode=\u201dsystem\u201d}[1m])<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/dttCses.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/3pkIhbG.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Step_3_Grafana_visualization\"><\/span>Step 3: Grafana visualization<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Download Grafana:&nbsp;<a href=\"https:\/\/grafana.com\/grafana\/download?pg=get&amp;plcmt=selfmanaged-box1-cta1\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/grafana\/download?pg=get&amp;plcmt=selfmanaged-box1-cta1<\/a><\/p>\n\n\n\n<p>Install grafana and start server.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl daemon-reload\nsudo systemctl start grafana-server\nsudo systemctl status grafana-server\nsudo systemctl enable grafana-server<\/pre>\n\n\n\n<p>By default it runs on port&nbsp;<span class=\"lang:default decode:true crayon-inline \">3000<\/span>. To change the port edit the configuration file as explained&nbsp;<a href=\"https:\/\/grafana.com\/docs\/grafana\/v7.5\/administration\/configuration\/\" target=\"_blank\" rel=\"noopener\">here<\/a>.<br>Open:&nbsp;<a href=\"http:\/\/localhost:3000\/\" target=\"_blank\" rel=\"noopener\">http:\/\/localhost:3000\/<\/a><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>Default credentials are&nbsp;<strong>admin<\/strong>&nbsp;as username and password.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p>Grafana uses Prometheus as data source and also uses PromQL under the hood for queries.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"Adding_a_datasource\"><\/span><strong><span style=\"color: #c20404\">Adding a datasource<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/OTszHW7.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<p>1. Go to configuration to add datasource. <a href=\"http:\/\/localhost:3000\/datasources\" target=\"_blank\" rel=\"noopener\">http:\/\/localhost:3000\/datasources<\/a><br>2. Click on Add Data Source and select Prometheus.<br><br>3. Add appropriate URL which is http:\/\/localhost:9090\/<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/ApWP0Fr.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<p><br>4. Click on Save &amp; Test<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bkmrk-introduction\"><span class=\"ez-toc-section\" id=\"Adding_a_dashboard\"><\/span><strong><span style=\"color: #c20404\">Adding a dashboard<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>We have to create dashboards in order to visualize the data.<\/p>\n\n\n\n<p>Though instead of creating a new one from scratch, we can use dashboards which are already available publicly.<\/p>\n\n\n\n<p id=\"bkmrk-introduction\"><span style=\"color: #c20404\"><span style=\"color: #c20404\">Node Exporter dashboard: <\/span><\/span><a href=\"https:\/\/grafana.com\/grafana\/dashboards\/1860\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/grafana\/dashboards\/1860<\/a><\/p>\n\n\n\n<p id=\"bkmrk-introduction\"><span style=\"color: #c20404\">Windows Exporter dashboard: 2. You can copy the JSON or better just copy the dashboard ID, paste it and click on&nbsp;<span class=\"lang:default decode:true crayon-inline \">Load<\/span>.<br>3. Select Prometheus as data source and click on&nbsp;<span class=\"lang:default decode:true crayon-inline \">Import<\/span>. You should be redirected to the newly created dashboard.<\/span><a href=\"https:\/\/grafana.com\/grafana\/dashboards\/14694\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/grafana\/dashboards\/14694<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/9SDDaPt.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<p>1. Click on the plus icon and click on Import option.<br><br>2. You can copy the JSON or better just copy the dashboard ID, paste it and click on Load<\/p>\n\n\n\n<p>3. Select Prometheus as data source and click on.You should be redirected to the newly created dashboard.<\/p>\n\n\n\n<p>All dashboard and panel configs are available as json. To learn how any panel is created or which metric and formula is used to calculate a visualization. Follow the steps.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/zlXYYH1.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<p>1. Click on the down arrow on a panel.<br>2. Click on edit.<br>Alternatively, you can click on a panel and press<br>For this example the node(Host) and job(value of job from metric) variables are used as filters. The are values of the metric node_cpu_seconds_total<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/1moXDGR.png\" alt=\"\" class=\"wp-image-3551\" \/><\/figure>\n\n\n\n<p>More on Grafana Visualization: <a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/visualizations\/\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/docs\/grafana\/latest\/visualizations\/<\/a><\/p>\n\n\n\n<p>Check other dashboards\/panels and checkout the values used and create your own dashboard to monitor your system.<\/p>\n\n\n\n<p>Here we have only done monitoring. A proper monitoring solution should also have alerting system. As mentioned prometheus allows alerting and so does Grafana.<\/p>\n\n\n\n<p>Learn how to setup alerts from the following links<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/alerting\/\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/docs\/grafana\/latest\/alerting\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/alerting\/old-alerting\/create-alerts\/\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/docs\/grafana\/latest\/alerting\/old-alerting\/create-alerts\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/grafana.com\/blog\/2021\/06\/14\/the-new-unified-alerting-system-for-grafana-everything-you-need-to-know\/\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/blog\/2021\/06\/14\/the-new-unified-alerting-system-for-grafana-everything-you-need-to-know\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/prometheus.io\/docs\/alerting\/latest\/alertmanager\/\" target=\"_blank\" rel=\"noopener\">https:\/\/prometheus.io\/docs\/alerting\/latest\/alertmanager\/<\/a> (Since we are using grafana, we don&#8217;t have to setup alerting in prometheus)<\/li>\n<\/ul>\n\n\n\n<p><strong><span style=\"color: #c20404\">References<\/span><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/prometheus.io\/docs\/introduction\/overview\/\" target=\"_blank\" rel=\"noopener\">https:\/\/prometheus.io\/docs\/introduction\/overview\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/grafana.com\/docs\/grafana\/latest\/\" target=\"_blank\" rel=\"noopener\">https:\/\/grafana.com\/docs\/grafana\/latest\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=h4Sl21AKiDg\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=h4Sl21AKiDg<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=cF2P9d7rBlg\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=cF2P9d7rBlg<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong><span style=\"color: #c20404\">Posted By:<\/span> <span style=\"color: #000080\">Vikas Kyatannawar, Osmosee<\/span><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is Prometheus? Prometheus is a monitoring tool which was created to monitor highly dynamic container environments like Kubernetes, Docker swarm etc. It can also be used to monitor bare server where applications are directly deployed. Prometheus working. Prometheus collects and stores its metrics as time series data, i.e. metrics information is stored with the [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":4031,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_lmt_disableupdate":"","_lmt_disable":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[39],"tags":[],"class_list":["post-3690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general"],"modified_by":null,"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/posts\/3690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/comments?post=3690"}],"version-history":[{"count":0,"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/posts\/3690\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/media?parent=3690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/categories?post=3690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staging.osmosys.co\/uk\/wp-json\/wp\/v2\/tags?post=3690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}