Puoi utilizzare Prometheus Query Language (PromQL) per eseguire query su tutte le metriche in Cloud Monitoring, incluse le metriche di sistema di Google Cloud, Metriche 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 (come
compute.googleapis.com/
) e un percorso (ad esempio
instance/disk/max_read_ops_count
). Poiché PromQL supporta solo
i caratteri speciali :
e _
, devi prima rendere Monitoring
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 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 valore di distribuzione di Cloud Monitoring
come gli istogrammi di Prometheus, con il suffisso _count
, _sum
o _bucket
aggiunto al nome della metrica:
Nome 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.Per visualizzare i tipi di risorse monitorate 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 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 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 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. 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
. 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 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:
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. 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
. Query PromQL ben formulate
utilizzando le etichette dei metadati potrebbe essere il seguente:
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 _
. Aggregazione mediante etichette di metadati di tipo MULTI_STRING
o
KEY_VALUE
non supportato.
Risolvere i conflitti di etichette
In Cloud Monitoring, le etichette possono appartenere alla metrica o alla risorsa.
Se un'etichetta di metrica ha lo stesso nome di chiave di un'etichetta di risorsa, puoi fare riferimento a
l'etichetta della metrica in modo specifico aggiungendo il prefisso metric_
alla chiave di 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 nelle regole di avviso in Managed Service per Prometheus. Per le istruzioni, consulta Valutazione e avvisi delle regole gestite o Valutazione e avvisi di regole con deployment autonomo.
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 PromQL
PromQL per Managed Service per Prometheus potrebbe funzionare leggermente in modo diverso rispetto a PromQL upstream. Per un elenco di queste differenze, consulta Differenze di PromQL.