Informazioni sulle etichette specifiche per l'applicazione
Le etichette specifiche dell'applicazione si riferiscono a etichette o attributi inseriti nei dati di log, metriche o tracce. Queste etichette identificano il servizio o il workload che ha generato i dati. Puoi utilizzare etichette specifiche dell'applicazione come qualsiasi altra etichetta. Ad esempio, puoi filtrare i dati in base all'ID di un'applicazione. La telemetria generata dall'infrastruttura supportata include automaticamente queste etichette. Con la strumentazione, le metriche e le tracce scritte dalla tua applicazione possono includere queste etichette.
In questa sezione,
interpreta a.b.{x,y} come a.b.x e a.b.y.
I dati delle metriche provenienti dalla strumentazione che hai aggiunto alle tue applicazioni possono includere le seguenti etichette delle metriche:
metric.labels.apphub_application_{container,id,location}metric.labels.apphub_workload_{criticality_type,environment_type,id}
Gli intervalli di Trace generati dalla strumentazione che hai aggiunto alle tue applicazioni possono includere i seguenti attributi delle risorse:
gcp.apphub.application.{container,id,location}gcp.apphub.{workload,service}.{criticality_type,environment_type,id}
Informazioni sulle metriche del server HTTP OpenTelemetry
Non esistono metriche di sistema per i carichi di lavoro eseguiti su Google Kubernetes Engine
che possono segnalare il livello di traffico, il tasso di errori del server o
la latenza per le richieste HTTP. Tuttavia, i valori di questi indicatori chiave
possono essere derivati dalla metrica
http.server.request.duration, che viene raccolta automaticamente dalla
libreria client HTTP OpenTelemetry.
L'esportatore googlemanagedprometheus converte la metrica OpenTelemetry http.server.request.duration in una metrica Prometheus con le seguenti proprietà:
- Nome:
prometheus/http_server_request_duration_seconds/histogram - Metrica:
prometheus.googleapis.com/http_server_request_duration_seconds/histogram - Tipi di risorse:
prometheus_target - Unità:
s - Tipo:
CUMULATIVE - Tipo di valore:
DISTRIBUTION
Se il tuo progetto Google Cloud contiene la metrica http_server_request_duration_seconds,
le dashboard di Application Monitoring mostrano il livello di traffico, il tasso di errori del server e la latenza per le richieste HTTP.
Per scoprire come configurare l'applicazione per esportare la metrica
http_server_request_duration_seconds,
consulta la sezione Utilizzare OpenTelemetry su Kubernetes di questo documento.
Aggiungere etichette dell'applicazione ai dati delle metriche
Google Cloud Observability tenta di identificare l'origine delle metriche Prometheus confrontando gli attributi allegati alle metriche Prometheus inviate al tuo progetto con i dati restituiti dall'API App Hub. Il resto di questa sezione elenca le configurazioni che consentono a Google Cloud Observability di identificare l'applicazione App Hub.
Utilizzare OpenTelemetry su Kubernetes
Per fare in modo che Google Cloud Observability associ le etichette delle applicazioni ai dati delle metriche generati dai carichi di lavoro dell'applicazione eseguiti in Google Kubernetes Engine, procedi nel seguente modo:
Instrumenta l'applicazione con OpenTelemetry.
- Per informazioni generali, consulta Strumentazione e osservabilità.
- Per i link agli esempi di Go, Java, Node.js e Python, nonché informazioni su questi esempi, consulta Panoramica degli esempi di strumentazione.
Esegui il deployment dell'agente di raccolta creato da Google o dell'agente di raccolta OpenTelemetry e configura l'agente di raccolta come segue:
- Esporta i dati delle metriche con lo strumento di esportazione
googlemanagedprometheus. - Configura il processore
k8sattributesper estrarre i metadati, comenamespace, dall'ambiente. - Configura il processore
transform/collisionper impostare gli attributiproject_id,location,clusterenamespace. - Configura il processore
transform/aco-gkeper compilare le etichettetop_level_controller_nameetop_level_controller_type.
Per un esempio, vedi
otlp-k8s-ingest/config/collector.yaml, che è il file di configurazione per l'agente di raccolta creato da Google. Per scoprire di più su questo raccoglitore, consulta Deploy Google-Built OpenTelemetry Collector on GKE.- Esporta i dati delle metriche con lo strumento di esportazione
Registra i workload della tua applicazione con App Hub.
Utilizza Google Cloud Managed Service per Prometheus su GKE
Per fare in modo che Google Cloud Observability colleghi le etichette delle applicazioni ai dati delle metriche generati dai carichi di lavoro dell'applicazione eseguiti sui cluster Google Kubernetes Engine, procedi nel seguente modo:
Utilizza Google Cloud Managed Service per Prometheus con la raccolta gestita.
Esegui il deployment dei tuoi carichi di lavoro su un cluster Google Kubernetes Engine la cui versione sia almeno
1.32.1-gke.1439000.Registra i workload della tua applicazione con App Hub.
Google Cloud Managed Service per Prometheus rileva
i valori delle etichette dell'applicazione tramite i metadati di service discovery
e poi aggiunge le etichette top_level_controller_{name,type} all'targetLabels.metadata.
Durante l'importazione delle metriche, Google Cloud Observability utilizza le etichette top_level_controller_{name,type} e l'API App Hub per identificare l'applicazione App Hub e aggiungere le etichette appropriate ai dati delle metriche.
Utilizzare Cloud Run
Per fare in modo che Google Cloud Observability associ le etichette dell'applicazione ai dati delle metriche generati dai tuoi carichi di lavoro Cloud Run, procedi nel seguente modo:
Strumenta la tua applicazione utilizzando OpenTelemetry o il sidecar Managed Service per Prometheus per Cloud Run. Per informazioni su questi approcci, consulta i seguenti documenti:
Registra i workload della tua applicazione con App Hub.
Verificare le etichette delle metriche
Per verificare che l'applicazione invii le metriche Prometheus al tuo progetto, segui questi passaggi:
-
Verifica che la tua applicazione invii le metriche Prometheus al tuo progetto:
-
Nella console Google Cloud , vai alla pagina leaderboard Esplora metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
- Nell'elemento Metrica, espandi il menu Seleziona una metrica,
digita
Prometheus Targetnella barra dei filtri e poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:- Nel menu Risorse attive, seleziona Target Prometheus.
- Per selezionare una metrica, utilizza i menu Categorie di metriche attive e Metriche attive.
- Fai clic su Applica.
Per aggiungere filtri, che rimuovono le serie temporali dai risultati della query, utilizza l'elemento Filtro.
- Configura la modalità di visualizzazione dei dati.
Per visualizzare le etichette, espandi il menu Filtro. Ogni voce nel menu Filtro corrisponde a un'etichetta.
Per ulteriori informazioni sulla configurazione di un grafico, consulta Seleziona le metriche durante l'utilizzo di Esplora metriche.
Se non visualizzi alcuna metrica Prometheus, rivedi la configurazione.
-
Se le metriche Prometheus non contengono etichette dell'applicazione, procedi nel seguente modo:
Verifica di aver registrato il tuo workload o servizio con App Hub.
Esamina i log per determinare se sono presenti errori.
Ad esempio, se esegui il deployment di un agente di raccolta OpenTelemetry o dell'agente di raccolta creato da Google e utilizzi Google Kubernetes Engine, puoi procedere nel seguente modo:
-
Nella console Google Cloud , vai alla pagina Workload:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Kubernetes Engine.
- Seleziona il deployment del raccoglitore, quindi la scheda Log.
-
Se utilizzi un OpenTelemetry Collector o il Collector creato da Google, rivedi la configurazione del collector. Il raccoglitore deve:
- Esporta i dati delle metriche con lo strumento di esportazione
googlemanagedprometheus. - Configura il processore
k8sattributesper estrarre i metadati, comenamespace, dall'ambiente. - Configura il processore
transform/collisionper impostare gli attributiproject_id,location,clusterenamespace. - Configura il processore
transform/aco-gkeper compilare le etichettetop_level_controller_nameetop_level_controller_type.
Per un esempio, vedi il file di configurazione dell'agente di raccolta creato da Google:
otlp-k8s-ingest/config/collector.yaml.- Esporta i dati delle metriche con lo strumento di esportazione
Aggiungere attributi dell'applicazione agli intervalli di traccia
Non strumentare l'applicazione in modo che gli attributi specifici dell'applicazione vengano allegati agli intervalli inviati al tuo progetto Google Cloud . Google Cloud Observability utilizza invece gli attributi delle risorse OpenTelemetry e l'API App Hub per identificare l'applicazione App Hub associata a uno span, quindi aggiunge gli attributi specifici dell'applicazione prima di archiviare lo span.
Per fare in modo che Google Cloud Observability associ attributi di risorse specifici dell'applicazione ai dati di traccia generati dai servizi e dai carichi di lavoro della tua applicazione, esegui tutte le seguenti operazioni:
Instrumenta la tua applicazione con OpenTelemetry e configura l'esportatore per inviare i dati di traccia all'endpoint dell'API Telemetry (OTLP).
Ti consigliamo un'esportazione basata sul raccoglitore. I seguenti documenti descrivono i raccoglitori che collegano tutti gli attributi obbligatori ai dati di intervallo:
- Esegui il deployment di Google-Built OpenTelemetry Collector su Google Kubernetes Engine.
- Esegui il deployment di Google-Built OpenTelemetry Collector su Cloud Run.
- Esegui il deployment di OpenTelemetry Collector su Container-Optimized OS.
Se non utilizzi uno degli agenti di raccolta precedenti, devi configurare la strumentazione o l'agente di raccolta in modo da allegare tutti gli attributi richiesti.
Esegui il deployment dei tuoi servizi e carichi di lavoro sull'infrastruttura supportata.
Registra i tuoi servizi e workload con App Hub.
Per saperne di più su questi attributi, consulta Google Cloud Convenzioni semantiche di App Hub.
Attributi obbligatori
Questa sezione si applica alle configurazioni in cui non utilizzi uno dei raccoglitori consigliati. Ad esempio, potresti voler scrivere un tuo collettore oppure potresti preferire esportare direttamente i dati di traccia.
Attributi che identificano la posizione del progetto e della risorsa
Imposta i seguenti attributi:
cloud.provider: impostato su"gcp".cloud.account.id: impostalo sull'ID progetto.cloud.availability_zoneocloud.region: impostato sulla zona o regione in cui si trovano le risorse. Puoi impostare entrambi gli attributi.
I rilevatori di risorse possono aiutarti a impostare gli attributi precedenti:
resourcedetectionprocessor- Vai a: Google Cloud detector di risorse
- Java:
opentelemetry-java-contrib/gcp-resources - Node.js:
resource-detector-gcp - Python:
opentelemetry-resourcedetector-gcp
Attributi per i carichi di lavoro Google Kubernetes Engine
Per un carico di lavoro Google Kubernetes Engine, configura l'agente di raccolta o la strumentazione per eseguire le seguenti operazioni:
- Estrai i metadati, come
namespace, dall'ambiente. - Estrai i metadati pertinenti dal processore
k8sattributes. - Imposta gli attributi
project_id,location,clusterenamespaceper le metriche. - Imposta le etichette
top_level_controller_nameetop_level_controller_typeper le metriche.
Per un esempio basato sul collettore, vedi
otlp-k8s-ingest/config/collector.yaml.
Questo agente di raccolta utilizza il
processore
k8sattributesprocessor.
Attributi per i carichi di lavoro delle VM
Se esegui il deployment dell'applicazione su una VM, questa deve essere associata a un gruppo di istanze gestite (MIG). Devi anche allegare i seguenti attributi:
gcp.gce.instance_group_manager.namegcp.gce.instance_group_manager.regionogcp.gce.instance_group_manager.zone