Lo standard de facto per le metriche cloud-native. Pull-based, PromQL, service discovery — la base dell'observability.
PROMETHEUS · open source
Prometheus è il secondo progetto graduato della CNCF (dopo Kubernetes), nato in SoundCloud nel 2012 e adottato ovunque ci sia un'infrastruttura container. Modello pull (scrape periodico di endpoint /metrics), TSDB locale, PromQL per query, service discovery dinamica.
Lo deployiamo ovunque ci siano applicazioni da monitorare: un Prometheus per cluster K8s, un Prometheus per edge site, un Prometheus per VM. Locale veloce, retention breve. Per la storia lunga (13+ mesi) usiamo remote_write verso Mimir su Clodino Cloud o on-prem.
Ecosistema enorme: oltre 200 exporter ufficiali (node, blackbox, snmp, postgres, redis, mysql, kafka, nginx, blackbox per HTTP/TCP/ICMP/DNS, ecc.) e altrettanti community. Se esiste un sistema, esiste un exporter.
Semplice, dimensionale, integrabile.
Linguaggio funzionale per query su serie temporali. Sotto-secondo su milioni di serie.
Kubernetes, Consul, EC2, Azure, GCP, file_sd. I target arrivano da soli.
Scrape /metrics ogni N secondi. Health-check implicito, semplice da debuggare.
Pusha verso backend long-term (Mimir, Thanos, Cortex). Best-effort, retry, batching.
Regole recording per pre-compute query costose. Alerting rules native verso Alertmanager.
200+ exporter ufficiali. Hardware (IPMI, SNMP), DB, broker, OS, cloud, business.
$ cat monitoring/checkout.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: checkout labels: { release: prometheus } spec: selector: matchLabels: { app: checkout } endpoints: - port: metrics interval: 15s path: /actuator/prometheus $ kubectl apply -f monitoring/checkout.yaml › servicemonitor.monitoring.coreos.com/checkout created › Prometheus reloaded · 47 new targets discovered $ promtool query instant 'rate(http_requests_total[5m])' checkout{route="/v1/cart"} 12.4 checkout{route="/v1/payment"} 3.1
Prometheus pronto in ogni cluster, remote_write verso un backend long-term, alerting già cablato.