Docker and system monitoring
A simple overview of the most important Docker host and container metrics. (cAdvisor/Prometheus)
Docker + System dashboard
Dashboard compatible with Grafana 4
System metric
This dashboard display Docker and system metric, the aim it’s to have all the metric on one dashboard. The first lines represents the system metric with gauge and text/graph (easy to visualize and minimalist).
- Time up
- Memory usage/swap
- Disk usage
- Load
- Network
- CPU usage
- Disk I/O
Alerts are set on disk usage, memory usage and load usage to warn when the metric are critics.
Docker metric
The second parts of the dashboard is Docker metric, more detailed using mostly graph.
- CPU usage per container
- Sent network per container
- Received network per container
- Memory usage/swap per container
- Remaining memory for each container (if men_limit defined in docker-compose.yml)
Server configuration
I use the docker-compose to set my monitoring: https://github.com/vegasbrianc/prometheus. My dashboard work with this configuration. Service running:
- docker
- prometheus
- node-exporter
- alertmanager
- cadvisor
- grafana v4
Install with docker-compose.yml
docker-compose.yml
prometheus.yml
# my global config
global:
scrape_interval: 120s # By default, scrape targets every 15 seconds.
evaluation_interval: 120s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'my-project'
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
rule_files:
# - "alert.rules"
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 120s
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090','cadvisor:8080','node-exporter:9100', 'nginx-exporter:9113']
Start your docker
Run docker-compose up -d
Data source config
Collector config:
Upload an updated version of an exported dashboard.json file from Grafana
Revision | Description | Created | |
---|---|---|---|
Download |

Docker

Easily monitor Docker with Grafana Cloud's out-of-the-box monitoring solution.
Learn moreGet this dashboard
Import the dashboard template
or