Skip to Content

Metriken

Für eine umfassende und skalierbare Überwachungslösung, bietet die Kombination von Prometheus und Grafana erweiterte Möglichkeiten zur Analyse und Visualisierung von Laufzeitdaten. Diese Integration ermöglicht es, Zeitreihendaten effizient zu erfassen, komplexe Abfragen durchzuführen, Alarme zu definieren und benutzerdefinierte Dashboards zu erstellen. Im Gegensatz zur einfachen Speicherung in einem In-Memory-Datenspeicher wie Redis, bietet dieses Setup eine robustere Verwaltung großer Datenmengen und eine flexible Anpassung an unterschiedliche Monitoring-Anforderungen.

Konfiguration

Docker Compose einrichten

Die Engine, in Kombination mit der Monitoring-Extension, benötigt die folgenden Umgebungsvariablen:

environment: - prometheusExtension__exposeEndpoint=true - prometheusExtension__port=8001
  • prometheusExtension__exposeEndpoint legt fest, ob die Extension beim Start der Engine geladen werden soll
  • prometheusExtension__port Definiert den Port unter welchem die Extension ihre GET /metrics HTTP Schnittstelle bereitstellt

Des Weiteren müssen zwei zusätzliche Container hinzugefügt werden: Prometheus und Grafana.

# docker-compose.yaml # Prometheus Container prometheus: image: prom/prometheus:latest volumes: - ./.processcube/prometheus/config.yaml:/etc/prometheus/prometheus.yml ports: - 9090:9090 # Grafana Container grafana: image: grafana/grafana:latest ports: - 3000:3000

Die Prometheus-Konfigurationsdatei sollte folgendermaßen aussehen:

# config.yaml global: scrape_interval: 15s scrape_configs: - job_name: 'processcube' static_configs: - targets: ['engine:8001']

Nutzung

Prometheus

Die Prometheus-Oberfläche ist im Browser unter http://localhost:9090  erreichbar. Hier können Abfragen definiert und Alarme konfiguriert werden.

Um die verfügbaren Daten einzusehen, kann ein curl-Befehl an den Prometheus-Server gesendet werden:

curl http://localhost:9090/api/v1/label/__name__/values

Die Antwort sieht ungefähr so aus:

{ "status": "success", "data": [ "flownode_duration_in_ms", "flownode_duration_in_ms_count", "flownode_duration_in_ms_sum", "flownodes_finished", "process_duration_in_ms", "process_duration_in_ms_count", "process_duration_in_ms_sum", "processes_finished", "processes_running", "scrape_duration_seconds", "scrape_samples_post_metric_relabeling", "scrape_samples_scraped", "scrape_series_added", "up" ] }

Anschließend kann in der Oberfläche beispielsweise die Metrik flownodes_finished abgefragt werden.

Um für diese Abfrage Daten zu erhalten, müssen Prozesse in der Engine durchlaufen werden.

Grafana

Die Grafana-Oberfläche ist im Browser unter http://localhost:3000  erreichbar, die Standard-Login-Daten sind admin:admin.

Zunächst muss Prometheus als Datenquelle hinzugefügt werden, in diesem Fall unter http://localhost:9090 . Anschließend können Dashboards erstellt und spezifische Abfragen, wie beispielsweise flownodes_finished, definiert werden, um die Daten zu visualisieren.

Eine detaillierte Anleitung zur Konfiguration und Nutzung von Grafana ist in den unten verlinkten Ressourcen verfügbar.

Metriken über API Endpunkt auslesen

Über die HTTP Route GET /metrics lassen sich die erfassten Metriken auslesen.

Der Endpunkt ist unter der localhost Adresse erreichbar, für die per Umgebungsvariable ein Port definiert wird.

Wenn beispielsweise der Port prometheusExtension__port=8001 konfiguriert wurde, wäre die Schnittstelle unter folgender Adresse erreichbar:

GET http://localhost:8001/metrics