Zum Inhalt springen

Metriken an Observability übertragen

Zuletzt aktualisiert am

Diese Anleitung erklärt, wie Sie das Scrapen von Anwendungsmetriken einrichten, den Export über Grafana Alloy konfigurieren und eine sichere Übertragung an Ihre STACKIT Observability-Instanz mittels Prometheus Remote Write-Protokoll gewährleisten.

Bevor Sie Metriken an Ihre STACKIT Observability-Instanz übertragen können, stellen Sie sicher, dass Sie Folgendes bereitstehen haben:

  • Technische Zugangsdaten: Sie benötigen einen technischen <USERNAME> und ein <PASSWORD> für Ihre spezifische Instanz. Wenn Sie diese noch nicht erstellt haben, folgen Sie den Anweisungen in unserer Authentifizierungsübersicht.
  • Metrik-Quelle: Sie müssen eine Anwendung oder einen Dienst ausführen, der Metriken bereitstellt (z. B. über einen /metrics-Endpunkt im Standard-Prometheus-Format).

Metriken folgen einem bestimmten Pfad von Ihrer Anwendung zum STACKIT-Backend. Wie im folgenden Diagramm dargestellt, konzentriert sich diese Anleitung auf die Verwendung von Grafana Alloy als empfohlenen Agenten zum Sammeln und Weiterleiten Ihrer Daten. Die STACKIT-Architektur ist jedoch hochflexibel; Sie können alternativ auch andere OpenTelemetry-Tools verwenden, wie den nativen Prometheus-Agenten oder Telegraf, um Metriken an Ihr STACKIT Observability-Backend zu übertragen.

Diagram
  • Anwendung: Ihre Anwendung stellt einen lokalen Endpunkt bereit (in der Regel /metrics), der den aktuellen Status ihrer internen Counter und Gauges enthält.
  • Grafana Alloy (Agent): Der lokale Agent „scrapt“ (ruft ab) diesen Endpunkt regelmäßig, um die neuesten Metrikdaten zu erfassen.
  • STACKIT Observability Endpunkt (Prometheus): Grafana Alloy überträgt die gesammelten Metriken sicher in Bündeln (Batches) an den spezifischen Remote Write-Ingestion-Endpunkt in Ihrer STACKIT-Instanz, wo sie gespeichert und für Abfragen verfügbar gemacht werden.

Grafana Alloy ist die empfohlene Methode zum Sammeln von Metriken und zur Verwaltung der sicheren Authentifizierung. Dieses Beispiel zeigt eine einfache Konfiguration (config.alloy), die eine lokale Anwendung abfragt und die Daten sicher an den STACKIT-Endpunkt weiterleitet.

config.alloy
// 1. Scrapen von Metriken von einem lokalen Ziel
prometheus.scrape "local_app" {
targets = [
{"__address__" = "localhost:8080"}, // Ersetzen Sie dies durch den Metrik-Port Ihrer Anwendung
]
// Leitet die gescrapten Metriken an den darunter liegenden remote_write-Block weiter
forward_to = [prometheus.remote_write.stackit_instance.receiver]
scrape_interval = "60s"
}
// 2. Metriken an STACKIT Observability übertragen
prometheus.remote_write "stackit_instance" {
endpoint {
# WICHTIG: Kopieren Sie die vollständige "Metrics Remote Write"-URL aus dem STACKIT Portal
url = "<METRICS_ENDPOINT_URL>"
# Erforderlich für Basic Authentication
basic_auth {
username = "<USERNAME>"
password = "<PASSWORD>"
}
}
// Best Practice: Labels hinzufügen, um Metriken verschiedener Server zu unterscheiden
external_labels = {
env = "production",
cluster = "eu01"
}
}

Verwenden Sie diese Docker Compose-Datei, um Grafana Alloy in einem Docker-Container auszuführen. Sie mountet Ihre lokale config.alloy-Datei in den Container und startet den Agenten. Die Alloy-Benutzeroberfläche und -API sind über Port 12345 erreichbar.

docker-compose.yaml
services:
alloy:
image: grafana/alloy:latest
container_name: alloy
command:
- run
- --server.http.listen-addr=0.0.0.0:12345
- --storage.path=/var/lib/alloy/data
- /etc/alloy/config.alloy
ports:
- "12345:12345"
volumes:
- ./config.alloy:/etc/alloy/config.alloy:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- alloy-data:/var/lib/alloy/data
restart: unless-stopped
volumes:
alloy-data:

Sobald alles läuft, öffnen Sie Grafana in Ihrer STACKIT Observability-Instanz und gehen Sie zu Explore. Wählen Sie Ihre Metrics-Datenquelle aus und führen Sie eine Abfrage aus (zum Beispiel ‘up’), um zu überprüfen, ob Ihre Daten erfolgreich ankommen.