{"id":1201,"date":"2025-09-12T06:26:25","date_gmt":"2025-09-12T06:26:25","guid":{"rendered":"https:\/\/tooldech.com\/?p=1201"},"modified":"2025-09-12T06:26:28","modified_gmt":"2025-09-12T06:26:28","slug":"prometheus-grafana-monitoring-in-ambiente-docker","status":"publish","type":"post","link":"https:\/\/tooldech.com\/en\/prometheus-grafana-monitoring-in-ambiente-docker\/","title":{"rendered":"Prometheus + Grafana: Monitoring in a Docker Environment"},"content":{"rendered":"<p>Good morning everyone and welcome back to a new Tooldech article!\nToday we\u2019ll talk about two tools combined together: Prometheus + Grafana!<\/p>\n\n\n\n<p>Do you want to monitor hosts and containers <strong>in a few minutes<\/strong> using standard open-source tools? In this guide we configure\u2026 <strong>Prometheus<\/strong> (metrics collection) and <strong>Grafana<\/strong> (visualization) with <strong>Docker Compose<\/strong>, including <strong>cAdvisor<\/strong> (metrics of containers) and <strong>Node Exporter<\/strong> (host metrics). It is designed for those starting from scratch and looking for a solution <strong>repeteable<\/strong>, <strong>document<\/strong> and <strong>ready for prod<\/strong> (with persistent volumes and automatic provisioning).<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Why Prometheus + Grafana (and how they work)<\/h2>\n\n\n\n<p><a href=\"https:\/\/prometheus.io\/\"><strong>Prometheus<\/strong> <\/a>It is a \u201cpull\u201d monitoring system: it periodically queries some\u2026 <strong>exporter<\/strong> (HTTP endpoints) and stores time series.<br><a href=\"https:\/\/grafana.com\/\"><strong>Grafana<\/strong> <\/a>It displays these metrics through dashboards, alerts, and interactive panels.<\/p>\n\n\n\n<p>Architecture we are going to create:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>docker-compose <\/strong>with 4 services: Prometheus, Grafana, Node Exporter, cAdvisor.<\/li>\n\n\n\n<li><strong>Prometheus<\/strong> \u2192 collects metrics from:\n<ul class=\"wp-block-list\">\n<li><strong>Node Exporter<\/strong> (host status: CPU, RAM, disks, network)<\/li>\n\n\n\n<li><strong>cAdvisor<\/strong> (Docker container status: CPU, memory, I\/O)<\/li>\n\n\n\n<li><strong>Prometheus stesso<\/strong> (autoscrape, useful for health checks)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Grafana<\/strong> \u2192 connected to Prometheus as a data source to create dashboards.<\/li>\n<\/ul>\n\n\n\n<p>Result: You have <strong>visibility<\/strong> on health and performance, identify bottlenecks, and prevent incidents.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker<\/strong> and <strong>Docker Compose v2<\/strong> installed<\/li>\n\n\n\n<li><strong>Free port<\/strong>: <code>3000<\/code> (Grafana), <code>9090<\/code> (Prometheus), <code>9100<\/code> (Node Exporter), <code>8080<\/code> (cAdvisor).<\/li>\n\n\n\n<li><strong>Operating System<\/strong>: Recommend Linux. On macOS\/Windows with Docker Desktop <strong>Node Exporter<\/strong> has limited visibility on the host (you can still try it).<\/li>\n<\/ul>\n\n\n\n<p>Rapid verify:<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>docker --version\ndocker compose version<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-dominant-color=\"2a2a29\" data-has-transparency=\"false\" style=\"--dominant-color: #2a2a29;\" loading=\"lazy\" decoding=\"async\" width=\"587\" height=\"142\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/versionDocker1.webp\" alt=\"\" class=\"wp-image-1206 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/versionDocker1.webp 587w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/versionDocker1-300x73.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/versionDocker1-18x4.webp 18w\" sizes=\"auto, (max-width: 587px) 100vw, 587px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Structure of project<\/h2>\n\n\n\n<p>Let\u2019s create a folder with the code and configuration files.<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>mkdir monitoring-docker-stack<\/code><\/pre>\n\n\n\n<p>Once created, we move into it.<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>cd monitoring-docker-stack<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-dominant-color=\"212121\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"747\" height=\"301\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/createFolder2.webp\" alt=\"\" class=\"wp-image-1208 not-transparent\" style=\"--dominant-color: #212121; width:598px;height:auto\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/createFolder2.webp 747w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/createFolder2-300x121.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/createFolder2-18x7.webp 18w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Configuration file<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1) <code>Prometheus<\/code><\/strong><\/h3>\n\n\n\n<p>In the first step, it is used to configure Prometheus by telling it where to collect the metrics from \u2014 a sort of map that defines which services to monitor and how often.<\/p>\n\n\n\n<p>Create the folder and move into it.<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>mkdir prometheus\ncd prometheus<\/code><\/pre>\n\n\n\n<p>With the prometheus.yml file inside it. Basically, you define:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>how often it should perform the <strong>scrape<\/strong> (default 15 seconds).<\/li>\n\n\n\n<li>only <strong>job<\/strong> (Prometheus, Node Exporter, cAdvisor) \u2192 that is, a set of targets;<\/li>\n\n\n\n<li>the <strong>endpoint<\/strong> (host:port) that Prometheus has to query;<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-dominant-color=\"383b3c\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"598\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1-1024x598.webp\" alt=\"\" class=\"wp-image-1209 not-transparent\" style=\"--dominant-color: #383b3c; width:584px;height:auto\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1-1024x598.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1-300x175.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1-768x448.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1-1536x896.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1-18x12.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/promscreen1.webp 1542w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Explain rapid:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>scrape_interval<\/code>: scrape interval (15s is a good compromise).<\/li>\n\n\n\n<li>Three jobs: Prometheus, Node Exporter, and cAdvisor; the names are resolved thanks to the <strong>rete Docker<\/strong> <code>monitoring<\/code>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2) <code>Grafana<\/code><\/h3>\n\n\n\n<p>Imagine what this could do\u2026 configuring Grafana so that it already has the connection to Prometheus ready.<\/p>\n\n\n\n<p>Same procedure<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>mkdir grafana\/provisioning\/datasources\ncd grafana\/provisioning\/datasources<\/code><\/pre>\n\n\n\n<p>And let\u2019s create our file inside the datasource.yaml folder. <\/p>\n\n\n\n<p>Basically, in the file <code>datasource.yml<\/code> you tell a Grafana<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>that it must be the <strong>default<\/strong> for all the dashboard.<\/li>\n\n\n\n<li>what <strong>data source<\/strong> use (Prometheus).<\/li>\n\n\n\n<li>where to find it (<code>http:\/\/prometheus:9090<\/code> inside the Docker network).<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-dominant-color=\"484b4f\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"772\" height=\"634\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafanascreen2.webp\" alt=\"\" class=\"wp-image-1210 not-transparent\" style=\"--dominant-color: #484b4f; width:391px;height:auto\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafanascreen2.webp 772w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafanascreen2-300x246.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafanascreen2-768x631.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafanascreen2-15x12.webp 15w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>What does it mean<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>isDefault: true<\/code>: it will be the default data source for new dashboards.<\/li>\n\n\n\n<li><code>type: prometheus<\/code>: type of data source.<\/li>\n\n\n\n<li><code>access: proxy<\/code>: the queries go through the Grafana backend (useful in a private network).<\/li>\n\n\n\n<li><code>url<\/code>: Docker service name + port.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) <code>docker-compose.yml<\/code><\/h3>\n\n\n\n<p>Let\u2019s start with the final step of the hands-on part: creating the docker-compose file, which will include all the components needed to bring the stack up.<\/p>\n\n\n\n<p>Create the docker-compose.yaml file in the root of the project: <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-dominant-color=\"2e2f30\" data-has-transparency=\"false\" loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"1024\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-510x1024.webp\" alt=\"\" class=\"wp-image-1211 not-transparent\" style=\"--dominant-color: #2e2f30; width:539px;height:auto\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-510x1024.webp 510w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-149x300.webp 149w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-768x1543.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-765x1536.webp 765w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-1020x2048.webp 1020w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-6x12.webp 6w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-1024x2057.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/compose3-scaled.webp 1274w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Explain rapid:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ports<\/code>: exposes the UIs outside Docker (localhost).<\/li>\n\n\n\n<li><code>volumes<\/code>: data persistent (<code>prom_data<\/code>, <code>grafana_data<\/code>) + configuration mounts.<\/li>\n\n\n\n<li><code>command<\/code> In Prometheus: set the config path, data retention, and the reload API.<\/li>\n\n\n\n<li><code>node-exporter<\/code>: legge <code>\/proc<\/code>, <code>\/sys<\/code> and the host\u2019s root fs in read-only mode; <code>pid: host<\/code> Improves visibility of processes.<\/li>\n\n\n\n<li><code>cadvisor<\/code>: mounts the host directory to read metrics about containers. <code>privileged: true<\/code> and mount of <code>\/sys\/fs\/cgroup<\/code> help on systems with <strong>cgroup v2<\/strong>.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Note macOS\/Windows<\/strong>: Node Exporter and cAdvisor will see the Docker Desktop VM, not the real host.<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Security note:<\/strong> in production, change the Grafana passwords, restrict access to the ports (firewall\/VPN\/reverse proxy), and <strong>specify the versions<\/strong> image specifications (avoid <code>:latest<\/code>).<\/p>\n<\/blockquote>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Start of stack<\/h2>\n\n\n\n<p><strong>I\u2019d like to clarify that the stack was started on a Linux machine, just for convenience!<\/strong><\/p>\n\n\n\n<p>At this point, we are ready to start the stack from inside <code>monitoring-stack<\/code>, with the commands:<\/p>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>docker compose up -d\ndocker compose ps<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"f3f4f4\" data-has-transparency=\"false\" style=\"--dominant-color: #f3f4f4;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"294\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4-1024x294.webp\" alt=\"\" class=\"wp-image-1214 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4-1024x294.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4-300x86.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4-768x221.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4-1536x441.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4-18x5.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dockerps4.webp 1901w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You should see 4 containers running.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Verify the demo is working<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) Prometheus check<\/h3>\n\n\n\n<p>We\u2019ve reached the application monitoring part; let\u2019s start by seeing what we can observe from Prometheus.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open http:\/\/localhost:9090\u2192 <strong>Status \u2192 Targets<\/strong><br>You should see the jobs <code>prometheus<\/code>, <code>node-exporter<\/code>, <code>cadvisor<\/code> with state <strong>UP<\/strong>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"edeff0\" data-has-transparency=\"false\" style=\"--dominant-color: #edeff0;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"505\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status-1024x505.webp\" alt=\"\" class=\"wp-image-1213 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status-1024x505.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status-300x148.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status-768x379.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status-1536x758.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status-18x9.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/prom5status.webp 1917w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quick query test ( menu <strong>Graph<\/strong>) Here are some of the queries you can run:\n<ul class=\"wp-block-list\">\n<li><code>up<\/code> \u2192 shows if the targets are responding (1 = ok).<\/li>\n\n\n\n<li><code>node_load1<\/code> \u2192 1-minute average load of the host (Node Exporter).<\/li>\n\n\n\n<li><code>container_memory_working_set_bytes<\/code> \u2192 memory usage per container (cAdvisor).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"edeeef\" data-has-transparency=\"false\" style=\"--dominant-color: #edeeef;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"508\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6-1024x508.webp\" alt=\"\" class=\"wp-image-1215 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6-1024x508.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6-300x149.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6-768x381.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6-1536x762.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6-18x9.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/graph6.webp 1916w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2) Grafana access<\/h3>\n\n\n\n<p>Let\u2019s check the second application running, which is Grafana.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open http:\/\/localhost:3000<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"4a3855\" data-has-transparency=\"false\" style=\"--dominant-color: #4a3855;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"692\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafana7-1024x692.webp\" alt=\"\" class=\"wp-image-1217 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafana7-1024x692.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafana7-300x203.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafana7-768x519.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafana7-18x12.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/grafana7.webp 1243w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Login:  user &#8211;<code>&gt; admin \/ password -&gt; admin<\/code> \u2192 <strong>change password<\/strong> when requested.<br>On <strong>Dashboards \u2192 New \u2192 Add visualization \u2192 Prometheus<\/strong> and try a query:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"333437\" data-has-transparency=\"false\" style=\"--dominant-color: #333437;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10-1024x528.webp\" alt=\"\" class=\"wp-image-1218 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10-1024x528.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10-300x155.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10-768x396.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10-1536x791.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10-18x9.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgraf10.webp 1708w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>How to Create a Minimal Dashboard (in 2 Minutes)<br>In Grafana: <strong>Dashboards \u2192 New \u2192 Dashboard \u2192 Add a new panel<\/strong>.<br>Select the data source <strong>Prometheus<\/strong>.<br>Enter the query (example: average host CPU):<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>avg by (instance) (rate(node_cpu_seconds_total{mode!=\"idle\"}&#91;5m]))<\/code><\/pre>\n\n\n\n<p>Set <strong>Legend<\/strong> su <code>{{instance}}<\/code>, save it as \u201cHost Overview.\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"2d3034\" data-has-transparency=\"false\" style=\"--dominant-color: #2d3034;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11-1024x610.webp\" alt=\"\" class=\"wp-image-1219 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11-1024x610.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11-300x179.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11-768x457.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11-1536x915.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11-18x12.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/dashgrafana11.webp 1605w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Add a second panel for memory to include an additional query. <\/p>\n\n\n\n<p><strong>N.B. you need to scroll down<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"26272c\" data-has-transparency=\"false\" style=\"--dominant-color: #26272c;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/addquery13-1024x300.webp\" alt=\"\" class=\"wp-image-1221 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/addquery13-1024x300.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/addquery13-300x88.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/addquery13-768x225.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/addquery13-18x5.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/addquery13.webp 1186w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code has-pale-cyan-blue-background-color has-background\"><code>node_memory_MemAvailable_bytes \/ node_memory_MemTotal_bytes<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li>select <strong>Unit \u2192 Percent (0-1)<\/strong> To get a percentage, go to the scroll bar on the right where you\u2019ll find a variety of parameters. Scroll down until you see Unit and then select Percent.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-dominant-color=\"313135\" data-has-transparency=\"false\" style=\"--dominant-color: #313135;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"641\" src=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana-1024x641.webp\" alt=\"\" class=\"wp-image-1220 not-transparent\" srcset=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana-1024x641.webp 1024w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana-300x188.webp 300w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana-768x481.webp 768w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana-1536x962.webp 1536w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana-18x12.webp 18w, https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/unit12grafana.webp 1581w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>We\u2019ve reached the end of this article. I hope it helped you understand how these two applications work. If used correctly, they can be very useful for monitoring the resources of our stacks.<\/p>\n\n\n\n<p>Cheers, and see you in the next Tooldech tutorial!<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Follow us on our social media!<\/p>\n\n\n\n<ul class=\"wp-block-social-links has-huge-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-a89b3969 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-pinterest  wp-block-social-link\"><a href=\"https:\/\/pin.it\/2Bk2aTtDW\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Pinterest<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-instagram  wp-block-social-link\"><a href=\"https:\/\/www.instagram.com\/tooldech\/\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Instagram<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a href=\"https:\/\/github.com\/Matteo29-mar\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\n\n<li class=\"wp-social-link wp-social-link-etsy  wp-block-social-link\"><a href=\"https:\/\/www.etsy.com\/shop\/tooldech\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Etsy<\/span><\/a><\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>Buongiorno a tutti e bentornati in nuovo articolo di tooldech oggi parleremo di due strumenti combinati insieme Prometheus + Grafana ! Vuoi monitorare host e container in pochi minuti usando strumenti open\u2011source standard? In questa guida configuriamo Prometheus (raccolta metriche) e Grafana (visualizzazione) con Docker Compose, includendo cAdvisor (metriche dei container) e Node Exporter (metriche [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,4,5],"tags":[],"class_list":["post-1201","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applicativi-vari","category-devops","category-docker"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Prometheus + Grafana: monitoring in ambiente Docker - tooldech<\/title>\n<meta name=\"description\" content=\"Scopri come configurare Prometheus + Grafana: monitoring in ambiente Docker in questa guida offerta da tooldech\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tooldech.com\/en\/prometheus-grafana-monitoring-in-ambiente-docker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prometheus + Grafana: monitoring in ambiente Docker - tooldech\" \/>\n<meta property=\"og:description\" content=\"Scopri come configurare Prometheus + Grafana: monitoring in ambiente Docker in questa guida offerta da tooldech\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tooldech.com\/en\/prometheus-grafana-monitoring-in-ambiente-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"tooldech\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-12T06:26:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-12T06:26:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"tooldech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tooldech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/\"},\"author\":{\"name\":\"tooldech\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\"},\"headline\":\"Prometheus + Grafana: monitoring in ambiente Docker\",\"datePublished\":\"2025-09-12T06:26:25+00:00\",\"dateModified\":\"2025-09-12T06:26:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/\"},\"wordCount\":827,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\"},\"image\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/title.webp\",\"articleSection\":[\"Applicativi Vari\",\"DevOps\",\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/\",\"url\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/\",\"name\":\"Prometheus + Grafana: monitoring in ambiente Docker - tooldech\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/title.webp\",\"datePublished\":\"2025-09-12T06:26:25+00:00\",\"dateModified\":\"2025-09-12T06:26:28+00:00\",\"description\":\"Scopri come configurare Prometheus + Grafana: monitoring in ambiente Docker in questa guida offerta da tooldech\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#primaryimage\",\"url\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/title.webp\",\"contentUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/title.webp\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/prometheus-grafana-monitoring-in-ambiente-docker\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/tooldech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prometheus + Grafana: monitoring in ambiente Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/#website\",\"url\":\"https:\\\/\\\/tooldech.com\\\/\",\"name\":\"tooldech\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tooldech.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/tooldech.com\\\/#\\\/schema\\\/person\\\/4a554644f96951080896bbb327febe3b\",\"name\":\"tooldech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\",\"url\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\",\"width\":1024,\"height\":1024,\"caption\":\"tooldech\"},\"logo\":{\"@id\":\"https:\\\/\\\/tooldech.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/logo.png\"},\"sameAs\":[\"https:\\\/\\\/tooldech.com\"],\"url\":\"https:\\\/\\\/tooldech.com\\\/en\\\/author\\\/tooldech\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Prometheus + Grafana: monitoring in ambiente Docker - tooldech","description":"Scopri come configurare Prometheus + Grafana: monitoring in ambiente Docker in questa guida offerta da tooldech","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:\/\/tooldech.com\/en\/prometheus-grafana-monitoring-in-ambiente-docker\/","og_locale":"en_US","og_type":"article","og_title":"Prometheus + Grafana: monitoring in ambiente Docker - tooldech","og_description":"Scopri come configurare Prometheus + Grafana: monitoring in ambiente Docker in questa guida offerta da tooldech","og_url":"https:\/\/tooldech.com\/en\/prometheus-grafana-monitoring-in-ambiente-docker\/","og_site_name":"tooldech","article_published_time":"2025-09-12T06:26:25+00:00","article_modified_time":"2025-09-12T06:26:28+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp","type":"image\/png"}],"author":"tooldech","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tooldech","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#article","isPartOf":{"@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/"},"author":{"name":"tooldech","@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b"},"headline":"Prometheus + Grafana: monitoring in ambiente Docker","datePublished":"2025-09-12T06:26:25+00:00","dateModified":"2025-09-12T06:26:28+00:00","mainEntityOfPage":{"@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/"},"wordCount":827,"commentCount":6,"publisher":{"@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b"},"image":{"@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp","articleSection":["Applicativi Vari","DevOps","Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/","url":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/","name":"Prometheus + Grafana: monitoring in ambiente Docker - tooldech","isPartOf":{"@id":"https:\/\/tooldech.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#primaryimage"},"image":{"@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp","datePublished":"2025-09-12T06:26:25+00:00","dateModified":"2025-09-12T06:26:28+00:00","description":"Scopri come configurare Prometheus + Grafana: monitoring in ambiente Docker in questa guida offerta da tooldech","breadcrumb":{"@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#primaryimage","url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp","contentUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/tooldech.com\/prometheus-grafana-monitoring-in-ambiente-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tooldech.com\/"},{"@type":"ListItem","position":2,"name":"Prometheus + Grafana: monitoring in ambiente Docker"}]},{"@type":"WebSite","@id":"https:\/\/tooldech.com\/#website","url":"https:\/\/tooldech.com\/","name":"tooldech","description":"","publisher":{"@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tooldech.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/tooldech.com\/#\/schema\/person\/4a554644f96951080896bbb327febe3b","name":"tooldech","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png","url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png","contentUrl":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png","width":1024,"height":1024,"caption":"tooldech"},"logo":{"@id":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo.png"},"sameAs":["https:\/\/tooldech.com"],"url":"https:\/\/tooldech.com\/en\/author\/tooldech\/"}]}},"jetpack_featured_media_url":"https:\/\/tooldech.com\/wp-content\/uploads\/2025\/09\/title.webp","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1095,"url":"https:\/\/tooldech.com\/en\/docker-compose-guida-semplice\/","url_meta":{"origin":1201,"position":0},"title":"Docker Compose: simple guide","author":"tooldech","date":"August 1, 2025","format":false,"excerpt":"Cos'\u00e8 Docker Compose e perch\u00e9 usarlo Buongiorno a tutti e benvenuti in nuovo articolo di tooldech, in questo articolo parleremo di uno strumento utile quando si usa Docker, ti sarai accorto che avviare pi\u00f9 container con docker run pu\u00f2 diventare rapidamente complicato. Immagina di dover far partire un\u2019applicazione web con\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/tooldech.com\/en\/category\/docker\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-1-ago-2025-08_54_11.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-1-ago-2025-08_54_11.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-1-ago-2025-08_54_11.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-1-ago-2025-08_54_11.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-1-ago-2025-08_54_11.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-1-ago-2025-08_54_11.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":16,"url":"https:\/\/tooldech.com\/en\/docker-installation\/","url_meta":{"origin":1201,"position":1},"title":"Complete Guide to Installing Docker","author":"tooldech","date":"February 3, 2024","format":false,"excerpt":"Salve a tutti. Benvenuti nel primo articolo di questa serie di tutorial su Docker. Oggi parleremo della Docker installation. Voglio fornire a voi miei cari lettori una guida completa. Non sar\u00e0 semplice in pochi passi. Questa guida vi porter\u00e0 a quello che cercate in questo tutorial. Non ci saranno passaggi\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/tooldech.com\/en\/category\/docker\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/02\/Docker-Logo-2013-2015-1524352318-scaled.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/02\/Docker-Logo-2013-2015-1524352318-scaled.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/02\/Docker-Logo-2013-2015-1524352318-scaled.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/02\/Docker-Logo-2013-2015-1524352318-scaled.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/02\/Docker-Logo-2013-2015-1524352318-scaled.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/02\/Docker-Logo-2013-2015-1524352318-scaled.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1278,"url":"https:\/\/tooldech.com\/en\/docker-hub-first-pass\/","url_meta":{"origin":1201,"position":2},"title":"Docker Hub first pass","author":"tooldech","date":"December 3, 2025","format":false,"excerpt":"Buongiorno a tutti oggi parleremo di uno strumento molto usato per chi usa Docker. Docker Hub \u00e8 uno degli strumenti pi\u00f9 usati dagli sviluppatori e dai DevOps di tutto il mondo. Se usi Docker, prima o poi ti servir\u00e0 un luogo dove condividere, salvare e scaricare immagini in modo semplice\u2026","rel":"","context":"In &quot;Docker&quot;","block_context":{"text":"Docker","link":"https:\/\/tooldech.com\/en\/category\/docker\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-3-dic-2025-08_17_01.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-3-dic-2025-08_17_01.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-3-dic-2025-08_17_01.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/12\/ChatGPT-Image-3-dic-2025-08_17_01.webp?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1314,"url":"https:\/\/tooldech.com\/en\/project-web-app-from-local-docker-to-production-enviroment-on-cloud\/","url_meta":{"origin":1201,"position":3},"title":"Project web app from local docker to production enviroment on cloud.","author":"tooldech","date":"March 12, 2026","format":false,"excerpt":"Buongiorno a tutti e benvenuti in nuovo articolo di tooldech! Oggi vedremo come realizzare una migrazione di un progetto di una web app in locale e portarlo in produzione sul cloud di AWS. In questo tutorial verranno spiegati i passaggi e i procedimenti necessari per spostare una web app locale\u2026","rel":"","context":"In &quot;Applicativi Vari&quot;","block_context":{"text":"Applicativi Vari","link":"https:\/\/tooldech.com\/en\/category\/applicativi-vari\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2026\/03\/webappCloud.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1009,"url":"https:\/\/tooldech.com\/en\/deployare-su-aws-ecs-con-load-balancer-guida-passo-passo\/","url_meta":{"origin":1201,"position":4},"title":"Deploying on AWS ECS with Load Balancer: Step-by-Step Guide","author":"tooldech","date":"June 29, 2025","format":false,"excerpt":"Buongiorno a tutti e benvenuti in un nuovo articolo di tooldech oggi parleremo di AWS ECS! Sei pronto a portare la tua applicazione Python online in modo scalabile e sicuro? In questo articolo ti guider\u00f2 passo dopo passo nel deployment di una web app Python su AWS ECS (Elastic Container\u2026","rel":"","context":"In &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/tooldech.com\/en\/category\/cloud\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2025\/06\/logo-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":504,"url":"https:\/\/tooldech.com\/en\/pipeline-con-github-actions-devops-tutorial\/","url_meta":{"origin":1201,"position":5},"title":"How to Create a CI\/CD Pipeline with GitHub Actions","author":"tooldech","date":"December 25, 2024","format":false,"excerpt":"Salve a tutti e bentornati in un nuovo articolo di tooldech, oggi vedremo come configurare una pipeline CI\/CD utilizzando GitHub Actions per una semplice web app Python. L'obiettivo di questo tutorial \u00e8 quello di vedere tutto il ciclo di vita di un software e di come ad ogni push viene\u2026","rel":"","context":"In &quot;DevOps&quot;","block_context":{"text":"DevOps","link":"https:\/\/tooldech.com\/en\/category\/devops\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/12\/cop.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/12\/cop.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/12\/cop.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/tooldech.com\/wp-content\/uploads\/2024\/12\/cop.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts\/1201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/comments?post=1201"}],"version-history":[{"count":7,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts\/1201\/revisions"}],"predecessor-version":[{"id":1224,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/posts\/1201\/revisions\/1224"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/media\/1223"}],"wp:attachment":[{"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/media?parent=1201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/categories?post=1201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tooldech.com\/en\/wp-json\/wp\/v2\/tags?post=1201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}