Guide to Container Monitoring with Prometheus and Grafana

This project uses a monitoring system to keep track of the health and performance of a multi-container application. It uses Prometheus to collect metrics, Grafana to visualize them, and Alertmanager to send notifications when something goes wrong. Docker Compose makes it easy to run all these components together.

Source Repository: https://github.com/samin-irtiza/container-monitoring

%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TD
    subgraph DockerCompose["Docker Compose"]
        A1["Prometheus"]
        A2["Alertmanager"]
        A5["Grafana"]

        subgraph Exporters["Exporters"]
            A3["Node Exporter"]
            A4["Blackbox Exporter"]
            A9["cAdvisor"]
        end
    end

    subgraph PrometheusConfig["Prometheus Configuration"]
        A7["prometheus.yml"]
        A8["rules.yml"]
    end

    A6["PromQL"] -->|Executed by| A1
    A1 -->|Reads configurations| PrometheusConfig
    A1 -->|Sends alerts| A2
    A1 -->|Scrapes metrics| Exporters

    A8 -->|Uses in expressions| A6

    A5 -->|Visualizes metrics| A1
    A5 -->|Uses for queries| A6
    Exporters -->|Exposes metrics| A1

Chapters

  1. Docker Compose
  2. Prometheus
  3. Grafana
  4. Node Exporter
  5. cAdvisor
  6. Blackbox Exporter
  7. Alertmanager
  8. Prometheus Configuration (prometheus.yml)
  9. Alerting Rules (rules.yml)
  10. PromQL (Prometheus Query Language)