Questo documento descrive come aggiungere codice di osservabilità all'applicazione utilizzando OpenTelemetry. OpenTelemetry fornisce librerie di instrumentazione che generano dati di telemetria per i framework più diffusi. Puoi aumentare la telemetria generata dalla libreria aggiungendo una strumentazione personalizzata che misuri il comportamento specifico dell'applicazione.
I principi e i concetti descritti in questo documento possono essere applicati alle app scritte in tutte le lingue supportate da OpenTelemetry. Per saperne di più sull'instrumentazione, consulta i seguenti documenti:
Il codice campione, che è la stessa app Go descritta in Esempio di strumentazione Go, è disponibile su GitHub. Per visualizzare l'esempio completo, seleziona il logo GitHub nella barra degli strumenti dell'esempio.
Prima di iniziare
Abilita le API Cloud Logging, Cloud Monitoring e Cloud Trace.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Creare tracce personalizzate
Per generare tracce personalizzate dalla tua applicazione, aggiungi il codice di strumentazione che crea intervalli OpenTelemetry. In OpenTelemetry, gli span sono i componenti di base delle tracce.
Per creare uno span:
Modifica l'app per acquisire un
TracerOpenTelemetry. In OpenTelemetry, un tracer è un creatore di span. Puoi acquisire un tracer come mostrato nel codice seguente:Il nome del tracer, rappresentato da
scopeName, identifica l'ambito di strumentazione delle tracce generate.Utilizza l'istanza
tracerper creare gli intervalli. Nel seguente esempio di codice, la funzionecomputeSubrequestsgenera uno span ogni volta che viene chiamata:Nello esempio di codice precedente, lo span generato dalla funzione
computeSubrequestsrappresenta il lavoro svolto dall'intera funzione. Questo perché il primo passaggio della funzione consiste nell'avviare un nuovo intervallo utilizzandotracer.Starte la parola chiavedeferprima dispan.End()garantisce che l'intervallo venga terminato subito prima dell'uscita della funzione.
Creare metriche personalizzate
Per generare metriche dalla tua applicazione, aggiungi un codice di instrumentazione che registri le misurazioni effettuate durante l'esecuzione dell'app.
Per creare le metriche:
Modifica l'app per acquisire un
MeterOpenTelemetry. In OpenTelemetry, un meter fornisce l'accesso agli strumenti di metrica per la registrazione delle metriche. Puoi acquisire un contatore come mostrato nel codice seguente:Il nome del contatore, rappresentato da
scopeName, identifica l'ambito di strumentazione delle metriche generate.Utilizza l'istanza
meterper creare strumenti in grado di registrare le metriche. Ad esempio, nel seguente codice utilizziamometerper creare un istogramma OpenTelemetry:Il codice precedente genera un istogramma denominato
sleepHistogram.Utilizza l'istanza
sleepHistogramper registrare l'ora di sonno, che viene determinata quando viene richiamata la funzionerandomSleep:Le metriche registrate da questi strumenti vengono esportate dalla tua applicazione in base alla configurazione dell'esportatore OpenTelemetry.
Passaggi successivi
- Correlare metriche e tracce utilizzando gli esemplari
- OpenTelemetry
- Instrumentazione OpenTelemetry
- Modello di dati delle metriche OpenTelemetry