Роли компонентов
Prometheus периодически считывает метрики с targets, хранит time series и вычисляет alert rules;
Grafana подключается к Prometheus как к источнику данных и отображает дашборды;
Alertmanager получает alerts от Prometheus, выполняет grouping, deduplication, silencing и отправляет уведомления в Slack, email, PagerDuty и другие каналы;
node_exporter обычно отдаёт host-level метрики CPU, памяти, дисков и сети.
Что измерять
Для API полезно начинать с RED-подхода: rate запросов, errors и duration. Для инфраструктуры применяют USE-подход: utilization, saturation и errors. Также нужны метрики базы данных, очередей, кэша, внешних API и бизнес-метрики.
Пример Prometheus scrape-конфигурации
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets:
- node-1.example.com:9100
- node-2.example.com:9100
- job_name: api
metrics_path: /metrics
static_configs:
- targets:
- api-1.example.com:8000
- api-2.example.com:8000
Пример alert rule
groups:
- name: api-alerts
rules:
- alert: ApiHighErrorRate
expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05
for: 10m
labels:
severity: critical
annotations:
summary: High API error rate
description: More than 5% of requests return 5xx for 10 minutes.
Как проектировать алерты
Алерт должен быть actionable: получатель должен понимать, что произошло, на какой сервис это влияет и что делать дальше. Нельзя алертить на каждую внутреннюю метрику без связи с пользовательским воздействием. Для каждого критичного алерта нужен runbook со ссылками на дашборд, логи и шаги диагностики.
Надёжность мониторинга
Сам monitoring stack тоже требует резервирования, резервных копий конфигурации, контроля retention и защиты доступа. Для критичной инфраструктуры Prometheus и Alertmanager разворачивают с высокой доступностью, а алерты проверяют тестовыми срабатываниями.
Как ответить на собеседовании
Я использую Prometheus для сбора метрик, Grafana для дашбордов и Alertmanager для маршрутизации уведомлений. Слежу за RED-метриками API, USE-метриками инфраструктуры, состоянием зависимостей и бизнес-показателями. Алерты делаю actionable, с порогом, временем подтверждения и runbook, чтобы не создавать alert fatigue.