IT Monitoring

Prometheus

Definicja #

Prometheus to open-source'owy system monitoringu i alertowania z bazą danych szeregów czasowych (time-series database), stworzony przez SoundCloud w 2012 roku. W 2016 roku dołączył do CNCF (Cloud Native Computing Foundation) jako drugi projekt po Kubernetes. Dziś Prometheus jest standardem monitoringu w ekosystemie Cloud Native.

Kluczowe cechy Prometheusa:

  • Model pull (scraping) — Prometheus sam odpytuje (scrape) aplikacje i eksportery w regularnych interwałach (domyślnie co 15 sekund); w odróżnieniu od modelu push stosowanego w Graphite czy InfluxDB
  • Time-series database (TSDB) — wydajna lokalna baza danych metryczny z kompresją; dane przechowywane jako próbki: (timestamp, float64 value) + labels
  • PromQL — potężny język zapytań (Prometheus Query Language) do eksploracji i agregacji metryk time-series; używany przez Grafanę do tworzenia dashboardów
  • Labels — wielowymiarowe etykietowanie metryk (np. http_requests_total{method="GET", status="200", endpoint="/api/offers"}); umożliwia filtrowanie i agregację
  • Alertmanager — oddzielny komponent do zarządzania alertami: deduplication, routing, powiadomienia (Slack, PagerDuty, email)
  • Exporters — agenci eksponujący metryki w formacie Prometheus dla systemów, które natywnie go nie wspierają: node_exporter (OS metryki), blackbox_exporter, nginx-prometheus-exporter, postgres_exporter

Format metryk Prometheus: metric_name{label1="val1", label2="val2"} value [timestamp]

Zastosowania #

Prometheus stosuje się do:

  • Monitorowania aplikacji i mikroserwisów — instrumentowanie kodu (biblioteki klienckie dla Go, Java, Python, .NET) i scraping metryk: latencja, throughput, błędy (RED: Rate, Errors, Duration)
  • Monitorowania infrastruktury Kubernetes — kube-prometheus-stack (Helm chart) dostarcza Prometheusa, Alertmanagera i gotowe dashboardy Grafany dla klastra K8s i wszystkich workloadów
  • Alertowania przy przekroczeniu progów — reguły alertów w PromQL (np. wysoki error rate, wysoka latencja, mało pamięci)
  • Długoterminowego przechowywania metryk — Prometheus lokalnie (krótkoterminowo) + Thanos lub Cortex do long-term storage i HA
  • SLO/SLA monitoring — śledzenie celów poziomu usług opartych na Error Budget i Burn Rate

Ścieżka nauki #

Prometheus jest najczęściej uczony razem z Grafaną i Kubernetes — naturalny stos observability.

Zacznij od:

  • Instalacja: docker run -p 9090:9090 prom/prometheus — dostępne UI pod localhost:9090
  • Podstawy PromQL: up, rate(), sum by(), histogram_quantile()
  • Dodanie node_exporter — metryki systemu operacyjnego (CPU, RAM, dysk, sieć)
  • Scrape config: prometheus.yml z targets i interwałami
  • Integracja z Grafaną — Prometheus jako Data Source, pierwsze dashboardy

Następnie pogłębiaj:

  • Instrumentowanie aplikacji: Prometheus .NET client, micrometer (Java), prometheus_client (Python)
  • Alertmanager — reguły alertów w YAML, routing do Slacka/PagerDuty
  • kube-prometheus-stack — Helm chart dla Kubernetes; ServiceMonitor, PodMonitor
  • Long-term storage: Thanos lub VictoriaMetrics jako alternatywa dla natywnego TSDB
  • Certyfikacja: KCNA lub CKA (Kubernetes) — Prometheus jest integralną częścią K8s stack

FAQ #

Czym różni się Prometheus od Graphite i InfluxDB?
Prometheus używa modelu pull — sam scrapuje metryki w regularnych interwałach. Graphite i InfluxDB używają modelu push — aplikacje wysyłają metryki do bazy. Prometheus ma wbudowane PromQL i Alertmanager. InfluxDB jest bazą ogólnego przeznaczenia (IoT, metryki biznesowe); Prometheus jest zoptymalizowany dla monitoringu aplikacji i infrastruktury.
Czy Prometheus może przechowywać metryki długoterminowo?
Natywnie Prometheus przechowuje metryki lokalnie — domyślnie 15 dni. Do długoterminowego przechowywania (miesiące, lata) i wysokiej dostępności używa się Thanos, Cortex lub VictoriaMetrics jako remote storage. Grafana Cloud oferuje Prometheus-compatible long-term storage jako SaaS.
Co to jest PromQL?
PromQL (Prometheus Query Language) to język zapytań do eksploracji i agregacji metryk time-series w Prometheusie. Obsługuje: selekcję metryk z filtrowaniem po labelach, funkcje rate(), increase(), histogram_quantile(), agregacje sum/avg/max by(). Grafana używa PromQL do budowania dashboardów z danych Prometheusa.
Ile zarabia DevOps/SRE znający Prometheusa?
DevOps Engineer lub SRE znający Prometheus, Grafana i Kubernetes zarabia w Polsce od 14 000 do 28 000 zł brutto. Observability (metryki, logi, traces) i Kubernetes to najcenniejsze kompetencje w rolach Platform Engineer i SRE w firmach z dużą infrastrukturą.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Prometheus w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.