L'aggiunta di strumentazione OpenTelemetry personalizzata al codice dell'applicazione consente di registrare intervalli di traccia e metriche personalizzati che misurano il comportamento specifico dell'applicazione oltre a ciò che raccolgono le librerie del framework standard. Puoi applicare i concetti di questo documento alle applicazioni scritte in qualsiasi linguaggio supportato da OpenTelemetry. Per informazioni di base, consulta Osservabilità per gli sviluppatori di applicazioni e Scegli un approccio di strumentazione.
Gli esempi in questo documento utilizzano l'applicazione di esempio Go descritta in Esempio di strumentazione Go, disponibile su GitHub.
Prima di iniziare
Abilita le API Cloud Logging, Cloud Monitoring e Cloud Trace, se non sono già abilitate.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin).
Scopri come concedere i ruoli.
Crea tracce personalizzate
Per generare tracce personalizzate dalla tua applicazione, aggiungi il codice di strumentazione che crea intervalli OpenTelemetry. In OpenTelemetry, gli intervalli sono i componenti di base delle tracce.
Per creare un intervallo:
Modifica l'app per acquisire un
TracerOpenTelemetry. In OpenTelemetry, un tracer è un creatore di intervalli. Puoi acquisire un tracciatore come mostrato nel codice seguente. Per visualizzare l'esempio completo, seleziona il logo di GitHub nella barra degli strumenti dell'esempio.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:Nell'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 chespan.End()garantisca che l'intervallo termini subito prima dell'uscita dalla funzione.
Crea metriche personalizzate
Per generare metriche dalla tua applicazione, aggiungi il codice di strumentazione che registra le misurazioni effettuate durante l'esecuzione dell'app.
Per creare le metriche, segui questi passaggi:
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 misuratore come mostrato nel seguente codice:Il nome del meter, 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, il seguente codice utilizzameterper creare un istogramma OpenTelemetry:Il codice precedente genera un istogramma denominato
sleepHistogram.Utilizza l'istanza
sleepHistogramper registrare l'ora del 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.