Strukturerad loggning och distribuerad spårning
Gör Era utrullningar observerbara med strukturerade loggar, korrelations-ID:n och distribuerad spårning så att Ni kan felsöka fel över tjänster i Er CI/CD-pipeline.
Strukturerad loggning och distribuerad spårning är en gratis lektion i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för CI/CD med GitHub Actions och DevOps-pipelines, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i CI/CD med GitHub Actions och DevOps-pipelines innehåller totalt 4 lektioner.
Observerbarhetens tre pelare
Observerbarhet bygger på tre pelare: mätvärden, loggar och spår.
- Mätvärden visar att något är fel
- Loggar visar vad som hände
- Spår visar var i ett requestflöde det hände
Pipelineövervakning börjar vanligtvis med mätvärden; den här lektionen går djupare in på loggar och spår.
Varför strukturerad loggning
En loggrad i klartext är svår att söka i. En strukturerad logg är en maskinläsbar post, vanligtvis i JSON, med namngivna fält.
Strukturerade loggar kan filtreras, aggregeras och användas för larm av verktyg som Loki, Elasticsearch eller Datadog.
Vanlig kontra strukturerad
Jämför en ostrukturerad rad med en strukturerad. Med den strukturerade versionen kan ni söka efter status=500 direkt.
// Unstructured
Deploy failed for service api at 12:01
// Structured (JSON)
{"level":"error","event":"deploy_failed","service":"api","status":500}Skriva JSON-loggar
De flesta språk har stöd för strukturerad loggning. Grundtanken är att logga ett objekt, inte en ihopslagen sträng.
const log = (level, event, fields) =>
console.log(JSON.stringify({ level, event, ...fields }));
log('info', 'deploy_started', { service: 'api', version: '1.4.2' });Korrelations-ID:n
En enda driftsättning berör många steg och tjänster. Ett korrelations-ID (eller ett trace-ID) är ett unikt värde som kopplas till varje loggrad för en logisk operation.
Genom att söka på ID:t kan ni återskapa hela förloppet över alla komponenter.
- name: Set correlation id
run: echo "TRACE_ID=$(uuidgen)" >> $GITHUB_ENVLoggnivåer
Använd konsekventa loggnivåer så att ni kan finjustera detaljnivå och larm:
debug— detaljerad diagnostikinfo— normala händelserwarn— problem som kan hanteraserror— fel som kräver åtgärd
Skapa larm för error, sampla info och håll debug avstängt i produktion.
Vad är distribuerad spårning
Distribuerad spårning följer en request när den passerar genom flera tjänster. Varje steg är ett span; spans länkas samman till ett trace.
Ett trace visar tidslinjen och vilket span som var långsamt eller gav ett fel, vilket är ovärderligt i mikrotjänstdriftsättningar.
OpenTelemetry
OpenTelemetry (OTel) är den leverantörsneutrala standarden för att generera spår, mätvärden och loggar.
Instrumentera er app med OTel SDK och exportera till en backend som Jaeger, Tempo eller en molnbaserad APM.
import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('deploy-service');
const span = tracer.startSpan('deploy');
// ... do work
span.end();Spåra själva pipelinen
Ni kan spåra inte bara er app utan även pipelinen. Verktyg skapar ett span per jobb och steg, så att ni kan se vilket CI/CD-steg som är flaskhalsen.
Detta omvandlar ett långt arbetsflöde till ett visuellt vattenfallsdiagram som visar var tiden används.
Centraliserad aggregering
Skicka loggar och spår från varje jobb och tjänst till en central plattform. CI-runners är kortlivade, så loggar som lämnas kvar på runnern försvinner när körningen är klar.
Vidarebefordra loggarna till en loggsink under körningen, så att efteranalyser är möjliga när runnern har försvunnit.
Från signal till åtgärd
Observerbarhet är bara användbar om den leder till åtgärder. Bygg dashboards som visar felfrekvenser och långsamma spår, och koppla kritiska mönster till de larm ni redan har konfigurerat.
Målet är att ni från ett enda larm ska kunna gå direkt till det spår och den strukturerade loggrad som förklarar det.
Snabbkontroll
Testa er förståelse av loggar och spår.
Sammanfattning
Ni har fördjupat er observerbarhet med loggar och spår.
- Skriv strukturerade JSON-loggar med konsekventa nivåer
- Koppla korrelations-ID:n till operationer för att följa dem
- Använd distribuerad spårning och OpenTelemetry för att hitta långsamma eller felande span
- Aggregera allt centralt innan kortlivade runners försvinner
Detta kompletterar mätvärden och larm för fullständig pipelineobserverbarhet.
Lär dig CI/CD med GitHub Actions och DevOps-pipelines med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Strukturerad loggning och distribuerad spårning” gratis?
Ja – hela texten till ”Strukturerad loggning och distribuerad spårning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i CI/CD med GitHub Actions och DevOps-pipelines, kan Ni uppgradera till CoddyKit PRO. Kursen i CI/CD med GitHub Actions och DevOps-pipelines innehåller totalt 4 lektioner.
Vad lär jag mig i ”Strukturerad loggning och distribuerad spårning”?
Gör Era utrullningar observerbara med strukturerade loggar, korrelations-ID:n och distribuerad spårning så att Ni kan felsöka fel över tjänster i Er CI/CD-pipeline. Ni övar på CI/CD med GitHub Actions och DevOps-pipelines med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig CI/CD med GitHub Actions och DevOps-pipelines?
Du behöver inga förkunskaper. Utbildningen i CI/CD med GitHub Actions och DevOps-pipelines på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Strukturerad loggning och distribuerad spårning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här CI/CD med GitHub Actions och DevOps-pipelines-lektionen?
Ja. Varje CI/CD med GitHub Actions och DevOps-pipelines-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Strategier för pipelineövervakning
- Integration med externa tjänster
- Konfigurera aviseringar och larm
- Strukturerad loggning och distribuerad spårning