Zum Inhalt springen

Observability richtig aufbauen

Logs, Metriken und Traces so verbinden, dass Teams Fehler schneller verstehen und nicht nur weitere Dashboards erzeugen.

Transparenter Würfel als Symbol für eine performante Shopware-Architektur
Artikelinhalt
  1. 01 Observability ist mehr als Monitoring
  2. 02 Mit Nutzer- und Geschäftsproblemen starten
  3. 03 Metriken für Trends und Schwellen
  4. 04 Strukturierte Logs mit Kontext
  5. 05 Traces für verteilte Abläufe
  6. 06 Service Level Objectives und sinnvolle Alerts
  7. 07 Dashboards nach Entscheidungen gestalten
  8. 08 Kosten und Datenmenge kontrollieren
  9. 09 Schrittweise Einführung
  10. 10 Fazit
Technische Illustration verteilter Systeme mit Metriken, Logs und Traces zur Visualisierung moderner Observability.

Observability ist mehr als Monitoring

Monitoring beantwortet bekannte Fragen: Ist der Dienst erreichbar? Wie hoch ist die CPU-Auslastung? Observability soll zusätzlich helfen, unbekannte Fehlerzustände aus den vorhandenen Signalen zu verstehen. Das ist besonders wichtig in verteilten Systemen, in denen ein Benutzerrequest mehrere Dienste, Queues und Datenbanken durchläuft.

Metriken, Logs und Traces gelten als zentrale Signale. Ihr Wert entsteht jedoch erst durch gemeinsamen Kontext. Zehn Werkzeuge ohne konsistente IDs liefern weniger Erkenntnis als ein kleiner Stack, der denselben Request durch alle Komponenten verfolgen kann.

Mit Nutzer- und Geschäftsproblemen starten

Ein Observability-Projekt sollte nicht mit der Frage beginnen, welche Daten technisch verfügbar sind. Zuerst werden kritische Nutzerabläufe definiert: Anmeldung, Produktsuche, Checkout, Zahlung, Datenimport oder API-Aufruf. Für jeden Ablauf wird festgelegt, was Erfolg bedeutet und welche Fehler sichtbar sein müssen.

Metriken eignen sich für aggregierte Zeitreihen. Antwortzeiten, Fehlerraten, Durchsatz und Sättigung zeigen, ob sich ein System verändert. Gute Labels ermöglichen Segmentierung, ohne unkontrollierte Kardinalität zu erzeugen.

  • Technische Metriken mit fachlichen Ergebnissen verbinden.
  • Hohe Kardinalität wie Benutzer- oder Request-IDs vermeiden.
  • Histogramme für Latenzverteilungen statt nur Mittelwerte verwenden.
  • Queue-Alter zusätzlich zur Queue-Länge messen.
  • Messwerte pro Version und Umgebung unterscheiden.

Strukturierte Logs mit Kontext

Logs sollten maschinenlesbar sein und konsistente Felder verwenden. Freier Text bleibt für Menschen hilfreich, aber Request-ID, Service, Version, Umgebung und Fehlercode gehören in strukturierte Attribute. Sensible Daten dürfen nicht versehentlich in Logs gelangen.

{
  "level": "error",
  "service": "checkout-api",
  "version": "2026.08.3",
  "requestId": "req_41af8d",
  "orderId": "ord_10241",
  "errorCode": "PAYMENT_TIMEOUT",
  "durationMs": 1820
}

Traces für verteilte Abläufe

Traces verbinden einzelne Spans zu einem Requestpfad. Dadurch wird sichtbar, ob Latenz in der Anwendung, einer Datenbank, einer Queue oder einem externen Dienst entsteht. Sampling muss so gestaltet sein, dass seltene Fehler nicht vollständig verloren gehen.

Nicht jeder interne Funktionsaufruf benötigt einen Span. Sinnvoll sind Systemgrenzen, Datenbankoperationen, externe Requests, Queue-Verarbeitung und fachlich relevante Schritte.

Service Level Objectives und sinnvolle Alerts

Alerts sollten eine notwendige Handlung auslösen. Eine kurzfristig hohe CPU-Auslastung ist nicht automatisch ein Problem, wenn Nutzer keine Beeinträchtigung spüren. Service Level Objectives richten den Blick auf Zuverlässigkeit aus Nutzersicht.

SignalSchlechter AlertBesserer Alert
LatenzCPU über 80 ProzentCheckout-p95 über Ziel bei relevantem Traffic
FehlerEin einzelner 500erFehlerrate über Budget im Zeitfenster
QueueMehr als 100 NachrichtenÄlteste Nachricht überschreitet Verarbeitungsziel

Dashboards nach Entscheidungen gestalten

Ein Dashboard sollte eine konkrete Frage beantworten. Ein Betriebsdashboard zeigt Systemzustand und aktuelle Vorfälle. Ein Produktdashboard zeigt fachliche Ergebnisse. Ein Analyse-Dashboard unterstützt Ursachenforschung. Werden alle Informationen auf eine Seite gepackt, verliert das Team den Fokus.

Kosten und Datenmenge kontrollieren

Observability-Daten können schnell wachsen. Aufbewahrung, Sampling und Indexierung benötigen deshalb eine Strategie. Debug-Logs müssen nicht dauerhaft gespeichert werden. Traces können dynamisch nach Fehlern oder hoher Latenz ausgewählt werden. Wichtige Sicherheits- und Auditdaten haben andere Anforderungen als technische Debugdaten.

Schrittweise Einführung

  1. Einen kritischen Nutzerablauf auswählen.
  2. Gemeinsame Request- und Trace-IDs einführen.
  3. Wenige belastbare Metriken und Fehlercodes definieren.
  4. Alerts mit klarer Reaktion formulieren.
  5. Während echter Vorfälle prüfen, welche Informationen fehlen.
  6. Standards auf weitere Dienste übertragen.

Fazit

Observability entsteht nicht durch möglichst viele Daten, sondern durch verbundenen Kontext und klare Fragen. Metriken zeigen Veränderungen, Logs erklären Ereignisse und Traces verbinden verteilte Abläufe. Wenn Alerts an Nutzerwirkung gekoppelt sind, wird Beobachtbarkeit zu einem praktischen Werkzeug für stabilen Betrieb.

Lassen Sie uns etwas Großes bauen.

Ob Idee, Herausforderung oder konkretes Projekt – wir freuen uns auf das Gespräch mit Ihnen.

Kontakt aufnehmen