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 misura 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ù sulla strumentazione, 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, fai clic su more_vert Altro, quindi seleziona Visualizza su GitHub.
Prima di iniziare
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
          To enable APIs, you need the Service Usage Admin IAM
          role (roles/serviceusage.serviceUsageAdmin), which
          contains the serviceusage.services.enable permission. Learn how to grant
          roles.
        
Creare tracce personalizzate
Per generare tracce personalizzate dalla tua applicazione, aggiungi un 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 seguente codice:- Il nome del tracer, rappresentato da - scopeName, identifica l'ambito di strumentazione delle tracce generate.
- Utilizza l'istanza - tracerper creare gli span. Nel seguente esempio di codice, la funzione- computeSubrequestsgenera 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 utilizzando- tracer.Starte la parola chiave- deferprima di- span.End()garantisce che l'intervallo venga terminato subito prima dell'uscita dalla funzione.
Creare 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:
- Modifica l'app per acquisire un - MeterOpenTelemetry. In OpenTelemetry, un meter fornisce l'accesso agli strumenti di metrica per registrare le metriche. Puoi acquisire un contatore come mostrato nel seguente codice:- 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 utilizziamo- meterper 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 funzione- randomSleep:- 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