0Pricing
React Academy · Lezione

Monitoraggio degli utenti reali e Web Vitals

Raccolga LCP, FID, CLS e metriche prestazionali personalizzate come metriche OTel usando la libreria web-vitals.

Monitoraggio degli utenti reali e Web Vitals è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

La libreria web-vitals

Il pacchetto npm web-vitals di Google fornisce una semplice API per misurare i Core Web Vitals nei browser degli utenti reali. Lo installi con npm install web-vitals e importi i callback delle singole metriche: onLCP, onFID (deprecato), onCLS, onFCP, onTTFB e il moderno onINP per Interaction to Next Paint.

Callback delle metriche e oggetti metrici

Ogni callback (onLCP, onCLS, onINP ecc.) riceve un oggetto metrica contenente: name ('LCP'), value (millisecondi o un punteggio senza unità), rating ('good', 'needs-improvement', 'poor') e id (un identificatore univoco per la deduplicazione). Il callback viene eseguito quando il valore della metrica è definitivo.

Invio dei Web Vitals a un endpoint di analisi

Utilizzi l'API Navigator.sendBeacon o fetch per inviare le metriche al Suo endpoint di analisi. sendBeacon è preferibile perché continua a funzionare anche dopo lo scaricamento della pagina, un aspetto fondamentale per metriche come CLS, che diventano definitive quando la pagina viene nascosta. Quando possibile, raggruppi tutti i report delle metriche in un unico beacon.

Invio dei Web Vitals come metriche OTel

Per integrare i Web Vitals in OpenTelemetry, crei strumenti Gauge per ogni metrica: const lcp = meter.createObservableGauge('web_vitals.lcp'). In ogni callback onLCP, registri il valore con gli attributi pertinenti (percorso della pagina, tipo di dispositivo). Il Suo backend di osservabilità potrà quindi generare avvisi sulle regressioni del P75 di LCP.

Marcatori di prestazioni React personalizzati

Per misurare le prestazioni specifiche di React che i Web Vitals non rilevano, utilizzi la User Timing API: performance.mark('render-start') prima del rendering, performance.mark('render-end') dopo, quindi performance.measure('component-render', 'render-start', 'render-end'). Queste misurazioni vengono visualizzate nella scheda Performance di Chrome DevTools.

API React Profiler

Il componente React Profiler avvolge un sottoalbero e chiama il callback onRender con i dati temporali: id (ID del Profiler), phase ('mount' o 'update'), actualDuration (tempo di rendering), baseDuration (tempo di rendering stimato senza memoizzazione). Utilizzi questa funzionalità in fase di sviluppo per identificare i componenti lenti.

Tracciamento degli errori come span OTel

Gli errori non gestiti e i rifiuti di Promise possono essere acquisiti come span OTel con stato di errore. Configuri listener globali: window.addEventListener('error', handler) e window.addEventListener('unhandledrejection', handler). Crei uno span, imposti span.setStatus({ code: SpanStatusCode.ERROR }), aggiunga il messaggio e lo stack trace dell'errore come attributi, quindi termini lo span.

Integrazione con React Error Boundaries

Le React Error Boundaries intercettano gli errori di rendering nell'albero dei componenti. Nel metodo componentDidCatch, crei uno span OTel che rappresenta l'errore, ne imposti lo stato su ERROR, associ error.message e componentStack come attributi e chiami span.end(). In questo modo gli errori di rendering di React vengono inseriti nella pipeline della Sua traccia distribuita.

Source map per la risoluzione degli stack trace

Il JavaScript di produzione minificato produce stack trace illeggibili come "a.b at bundle.min.js:1:84721". Carichi le source map su Sentry, Datadog o nella Sua pipeline OTel durante il processo di build CI/CD, così gli stack trace grezzi vengono automaticamente risolti nei nomi dei file TypeScript originali e nei relativi numeri di riga.

Campionamento delle sessioni RUM

L'invio dei dati completi delle tracce per ogni sessione è costoso. Implementi il campionamento delle sessioni: assegni casualmente un flag sessionSampled al primo caricamento della pagina e lo memorizzi in sessionStorage. Inizializzi l'SDK OTel e invii le tracce solo per le sessioni campionate (ad esempio, il 10%). Campioni sempre al 100% le sessioni con errori.

Avvisi sulle regressioni dei Web Vitals

I Web Vitals riportati come metriche OTel consentono di configurare avvisi basati sugli SLO: se il P75 di LCP supera 2,5 secondi in oltre il 5% delle sessioni nell'intervallo di un'ora, generi un avviso. In questo modo i team di sviluppo ricevono segnali utili direttamente correlati all'esperienza dell'utente, anziché alle sole metriche dell'infrastruttura backend.

Callback onLCP dei Web Vitals

Quando viene eseguito il callback onLCP della libreria web-vitals?

Riepilogo della lezione

La libreria web-vitals fornisce semplici callback per misurare LCP, INP, CLS, FCP e TTFB nei browser degli utenti reali. Riporti queste metriche come metriche OTel per configurare avvisi basati sugli SLO, acquisisca gli errori tramite listener globali e React Error Boundaries come span OTel e carichi le source map per risolvere gli stack trace minificati. Campioni le sessioni per gestire il volume dei dati mantenendo una copertura del 100% degli errori.

Domande Frequenti

La lezione «Monitoraggio degli utenti reali e Web Vitals» è gratuita?

Sì — il testo completo di «Monitoraggio degli utenti reali e Web Vitals» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Monitoraggio degli utenti reali e Web Vitals»?

Raccolga LCP, FID, CLS e metriche prestazionali personalizzate come metriche OTel usando la libreria web-vitals. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Monitoraggio degli utenti reali e Web Vitals»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Osservabilità frontend: cosa e perché
  2. Trace OpenTelemetry dal browser
  3. Monitoraggio degli utenti reali e Web Vitals
  4. Correlazione delle trace frontend e backend
← Torna a React Academy