React Academy · Oppitunti

OpenTelemetry-tracet selaimesta

Ota OTel JavaScript SDK käyttöön Reactissa, luo span-arvoja käyttäjän toimille ja vie ne taustajärjestelmän collectoriin.

Oppitunti 2/413 vaihetta

OpenTelemetry-tracet selaimesta on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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 React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.

OpenTelemetry JavaScript SDK

Selainten OpenTelemetry JavaScript SDK koostuu useista paketeista: @opentelemetry/sdk-trace-web tarjoaa jäljityksen ydintoteutuksen, @opentelemetry/instrumentation-fetch luo automaattisesti spanit kaikille fetch API -kutsuille ja @opentelemetry/exporter-trace-otlp-http lähettää spanit kerääjälle.

TracerProvider: OTel-jäljityksen juuri

TracerProvider on OpenTelemetryn keskitetty määritysobjekti. Se sisältää SpanProcessor-luettelon, joka määrittää valmiiden spanien käsittelyn, sovellusta kuvaavan resurssin (palvelun nimi ja versio) sekä mahdolliset otanta-asetukset.

BatchSpanProcessor: Tehokas vienti

BatchSpanProcessor kerää valmiit spanit muistiin ja vie ne erissä sen sijaan, että jokainen span lähetettäisiin erikseen. Tämä vähentää huomattavasti kerääjälle tehtävien HTTP-pyyntöjen määrää, parantaa selaimen suorituskykyä ja vähentää OTel-kerääjän päätepisteen kuormaa.

OTLPTraceExporter: Lähetys kerääjälle

OTLPTraceExporter lähettää erissä kerätyt spanit OpenTelemetry-yhteensopivalle kerääjälle HTTP:n kautta JSON- tai protobuf-muodossa. Määritätte kerääjän URL-osoitteen, esimerkiksi oman OTel Collector -välityspalvelimen päätepisteen, ja vientikomponentti huolehtii sarjallistamisesta ja uudelleenyrityksistä automaattisesti.

Mikä on Span

Span edustaa yhtä työyksikköä jäljityksen sisällä: komponentin mounttausta, API-kutsua tai käyttäjän vuorovaikutusta. Spaneilla on nimi, aloitusaika, lopetusaika, tila (OK tai ERROR) sekä joukko avain–arvo-määritteitä. Toisiinsa liittyvät spanit yhdistetään jaetulla trace ID:llä sekä isäntä–lapsi-suhteilla.

Spanien aloittaminen ja lopettaminen manuaalisesti

Luotte tracerin kutsulla provider.getTracer('react-app') ja aloitatte spanit kutsulla tracer.startSpan('component-mount'). Kun työ on valmis, tallentakaa lopetusaika kutsumalla span.end(). Lopettakaa spanit aina — vuotavat spanit kuluttavat muistia ja tuottavat puutteellisia tietoja havainnoitavuuden taustajärjestelmään.

Määritteiden lisääminen spaneihin

Määritteet rikastavat spaneja asiayhteystiedoilla: span.setAttribute('user.id', userId) tai span.setAttribute('route', location.pathname). Määritteitä voi hakea havainnoitavuuden taustajärjestelmästä, joten voitte tehdä kyselyitä, kuten "näytä kaikki käyttäjän 42 hitaat spanit" tai "näytä kaikki /checkout-reitin virheet".

Automaattinen fetch-instrumentointi

@opentelemetry/instrumentation-fetch korvaa globaalin fetch-funktion automaattisesti ja luo spanin jokaiselle lähtevälle HTTP-pyynnölle. Span tallentaa URL-osoitteen, metodin, HTTP-statuskoodin ja keston ilman muutoksia olemassa oleviin fetch-kutsuihin.

Kontekstin välitys W3C TraceContextin avulla

Kun fetch-instrumentointi luo spanin lähtevää pyyntöä varten, se lisää pyyntöön W3C TraceContextin traceparent-otsakkeen. Vastaanottava backend lukee tämän otsakkeen ja jatkaa samaa tracea, jolloin selaimen ja palvelimen kattava yhtenäinen trace muodostuu.

OTel:n alustaminen React-sovelluksessa

OTel:n alustus on tehtävä ennen yhdenkään komponentin mounttaamista — yleensä sovelluksen käynnistystiedostossa (main.tsx) ennen ReactDOM.createRoot-kutsua. Luokaa provider, rekisteröikää processorit ja exporterit ja kutsukaa provider.register()-metodia, jotta siitä tulee globaali TracerProvider.

Näytteenotto: tracemäärän hallinta

Jokaisen käyttäjän toiminnon tallentaminen paljon liikennettä käsittelevissä sovelluksissa tuottaa valtavan määrän jäljitystietoja. Määrän vähentämiseksi määrittäkää TracerProviderissa TraceIdRatioBased-sampler (esimerkiksi ottamaan 10 % traceista mukaan). Ottakaa ParentBased-samplerin avulla kaikki virheiden tracet aina 100-prosenttisesti mukaan, jotta yksikään virhe ei jää huomaamatta.

OTel:n BatchSpanProcessorin tarkoitus

Miksi selainohjelmissa käytetään BatchSpanProcessoria SimpleSpanProcessorin sijaan?

Oppitunnin yhteenveto

OpenTelemetry JavaScript SDK instrumentoi selaimet TracerProviderin, BatchSpanProcessorin ja OTLPTraceExporterin avulla. Spanit edustavat työyksiköitä, joita rikastetaan attribuuteilla. Fetch-instrumentointi luo API-kutsuille automaattisesti spanit ja lisää W3C TraceContext -otsakkeet, mikä mahdollistaa hajautetun jäljityksen päästä päähän. Alustakaa SDK ajoissa, määrittäkää näytteenotto tarkoituksenmukaisesti ja päättäkää spanit aina, jotta jäljitystiedot pysyvät selkeinä.

Aloita maksutta

Opi React 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
88
Oppitunnit
324

Usein kysytyt kysymykset

Onko oppitunti ”OpenTelemetry-tracet selaimesta” ilmainen?

Kyllä – oppitunnin ”OpenTelemetry-tracet selaimesta” 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 React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”OpenTelemetry-tracet selaimesta”?

Ota OTel JavaScript SDK käyttöön Reactissa, luo span-arvoja käyttäjän toimille ja vie ne taustajärjestelmän collectoriin. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”OpenTelemetry-tracet selaimesta”-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ä React Academy-oppitunnilla?

Kyllä. Jokainen React Academy-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. Käyttöliittymän observability: mitä ja miksi
  2. OpenTelemetry-tracet selaimesta
  3. Todellisten käyttäjien seuranta ja Web Vitals
  4. Käyttöliittymän ja taustan tracejen yhdistäminen
← Takaisin: React Academy