🟢 Beginner

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:

  1. Pull model — Prometheus aktívne sťahuje metriky z cieľových endpointov (/metrics)
  2. Time-series DB — ukladá dáta s časovou pečiatkou
  3. PromQL — dopytovací jazyk na analýzu metrík
  4. 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):

  1. Latency — čas odozvy
  2. Traffic — počet požiadaviek
  3. Errors — miera chybovosti
  4. 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.