Puoi utilizzare Prometheus Query Language (PromQL) per eseguire query su tutte le metriche in Cloud Monitoring, tra cui metriche di sistema di Google Cloud, metriche di Kubernetes, metriche personalizzate e metriche basate su log.
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 della metrica di Cloud Monitoring | Nome della 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 tipo di risorsa monitorata da Cloud Monitoring, le query PromQL funzioneranno senza dover specificare manualmente 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.Per visualizzare i tipi di risorsa monitorata mappati a una metrica, puoi eseguire una delle seguenti operazioni:
- 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 risorsa monitorata associati nella prima colonna di ogni voce sotto il tipo. Se non sono elencati tipi di risorsa monitorata, la metrica può essere associata a qualsiasi tipo.
In Esplora metriche puoi:
- Inserisci il nome della metrica nel campo Seleziona una metrica, quindi naviga nei menu per selezionarla. Il menu delle risorse elenca i tipi di risorse validi per la metrica, ad esempio "Istanza VM".
- Nella barra degli strumenti del riquadro Query Builder, seleziona il pulsante 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 che 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 risorsa monitorata, ad esempio metriche basate su log, metriche personalizzate o qualsiasi metrica definita dall'utente.
Se una metrica è associata a più di un tipo di risorsa, devi specificare il tipo di risorsa nella query PromQL. Esiste 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 a volte vengono visualizzati come URI completi, come monitoring.googleapis.com/MetricIngestionAttribution
. Le query PromQL ben formattate 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 al tipo di risorsa prometheus_target
predefinito utilizzato per le metriche di Managed Service per Prometheus.
Se non utilizzi l'etichetta monitored_resource
quando è necessaria, viene visualizzato 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 dei metadati in PromQL come qualsiasi altra etichetta, ma, come i nomi delle metriche, anche le etichette dei metadati devono essere compatibili con PromQL. La sintassi per fare riferimento a un'etichetta di sistema dei metadativersion
è metadata_system_version
e la sintassi per l'etichetta utente dei metadativersion
è 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 delle etichette dei metadati è il carattere _
. 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"}
Argomenti aggiuntivi
Regole e avvisi
Puoi utilizzare le metriche di Cloud Monitoring sia nelle regole di registrazione sia in quelle di avviso in Managed Service per Prometheus. Per le istruzioni, consulta Valutazione e avvisi per le regole gestite o Valutazione e avvisi per le regole con deployment automatico.
Imparare a utilizzare PromQL
Per conoscere le nozioni di base sull'utilizzo di PromQL, ti consigliamo di consultare la documentazione open source. Ecco alcuni link utili:
Differenze di PromQL
PromQL per Managed Service per Prometheus potrebbe funzionare in modo leggermente diverso rispetto a PromQL a monte. Per un elenco di queste differenze, consulta Differenze di PromQL.