Strukturert logging og distribuert sporing
Gjør utrullingene Deres observerbare med strukturerte logger, korrelasjons-ID-er og distribuert sporing, slik at De kan feilsøke feil på tvers av tjenester i CI/CD-pipelinen.
Strukturert logging og distribuert sporing er en gratis leksjon i CI/CD med GitHub Actions og DevOps-pipelines på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i CI/CD med GitHub Actions og DevOps-pipelines, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i CI/CD med GitHub Actions og DevOps-pipelines inneholder totalt 4 leksjoner.
De tre pilarene i observerbarhet
Observerbarhet bygger på tre pilarer: metrikker, logger og traces.
- Metrikker forteller at noe er galt
- Logger forteller hva som skjedde
- Traces forteller hvor i en forespørselsflyt det skjedde
Overvåking av pipelines starter vanligvis med metrikker; denne leksjonen går dypere inn i logger og traces.
Hvorfor strukturert logging
En logglinje i ren tekst er vanskelig å spørre mot. En strukturert logg er en maskinlesbar post, vanligvis i JSON, med navngitte felt.
Strukturerte logger kan filtreres, aggregeres og brukes til varsler av verktøy som Loki, Elasticsearch eller Datadog.
Uformatert kontra strukturert
Sammenlign en ustrukturert linje med en strukturert. Den strukturerte versjonen gjør det mulig å spørre direkte etter status=500.
// Unstructured
Deploy failed for service api at 12:01
// Structured (JSON)
{"level":"error","event":"deploy_failed","service":"api","status":500}Generere JSON-logger
De fleste språk har en strukturert logger. Hovedideen er å logge et objekt i stedet for en sammenkjedet streng.
const log = (level, event, fields) =>
console.log(JSON.stringify({ level, event, ...fields }));
log('info', 'deploy_started', { service: 'api', version: '1.4.2' });Korrelasjons-ID-er
Én utrulling berører mange trinn og tjenester. En korrelasjons-ID (eller trace-ID) er en unik verdi som knyttes til hver logglinje for én logisk operasjon.
Ved å søke etter denne ID-en rekonstrueres hele historien på tvers av komponenter.
- name: Set correlation id
run: echo "TRACE_ID=$(uuidgen)" >> $GITHUB_ENVLoggnivåer
Bruk konsekvente loggnivåer slik at detaljnivå og varsling kan justeres:
debug— detaljerte diagnoserapporterinfo— normale hendelserwarn— problemer som kan håndtereserror— feil som krever oppmerksomhet
Send varsler ved error, ta stikkprøver av info, og la debug være deaktivert i produksjon.
Hva er distribuert tracing
Distribuert tracing følger en forespørsel mens den går gjennom flere tjenester. Hvert trinn er en span; spans kobles sammen til en trace.
En trace viser tidslinjen og hvilken span som var treg eller feilet, noe som er svært nyttig i mikrotjenesteutrullinger.
OpenTelemetry
OpenTelemetry (OTel) er den leverandørnøytrale standarden for å generere traces, metrikker og logger.
Instrumenter appen med OTel-SDK-en og eksporter til en backend som Jaeger, Tempo eller en skybasert APM.
import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('deploy-service');
const span = tracer.startSpan('deploy');
// ... do work
span.end();Tracing av selve pipelinen
Det er mulig å trace ikke bare appen, men også pipelinen. Verktøy oppretter én span per jobb og trinn, slik at De kan se hvilket stadium i CI/CD som er flaskehalsen.
Dette gjør en lang arbeidsflyt om til en visuell foss som viser hvor tiden brukes.
Sentralisert aggregering
Send logger og traces fra alle jobber og tjenester til en sentral plattform. CI-runnere er kortlivede, så logger som blir liggende på runneren, forsvinner etter kjøringen.
Videresend dem til et loggmottak mens kjøringen pågår, slik at det er mulig å gjennomføre etteranalyser etter at runneren er borte.
Fra signal til handling
Observerbarhet er bare nyttig hvis den fører til handling. Bygg dashbord som viser feilrater og trege traces, og koble kritiske mønstre til varslene som allerede er konfigurert.
Målet er at De fra ett enkelt varsel skal kunne gå rett til tracen og den strukturerte logglinjen som forklarer det.
Kort sjekk
Test forståelsen av logger og traces.
Oppsummering
De har fordypet forståelsen av observerbarhet med logger og traces.
- Generer strukturerte logger (JSON) med konsekvente nivåer
- Knytt korrelasjons-ID-er til operasjoner for å følge én enkelt operasjon
- Bruk distribuert tracing og OpenTelemetry for å finne trege eller feilende spans
- Samle alt sentralt før kortlivede runnere forsvinner
Dette utfyller metrikker og varsler og gir full observerbarhet i pipelinen.
Lær deg CI/CD med GitHub Actions og DevOps-pipelines med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Strukturert logging og distribuert sporing» gratis?
Ja – hele teksten i «Strukturert logging og distribuert sporing» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av CI/CD med GitHub Actions og DevOps-pipelines-kurset, kan du oppgradere til CoddyKit PRO. Kurset i CI/CD med GitHub Actions og DevOps-pipelines inneholder totalt 4 leksjoner.
Hva lærer jeg i «Strukturert logging og distribuert sporing»?
Gjør utrullingene Deres observerbare med strukturerte logger, korrelasjons-ID-er og distribuert sporing, slik at De kan feilsøke feil på tvers av tjenester i CI/CD-pipelinen. Du øver på CI/CD med GitHub Actions og DevOps-pipelines med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med CI/CD med GitHub Actions og DevOps-pipelines?
Ingen tidligere erfaring er nødvendig. CI/CD med GitHub Actions og DevOps-pipelines på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Strukturert logging og distribuert sporing»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne CI/CD med GitHub Actions og DevOps-pipelines-leksjonen?
Ja. Alle CI/CD med GitHub Actions og DevOps-pipelines-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Strategier for pipelineovervåking
- Integrasjon med eksterne tjenester
- Konfigurere varsler og notifikasjoner
- Strukturert logging og distribuert sporing