ELK verarbeitet Logs. Aber was ist mit Metriken? CPU, Speicher, Antwortzeit, Fehlerrate, Geschäftsmetriken? Prometheus von SoundCloud (jetzt ein CNCF-Projekt) ist ein Monitoring-System, das für dynamische, containerisierte Umgebungen entwickelt wurde.
Pull-Modell¶
Anders als Graphite (Push) scrapt Prometheus aktiv Metriken von Endpunkten. Jeder Service exponiert einen /metrics-Endpunkt, den Prometheus periodisch liest. Vorteil: Sie sehen sofort, wenn ein Service aufhört zu antworten.
Metriken in der Anwendung¶
# Prometheus — Metriken und Monitoring für Microservices
scrape_configs:
- job_name: 'user-api'
scrape_interval: 15s
static_configs:
- targets: ['user-api:8080']
# In a Java application (Micrometer)
Counter requestCounter = Counter.builder("api.requests")
.tag("endpoint", "/users")
.tag("method", "GET")
.register(meterRegistry);
PromQL¶
Eine Abfragesprache für Metriken. rate(http_requests_total[5m]) — Request-Rate der letzten 5 Minuten. histogram_quantile(0.95, ...) — 95. Perzentil der Latenz. Mächtig, aber mit Lernkurve.
Grafana-Dashboards¶
Grafana visualisiert Prometheus-Daten. Community-Dashboards für Node.js, JVM, Docker, Nginx. Alerting über Alertmanager — Slack, E-Mail, PagerDuty.
Prometheus vs. Graphite/InfluxDB¶
Prometheus: Pull-Modell, PromQL, Service Discovery, für Container konzipiert. Graphite: Push-Modell, älter, stabil. InfluxDB: Push, SQL-ähnliche Abfrage, besser für IoT-Zeitreihen. Für Microservices führt Prometheus klar.
Metriken sind die Grundlage von SRE¶
Logs sagen Ihnen, was passiert ist. Metriken sagen Ihnen, wie sich das System verhält. Prometheus + Grafana = der Standard für das Monitoring cloud-nativer Anwendungen.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns