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.
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ä.
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
- Käyttöliittymän observability: mitä ja miksi
- OpenTelemetry-tracet selaimesta
- Todellisten käyttäjien seuranta ja Web Vitals
- Käyttöliittymän ja taustan tracejen yhdistäminen