CI/CD GitHub Actionsilla ja DevOps-putket · Oppitunti

Rakenteinen lokitus ja hajautettu jäljitys

Tehkää käyttöönotot havainnoitaviksi rakenteisilla lokeilla, korrelaatio-ID:illä ja hajautetulla jäljityksellä, jotta voitte selvittää CI/CD-putken palveluiden välisiä virheitä.

Oppitunti 4/413 vaihetta

Rakenteinen lokitus ja hajautettu jäljitys on ilmainen CI/CD GitHub Actionsilla ja DevOps-putket-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu CI/CD GitHub Actionsilla ja DevOps-putket-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. CI/CD GitHub Actionsilla ja DevOps-putket-kurssilla on yhteensä 4 oppituntia.

Havainnoitavuuden kolme pilaria

Havainnoitavuus perustuu kolmeen pilariin: metriikoihin, lokeihin ja traceihin.

  • Metriikat kertovat, että jokin on vialla
  • Lokit kertovat, mitä tapahtui
  • Tracet kertovat, missä kohtaa pyyntöketjua se tapahtui

Pipelinen valvonta alkaa yleensä metriikoista; tässä oppitunnissa syvennytään lokeihin ja traceihin.

Miksi strukturoitu lokitus

Pelkkää tekstiä sisältävää lokiriviä on vaikea kysellä. Strukturoitu loki on koneellisesti luettava tietue, yleensä JSON-muodossa, ja se sisältää nimettyjä kenttiä.

Työkalut, kuten Loki, Elasticsearch ja Datadog, voivat suodattaa, koostaa ja käyttää strukturoituja lokeja hälytyksiin.

Pelkkä teksti verrattuna strukturoituun muotoon

Verratkaa jäsentämätöntä lokiriviä strukturoituun. Strukturoidussa versiossa voitte kysellä suoraan arvoa status=500.

// Unstructured
Deploy failed for service api at 12:01

// Structured (JSON)
{"level":"error","event":"deploy_failed","service":"api","status":500}

JSON-lokien tuottaminen

Useimmissa kielissä on strukturoitu lokittaja. Keskeinen ajatus on kirjata olio, ei yhteen liitettyä merkkijonoa.

const log = (level, event, fields) =>
  console.log(JSON.stringify({ level, event, ...fields }));
log('info', 'deploy_started', { service: 'api', version: '1.4.2' });

Korrelaatiotunnisteet

Yksi käyttöönotto koskettaa monia vaiheita ja palveluita. Korrelaatiotunniste (tai trace-tunniste) on yksilöllinen arvo, joka liitetään yhden loogisen operaation jokaiseen lokiriviin.

Tunnisteen avulla tehtävä haku kokoaa tapahtumaketjun eri komponenttien läpi.

  - name: Set correlation id
    run: echo "TRACE_ID=$(uuidgen)" >> $GITHUB_ENV

Lokitasot

Käyttäkää johdonmukaisia lokitasoja, jotta voitte säätää yksityiskohtaisuutta ja hälytyksiä:

  • debug — yksityiskohtaiset diagnostiikkatiedot
  • info — normaalit tapahtumat
  • warn — käsiteltävissä olevat ongelmat
  • error — huomiota vaativat virheet

Hälyttäkää error-tasosta, ottakaa otos info-tason lokeista ja pitäkää debug poissa tuotannosta.

Mitä hajautettu jäljitys on

Hajautettu jäljitys seuraa pyyntöä sen kulkiessa useiden palveluiden läpi. Jokainen vaihe on span, ja spanit liittyvät toisiinsa muodostaen tracen.

Trace näyttää aikajanan sekä sen, mikä span oli hidas tai tuotti virheen. Tämä on erittäin hyödyllistä mikropalveluympäristöissä.

OpenTelemetry

OpenTelemetry (OTel) on toimittajasta riippumaton standardi tracejen, metriikoiden ja lokien tuottamiseen.

Instrumentoikaa sovellus OTel SDK:lla ja viekää tiedot Jaegerin, Tempon tai pilvipohjaisen APM:n kaltaiseen taustajärjestelmään.

import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('deploy-service');
const span = tracer.startSpan('deploy');
// ... do work
span.end();

Myös pipelinen jäljittäminen

Voitte jäljittää sovelluksen lisäksi myös pipelinen. Työkalut tuottavat yhden spanin jokaista työtä ja vaihetta kohden, joten näette, mikä CI/CD:n vaihe muodostaa pullonkaulan.

Näin pitkä työnkulku muuttuu visuaaliseksi vesiputousnäkymäksi, josta näkee, mihin aika kuluu.

Keskitetty koonti

Siirtäkää jokaisen työn ja palvelun lokit ja tracet keskitetylle alustalle. CI-runnerit ovat lyhytikäisiä, joten runnerille jäävät lokit katoavat suorituksen jälkeen.

Välittäkää tiedot lokien vastaanottajalle suorituksen aikana, jotta jälkianalyysit ovat mahdollisia runnerin poistuttua.

Havainnosta toimintaan

Havainnoitavuudesta on hyötyä vain, jos se johtaa toimintaan. Rakentakaa koontinäyttöjä, jotka tuovat virheprosentit ja hitaat tracet esiin, ja kytkekää kriittiset kuviot jo määrittämiinne hälytyksiin.

Tavoitteena on, että yhdestä hälytyksestä pääsee suoraan sitä selittävään traceen ja strukturoituun lokiriviin.

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte lokit ja tracet.

Kertaus

Syvensitte havainnoitavuutta lokien ja tracejen avulla.

  • Tuottakaa johdonmukaisilla tasoilla strukturoituja (JSON-)lokeja
  • Liittäkää korrelaatiotunnisteet yhden operaation seuraamista varten
  • Käyttäkää hajautettua jäljitystä ja OpenTelemetryä hitaiden tai epäonnistuvien spanien löytämiseen
  • Kootkaa kaikki tiedot keskitetysti ennen kuin lyhytikäiset runnerit katoavat

Tämä täydentää metriikoita ja hälytyksiä ja tarjoaa kattavan näkyvyyden pipelineen.

Aloita maksutta

Opi CI/CD GitHub Actionsilla ja DevOps-putket tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Rakenteinen lokitus ja hajautettu jäljitys” ilmainen?

Kyllä – oppitunnin ”Rakenteinen lokitus ja hajautettu jäljitys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko CI/CD GitHub Actionsilla ja DevOps-putket-kurssin, päivitä CoddyKit PROhon. CI/CD GitHub Actionsilla ja DevOps-putket-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Rakenteinen lokitus ja hajautettu jäljitys”?

Tehkää käyttöönotot havainnoitaviksi rakenteisilla lokeilla, korrelaatio-ID:illä ja hajautetulla jäljityksellä, jotta voitte selvittää CI/CD-putken palveluiden välisiä virheitä. Harjoittelet CI/CD GitHub Actionsilla ja DevOps-putket-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni CI/CD GitHub Actionsilla ja DevOps-putket-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin CI/CD GitHub Actionsilla ja DevOps-putket-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Rakenteinen lokitus ja hajautettu jäljitys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä CI/CD GitHub Actionsilla ja DevOps-putket-oppitunnilla?

Kyllä. Jokainen CI/CD GitHub Actionsilla ja DevOps-putket-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Putkien valvontastrategiat
  2. Integrointi ulkoisiin palveluihin
  3. Ilmoitusten ja hälytysten määrittäminen
  4. Rakenteinen lokitus ja hajautettu jäljitys
← Takaisin: CI/CD GitHub Actionsilla ja DevOps-putket