Questo documento introduce l'utilizzo di OpenTelemetry Collector con l'esportatore otlphttp e l'API Telemetry (OTLP), telemetry.googleapis.com, che implementa il protocollo OpenTelemetry OTLP.
La combinazione dell'esportatore otlphttp e dell'API Telemetry ti consente di importare le metriche OTLP in Cloud Monitoring.
L'endpoint OTLP supporta tutti i protocolli OTLP, inclusi
http/proto, http/json e grpc. Per ulteriori informazioni, vedi
Supporto dei protocolli.
Puoi anche inviare le metriche direttamente all'API Telemetry dalle applicazioni che utilizzano gli SDK. Per saperne di più, consulta Utilizzare gli SDK per inviare metriche dalle applicazioni.
Se utilizzi Google Kubernetes Engine, puoi seguire le istruzioni riportate in Managed OpenTelemetry per GKE, anziché eseguire manualmente il deployment e la configurazione di un OpenTelemetry Collector che utilizza l'API Telemetry.
OTLP per le metriche Prometheus funziona solo se utilizzi OpenTelemetry Collector versione 0.140.0 o successive.
Nomi di metriche ed etichette nell'API Telemetry
Questa sezione descrive le convenzioni di denominazione e i requisiti per le metriche inserite in Cloud Monitoring utilizzando l'API Telemetry:
I nomi delle metriche e le chiavi delle etichette non supportano UTF-8 completo.
- I nomi delle metriche che non sono conformi all'espressione regolare
[a-zA-Z][a-zA-Z0-9_:./]*verranno rifiutati. - I DataPoint contenenti attributi (ovvero chiavi di etichetta) che non
rispettano l'espressione regolare
[a-zA-Z_][a-zA-Z0-9_.]*verranno rifiutati.
Per evitare il rifiuto delle metriche per questi motivi, puoi configurare un processore per trasformare i nomi e gli attributi delle metriche utilizzando la funzione
replace_pattern.- I nomi delle metriche che non sono conformi all'espressione regolare
Importante: l'esecuzione di query su nomi di metriche e chiavi di etichette con caratteri speciali diversi dai due punti (
:) e dal trattino basso (_) richiede di racchiuderli tra parentesi graffe ({}) e virgolette ("), in base alla specifica UTF-8 di PromQL. Ad esempio, le seguenti query sono valide:{"my.metric.name"}{"my.metric.name", "label.key.KEY"="value"}
Metriche dell'API Telemetry e Cloud Monitoring
Questa sezione descrive in che modo le metriche inserite utilizzando l'API Telemetry e l'esportatore otlphttp interagiscono con Cloud Monitoring:
Potrebbero verificarsi possibili conflitti tra i tipi di valori delle metriche di tipo
INT64eDOUBLE, in particolare se in precedenza hai inviato la metricatarget_info. Se si verifica questo tipo di conflitto, elimina i descrittori delle metricheINT64. Puoi utilizzare questo script Golang per eliminare tutte le metriche di tipoINT64target_infodall'ambito delle metriche.Se mantieni l'etichetta
lequando esegui query sugli istogrammi esponenziali, potresti ottenere risultati imprevisti. È previsto il funzionamento delle query più tipichehistogram_quantile(.99, sum by (le) (metric)).Le metriche delta potrebbero non essere interrogate correttamente in determinate circostanze, ad esempio delta molto sparsi.
Supporto del protocollo
L'endpoint OTLP supporta tutti i protocolli OTLP, inclusi
http/proto, http/json e grpc. Quando esporti da un
OpenTelemetry Collector, puoi utilizzare uno qualsiasi dei protocolli. Tuttavia, a causa della
mancanza di supporto per l'aggiornamento dinamico dei token nella maggior parte degli esportatori SDK, ti
consigliamo di utilizzare solo l'esportatore gRPC OTLP, non gli esportatori HTTP,
quando esporti direttamente dagli SDK. Per saperne di più, consulta Utilizzare gli SDK per inviare metriche dalle applicazioni.
Fatturazione
La fatturazione delle metriche OTLP viene contabilizzata in base allo SKU "Campioni Prometheus importati", lo stesso utilizzato per le metriche di Google Cloud Managed Service per Prometheus. Per ulteriori informazioni, consulta la pagina Fatturazione.
Limiti e quote
L'importazione delle metriche tramite l'API Telemetry è soggetta ai limiti delle metriche dell'API Telemetry.
Inoltre, si applicano tutte le quote e i limiti standard delle metriche di Cloud Monitoring e Google Cloud Managed Service per Prometheus. Ad esempio, le metriche non possono avere più di 200 etichette.
La quota predefinita per le metriche inserite dall'API Telemetry è di 60.000 richieste al minuto. Con una dimensione massima del batch di 200 punti per richiesta, questa è una quota predefinita effettiva di 200.000 campioni al secondo. Puoi richiedere un aumento della quota.
Passaggi successivi
- Per istruzioni passo passo su come eseguire il deployment e utilizzare OpenTelemetry Collector con l'API Telemetry, consulta Eseguire il deployment e utilizzare il raccoglitore.
- Per informazioni sull'invio di metriche all'API Telemetry da applicazioni che utilizzano SDK, consulta Utilizzare gli SDK per inviare metriche dalle applicazioni.
- Per informazioni sull'utilizzo di un collettore OpenTelemetry e dell'API Telemetry con la strumentazione zero-code OpenTelemetry, consulta Utilizzare la strumentazione zero-code OpenTelemetry per Java.
- Per informazioni sulla migrazione all'esportatore
otlphttpda un altro esportatore, vedi Eseguire la migrazione all'esportatore OTLP. - Per scoprire di più sull'API Telemetry, consulta la panoramica dell'API Telemetry (OTLP).