Mappatura dei nomi delle metriche di Cloud Monitoring a PromQL
I nomi delle metriche di Cloud Monitoring includono due componenti, un dominio (ad es.compute.googleapis.com/
) e un percorso (ad es.instance/disk/max_read_ops_count
). Poiché PromQL supporta solo i caratteri speciali :
e _
, devi prima rendere i nomi delle metriche di monitoraggio compatibili con PromQL. Per mappare i nomi delle metriche di monitoraggio a PromQL, applica le seguenti regole:
- Sostituisci il primo
/
con:
. - Sostituisci tutti gli altri caratteri speciali (inclusi
.
e altri/
) caratteri) con_
.
La tabella seguente elenca alcuni nomi di metriche e i relativi equivalenti PromQL:
Nome metrica di Cloud Monitoring | Nome metrica PromQL |
---|---|
kubernetes.io/container/cpu/limit_cores |
kubernetes_io:container_cpu_limit_cores |
compute.googleapis.com/instance/cpu/utilization |
compute_googleapis_com:instance_cpu_utilization |
logging.googleapis.com/log_entry_count |
logging_googleapis_com:log_entry_count |
custom.googleapis.com/opencensus/opencensus.io/ |
custom_googleapis_com:opencensus_opencensus_io_ |
agent.googleapis.com/disk/io_time |
agent_googleapis_com:disk_io_time |
È possibile eseguire query sulle metriche con valori di distribuzione di Cloud Monitoring come sulle tabelle di distribuzione di Prometheus, con il suffisso _count
, _sum
o _bucket
aggiunto al nome della metrica:
Nome della metrica di Cloud Monitoring | Nomi delle metriche PromQL |
---|---|
networking.googleapis.com/vm_flow/rtt |
networking_googleapis_com:vm_flow_rtt_sum networking_googleapis_com:vm_flow_rtt_count networking_googleapis_com:vm_flow_rtt_bucket
|
Specifica di un tipo di risorsa monitorata
Quando una metrica è associata a un solo Cloud Monitoring monitorato , le query PromQL funzionano senza manualmente che specifica un tipo di risorsa. Tuttavia, alcune metriche di Cloud Monitoring, tra cui alcune metriche di sistema e molte di quelle generate dalle metriche basate su log, mappano a più di un tipo di risorsa.Puoi vedere quali tipi di risorsa monitorata sono mappati a una metrica eseguendo una delle le seguenti:
- Per le metriche selezionate da Google, puoi consultare gli elenchi delle metriche disponibili, tra cui le metriche di Google Cloud e le metriche Kubernetes. Ogni voce della documentazione elenca i tipi di risorse monitorate associati nella prima colonna di ogni voce sotto il tipo. Se non sono elencati tipi di risorse monitorate, la metrica può essere associata a qualsiasi tipo.
In Esplora metriche puoi eseguire le seguenti operazioni:
- Inserisci il nome della metrica nel campo Seleziona una metrica, quindi scorri i menu per selezionarla. Il menu delle risorse elenca i tipi di risorse validi per la metrica, ad esempio "Istanza VM".
- Nella barra degli strumenti della riquadro Query Builder, seleziona il pulsante con code MQL o code PromQL.
Verifica che sia selezionato MQL nel pulsante di attivazione/disattivazione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti. consente di formattare la query.
La query visualizzata mostra il tipo di risorsa. In particolare, MQL è utile per le metriche che possono essere associate a molti tipi di risorse monitorate, ad esempio metriche basate su log, metriche personalizzate o qualsiasi metrica definita dall'utente.
Se una metrica è associata a più tipi di risorse, devi
specifica il tipo di risorsa nella query PromQL. C'è un'etichetta speciale,
monitored_resource
, che puoi utilizzare per selezionare il tipo di risorsa.
I tipi di risorse monitorate sono nella maggior parte dei casi una stringa breve,
come gce_instance
, ma occasionalmente vengono visualizzati come URI completi,
monitoring.googleapis.com/MetricIngestionAttribution
. PromQL ben formulato
potrebbero avere il seguente aspetto:
logging_googleapis_com:byte_count{monitored_resource="k8s_container"}
custom_googleapis_com:opencensus_opencensus_io_http_server_request_count_by_method{monitored_resource="global"}
loadbalancing_googleapis_com:l3_external_egress_bytes_count{monitored_resource="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"}
Il valore ""
per l'etichetta monitored_resource
è speciale e si riferisce a
il tipo di risorsa predefinito prometheus_target
utilizzato per
Managed Service per le metriche Prometheus.
Se non utilizzi l'etichetta monitored_resource
quando è necessaria:
ricevi il seguente errore:
metric is configured to be used with more than one monitored resource type;
series selector must specify a label matcher on monitored resource name
Utilizzo delle etichette dei metadati
Puoi utilizzare le etichette di metadati in PromQL come faresti
ma, come i nomi delle metriche, anche le etichette dei metadati devono essere
Compatibile con PromQL. Sintassi per fare riferimento a un'etichetta di sistema di metadati
version
è metadata_system_version
e la sintassi per l'utente metadati
l'etichetta version
è metadata_user_version
. Le query PromQL ben formattate
che utilizzano le etichette dei metadati potrebbero avere il seguente aspetto:
compute_googleapis_com:instance_cpu_utilization{monitored_resource="gce_instance",metadata_user_env="prod"}
sum(compute_googleapis_com:instance_cpu_utilization) by (metadata_system_region)
L'unico carattere speciale che puoi utilizzare nelle chiavi di etichetta dei metadati è _
. L'aggregazione che utilizza le etichette dei metadati di tipo MULTI_STRING
o
KEY_VALUE
non è supportata.
Risolvere i conflitti di etichette
In Cloud Monitoring, le etichette possono appartenere alla metrica o alla risorsa.
Se un'etichetta metrica ha lo stesso nome della chiave di un'etichetta della risorsa, puoi fare riferimento specificamente all'etichetta metrica aggiungendo il prefisso metric_
al nome della chiave dell'etichetta nella query.
Ad esempio, supponiamo che tu abbia un'etichetta della risorsa e un'etichetta della metrica entrambe denominate pod_name
nella metricaexample.googleapis.com/user/widget_count
.
Per filtrare in base al valore dell'etichetta della risorsa, utilizza
example_googleapis_com:user_widget_count{pod_name="RESOURCE_LABEL_VALUE"}
Per filtrare in base al valore dell'etichetta della metrica, utilizza
example_googleapis_com:user_widget_count{metric_pod_name="METRIC_LABEL_VALUE"}