Monitoring — Prometheus a Grafana
Monitoring je kritická súčasť DevOps. Bez prehľadu o stave systémov nemôžete reagovať na problémy, optimalizovať výkon ani plánovať kapacitu. Prometheus a Grafana tvoria najpopulárnejší open-source monitoring stack.
Prometheus
Prometheus je systém na zber a ukladanie časových radov metrík. Navrhol ho SoundCloud, dnes je CNCF projekt.
Ako funguje:
- Pull model — Prometheus aktívne sťahuje metriky z cieľových endpointov (
/metrics) - Time-series DB — ukladá dáta s časovou pečiatkou
- PromQL — dopytovací jazyk na analýzu metrík
- Alertmanager — posiela notifikácie pri prekročení prahov
Konfigurácia:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
- job_name: 'app'
static_configs:
- targets: ['app:3000']
PromQL príklady:
# CPU usage posledných 5 minút
rate(node_cpu_seconds_total{mode!="idle"}[5m])
# Počet HTTP requestov za sekundu
rate(http_requests_total[1m])
# 95. percentil latencie
histogram_quantile(0.95, rate(http_duration_seconds_bucket[5m]))
Grafana
Grafana je vizualizačný nástroj, ktorý zobrazuje metriky z Promethea (a ďalších zdrojov) v interaktívnych dashboardoch.
Funkcie:
- Preddefinované aj custom dashboardy
- Alerting s notifikáciami (Slack, email, PagerDuty)
- Podpora viacerých dátových zdrojov
- Anotácie a premenné pre dynamické dashboardy
Čo monitorovať?
4 Golden Signals (Google SRE):
- Latency — čas odozvy
- Traffic — počet požiadaviek
- Errors — miera chybovosti
- Saturation — využitie zdrojov
Infraštruktúra: CPU, RAM, disk, sieť Aplikácia: response time, error rate, throughput Business: konverzie, registrácie, tržby
Exportéry
- Node Exporter — metriky OS (CPU, RAM, disk)
- cAdvisor — metriky kontajnerov
- Blackbox Exporter — HTTP/DNS/TCP probe
- Custom — vlastné metriky v aplikácii
Best Practices
- Definujte SLI/SLO pre kľúčové služby
- Nastavte zmysluplné alerty (nie príliš veľa)
- Uchovávajte metriky minimálne 30 dní
- Používajte labely pre filtrovanie
Monitoring nie je luxus — je to nevyhnutnosť pre spoľahlivé systémy.