Prometheus (metrics storage) + Grafana (visualization) — open-source standard для monitoring. Deploy за 15 мин через Docker compose. Prometheus scrapes /metrics endpoints ваших apps + Node exporter (system metrics). Grafana подключается к Prometheus как data source, показывает dashboards. Нет lock-in: всё open-source, own-host.
Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.
docker compose up -d| Сценарий | Конфиг |
|---|---|
| docker-compose.yml | services:
prometheus:
image: prom/prometheus
ports: ["9090:9090"]
volumes: [./prometheus.yml:/etc/prometheus/prometheus.yml]
grafana:
image: grafana/grafana
ports: ["3000:3000"]
environment:
- GF_SECURITY_ADMIN_PASSWORD=change_me |
| prometheus.yml | scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['host.docker.internal:9100']
- job_name: 'app'
metrics_path: '/metrics'
static_configs:
- targets: ['app:8080'] |
| Node exporter | docker run -d --name node-exporter \
--net="host" --pid="host" \
-v /:/host:ro \
prom/node-exporter --path.rootfs=/host |
| PromQL query (CPU idle) | rate(node_cpu_seconds_total{mode="idle"}[5m]) |
| Alert rule | groups:
- name: example
rules:
- alert: HighCPU
expr: rate(node_cpu_seconds_total{mode!="idle"}[5m]) > 0.9
for: 5m |
Prometheus — pull model, простой setup, TSDB. InfluxDB — push model, SQL-like queries, better long-term. Prometheus лучше для Kubernetes/microservices.
Default 15 дней. Для long-term — remote storage (Thanos, Cortex, Grafana Mimir) или Prometheus federation.
Alertmanager (отдельный service). Routes alerts в email, Slack, PagerDuty, Telegram.
Prometheus+Grafana — self-hosted, free. Datadog — SaaS, $15+/host/мес, лучше UX. Выбор по budget vs control.