Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Prometheus — monitoring pro svět kontejnerů

10. 05. 2017 1 min čtení CORE SYSTEMSdevops

Nagios nám sloužil věrně deset let. Ale v dynamickém světě kontejnerů, kde se pody rodí a umírají každou minutu, je statická konfigurace monitoringu neudržitelná. Prometheus s jeho service discovery a pull modelem je přesně to, co potřebujeme.

Proč ne Nagios/Zabbix

Tradiční monitoring funguje na principu: nakonfigurujte seznam hostů, definujte checky, sledujte. Jenže v Kubernetes nemáte „hosty” — máte pody, které se dynamicky přesouvají mezi nody, scalují nahoru a dolů, umírají a rodí se znovu.

Prometheus architektura

Prometheus funguje na pull modelu — sám si chodí pro metriky na definované endpointy. V Kubernetes má nativní service discovery: automaticky najde všechny pody s anotací prometheus.io/scrape: "true" a začne z nich sbírat metriky.

PromQL — jazyk, který milujete nebo nenávidíte

# Request rate per second za posledních 5 minut
rate(http_requests_total[5m])

# 99. percentil latence
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))

# CPU utilizace podu
rate(container_cpu_usage_seconds_total{namespace="production"}[5m])

PromQL se učíte postupně, ale jakmile ho ovládnete, dokážete odpovědět na otázky, které byste s Nagiosem nikdy nepoložili.

Grafana dashboardy

Prometheus sám má minimalistické webové UI. Pro vizualizaci používáme Grafanu, která má nativní Prometheus datasource. Komunita sdílí tisíce hotových dashboardů na grafana.com.

Alerting s Alertmanagerem

groups:
- name: application
  rules:
  - alert: HighErrorRate
    expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.1
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "High error rate on {{ $labels.service }}"

Instrumentace aplikací

Prometheus klientské knihovny existují pro Javu, Go, Python, Node.js a další. Ve Spring Boot stačí přidat Micrometer s Prometheus registry a máte metriky za pár minut. Counter, Gauge, Histogram, Summary — čtyři typy metrik pokryjí většinu potřeb.

Prometheus je standard pro cloud-native monitoring

Přechod z Nagiosu nebyl triviální — museli jsme přehodnotit, co a jak monitorujeme. Ale výsledek je nesrovnatelně lepší. Prometheus s Grafanou a Alertmanagerem je dnes naše standardní monitoring trojice.

prometheusmonitoringkubernetesgrafana