Strukturiertes Logging und verteiltes Tracing
Machen Sie Ihre Deployments mit strukturierten Logs, Korrelations-IDs und verteiltem Tracing beobachtbar, damit Sie Fehler serviceübergreifend in Ihrer CI/CD-Pipeline debuggen können.
Strukturiertes Logging und verteiltes Tracing ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Die drei Säulen der Observability
Observability beruht auf drei Säulen: Metriken, Logs und Traces.
- Metriken zeigen Ihnen, dass etwas nicht stimmt
- Logs zeigen Ihnen, was passiert ist
- Traces zeigen Ihnen, wo innerhalb des Anfrageablaufs es passiert ist
Die Überwachung von Pipelines beginnt meist mit Metriken; diese Lektion vertieft Logs und Traces.
Warum strukturierte Logs?
Eine einfache Textzeile im Log lässt sich nur schwer abfragen. Ein strukturierter Log ist ein maschinenlesbarer Datensatz, normalerweise im JSON-Format, mit benannten Feldern.
Strukturierte Logs können mit Tools wie Loki, Elasticsearch oder Datadog gefiltert, aggregiert und für Warnungen genutzt werden.
Einfach oder strukturiert
Vergleichen Sie eine unstrukturierte Zeile mit einer strukturierten. In der strukturierten Variante können Sie direkt nach status=500 suchen.
// Unstructured
Deploy failed for service api at 12:01
// Structured (JSON)
{"level":"error","event":"deploy_failed","service":"api","status":500}JSON-Logs ausgeben
Die meisten Sprachen verfügen über einen Logger für strukturierte Daten. Entscheidend ist, ein Objekt statt einer verketteten Zeichenfolge zu loggen.
const log = (level, event, fields) =>
console.log(JSON.stringify({ level, event, ...fields }));
log('info', 'deploy_started', { service: 'api', version: '1.4.2' });Korrelations-IDs
Ein einzelnes Deployment betrifft viele Schritte und Services. Eine Korrelations-ID (oder Trace-ID) ist ein eindeutiger Wert, der jeder Logzeile für eine logische Operation angehängt wird.
Wenn Sie nach dieser ID suchen, können Sie den vollständigen Ablauf über alle Komponenten hinweg rekonstruieren.
- name: Set correlation id
run: echo "TRACE_ID=$(uuidgen)" >> $GITHUB_ENVLog-Level
Verwenden Sie einheitliche Log-Level, damit Sie die Ausführlichkeit und die Warnungen anpassen können:
debug— detaillierte Diagnoseninfo— normale Ereignissewarn— behebbare Problemeerror— Fehler, die Aufmerksamkeit erfordern
Erstellen Sie Warnungen für error, verwenden Sie Sampling für info und deaktivieren Sie debug in der Produktion.
Was ist verteiltes Tracing?
Verteiltes Tracing verfolgt eine Anfrage, während sie mehrere Services durchläuft. Jeder Schritt ist ein Span; die Spans werden zu einem Trace verknüpft.
Ein Trace zeigt den zeitlichen Ablauf und welcher Span langsam war oder einen Fehler verursacht hat. Das ist bei Microservice-Deployments äußerst hilfreich.
OpenTelemetry
OpenTelemetry (OTel) ist der herstellerneutrale Standard zum Erzeugen von Traces, Metriken und Logs.
Instrumentieren Sie Ihre Anwendung mit dem OTel-SDK und exportieren Sie die Daten an ein Backend wie Jaeger, Tempo oder ein Cloud-APM.
import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('deploy-service');
const span = tracer.startSpan('deploy');
// ... do work
span.end();Die Pipeline selbst tracen
Sie können nicht nur Ihre Anwendung, sondern auch die Pipeline tracen. Tools erzeugen pro Job und Schritt einen Span, sodass Sie sehen können, welche Phase von CI/CD den Engpass bildet.
Dadurch wird ein langer Workflow zu einer visuellen Darstellung, die zeigt, wo Zeit aufgewendet wird.
Zentrale Aggregation
Übertragen Sie Logs und Traces aus jedem Job und Service an eine zentrale Plattform. CI-Runner sind kurzlebig, daher verschwinden auf dem Runner zurückgelassene Logs nach dem Lauf.
Leiten Sie die Daten während des Laufs an einen Log-Sink weiter, damit auch nach dem Verschwinden des Runners noch nachträgliche Analysen möglich sind.
Vom Signal zur Aktion
Observability ist nur nützlich, wenn sie zum Handeln führt. Erstellen Sie Dashboards, die Fehlerraten und langsame Traces sichtbar machen, und binden Sie wichtige Muster in die bereits konfigurierten Warnungen ein.
Das Ziel: Von einer einzelnen Warnung aus direkt zum Trace und zur strukturierten Logzeile springen, die den Fehler erklärt.
Kurzer Test
Testen Sie Ihr Verständnis von Logs und Traces.
Zusammenfassung
Sie haben Ihre Observability mit Logs und Traces vertieft.
- Geben Sie strukturierte (JSON-)Logs mit einheitlichen Log-Leveln aus
- Fügen Sie Korrelations-IDs hinzu, um eine einzelne Operation zu verfolgen
- Verwenden Sie verteiltes Tracing und OpenTelemetry, um langsame oder fehlerhafte Spans zu finden
- Aggregieren Sie alles zentral, bevor kurzlebige Runner verschwinden
Damit ergänzen Sie Metriken und Warnungen zu einer vollständigen Observability der Pipeline.
Häufig gestellte Fragen
Ist die Lektion „Strukturiertes Logging und verteiltes Tracing“ kostenlos?
Ja — der vollständige Text von „Strukturiertes Logging und verteiltes Tracing“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Strukturiertes Logging und verteiltes Tracing“?
Machen Sie Ihre Deployments mit strukturierten Logs, Korrelations-IDs und verteiltem Tracing beobachtbar, damit Sie Fehler serviceübergreifend in Ihrer CI/CD-Pipeline debuggen können. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Strukturiertes Logging und verteiltes Tracing“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Strategien für das Pipeline-Monitoring
- Integration externer Dienste
- Benachrichtigungen und Alerts einrichten
- Strukturiertes Logging und verteiltes Tracing