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ä.
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_ENVLokitasot
Käyttäkää johdonmukaisia lokitasoja, jotta voitte säätää yksityiskohtaisuutta ja hälytyksiä:
debug— yksityiskohtaiset diagnostiikkatiedotinfo— normaalit tapahtumatwarn— käsiteltävissä olevat ongelmaterror— 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.
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
- Putkien valvontastrategiat
- Integrointi ulkoisiin palveluihin
- Ilmoitusten ja hälytysten määrittäminen
- Rakenteinen lokitus ja hajautettu jäljitys