Asigna nombres de métricas de Cloud Monitoring a PromQL
Los nombres de las métricas de Cloud Monitoring incluyen dos componentes, un dominio (como compute.googleapis.com/
) y una ruta de acceso (como instance/disk/max_read_ops_count
). Debido a que PromQL solo admite los caracteres especiales :
y _
, primero debes hacer que los nombres de métricas de Monitoring sean compatibles con PromQL. Para asignar nombres de métricas de Monitoring a PromQL, aplica las siguientes reglas:
- Reemplaza el primer
/
por:
. - Reemplaza todos los demás caracteres especiales (incluidos
.
y otros caracteres/
) por_
.
En la siguiente tabla, se enumeran algunos nombres de métricas y sus equivalentes de PromQL:
Nombre de la métrica de Cloud Monitoring | Nombre de la métrica de 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 |
Las métricas con valor de distribución de Cloud Monitoring se pueden consultar como histogramas de Prometheus, con el sufijo _count
, _sum
o _bucket
agregado al nombre de la métrica:
Nombre de la métrica de Cloud Monitoring | Nombres de métricas de 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
|
Especifica un tipo de recurso supervisado
Cuando una métrica se asocia a un solo tipo de recurso supervisado de Cloud Monitoring, las consultas de PromQL funcionarán sin especificar un tipo de recurso de forma manual. Sin embargo, algunas métricas dentro de Cloud Monitoring, incluidas algunas métricas del sistema y muchas de las que generan las métricas basadas en registros, se asignan a más de un tipo de recurso.Puedes ver qué tipos de recursos supervisados se asignan a una métrica si realizas una de las siguientes acciones:
- Para las métricas seleccionadas por Google, puedes consultar las listas de métricas disponibles, incluidas las métricas de Google Cloud y las métricas de Kubernetes. Cada entrada en la documentación enumera los tipos de recursos supervisados asociados en la primera columna de cada entrada debajo del tipo. Si no se enumeran tipos de recursos supervisados, la métrica se puede asociar con cualquier tipo.
En el Explorador de métricas, puedes hacer lo siguiente:
- Ingresa el nombre de tu métrica en el campo Seleccionar una métrica y, luego, navega por los menús para seleccionarla. En el menú de recursos, se enumeran los tipos de recursos válidos para esa métrica, por ejemplo, “Instancia de VM”.
- En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea codeMQL o codePromQL.
Verifica que MQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
La consulta que se muestra indica el tipo de recurso. En particular, MQL es útil para las métricas que se pueden asociar con muchos tipos de recursos supervisados, por ejemplo, métricas basadas en registros, métricas personalizadas o cualquier métrica definida por el usuario.
Si una métrica está asociada con más de un tipo de recurso, debes especificar el tipo de recurso en tu consulta de PromQL. Existe una etiqueta especial, monitored_resource
, que puedes usar para seleccionar el tipo de recurso.
Los tipos de recursos supervisados en la mayoría de los casos son una string corta, como gce_instance
, pero a veces aparecen como URI completos, como monitoring.googleapis.com/MetricIngestionAttribution
. Las consultas de PromQL bien formadas podrían tener el siguiente aspecto:
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"}
El valor de ""
para la etiqueta monitored_resource
es especial y se refiere al tipo de recurso predeterminado prometheus_target
que se usa para el servicio administrado para las métricas de Prometheus.
Si no usas la etiqueta monitored_resource
cuando es necesario, verás el siguiente error:
metric is configured to be used with more than one monitored resource type;
series selector must specify a label matcher on monitored resource name
Usa etiquetas de metadatos
Puedes usar etiquetas de metadatos en PromQL como cualquier otra etiqueta, aunque, al igual que los nombres de métricas, las etiquetas de metadatos también deben ser compatibles con PromQL. La sintaxis para referirse a una etiqueta del sistema de metadatos version
es metadata_system_version
y la sintaxis para la etiqueta de usuario de metadatos version
es metadata_user_version
. Las consultas de PromQL bien formadas que usan etiquetas de metadatos podrían tener el siguiente aspecto:
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)
El único carácter especial que puedes usar en las claves de etiquetas de metadatos es _
. No se admite la agregación mediante etiquetas de metadatos con el tipo MULTI_STRING
o KEY_VALUE
.
Resuelve conflictos de etiquetas
En Cloud Monitoring, las etiquetas pueden pertenecer a la métrica o al recurso.
Si una etiqueta de métrica tiene el mismo nombre de clave que una etiqueta de recurso, puedes consultar la etiqueta de métrica de forma específica si agregas el prefijo metric_
al nombre de la clave de la etiqueta en tu consulta.
Por ejemplo, supongamos que tienes una etiqueta de recurso y una etiqueta de métrica llamadas pod_name
en la métrica example.googleapis.com/user/widget_count
.
Para filtrar el valor de la etiqueta de recurso, usa
example_googleapis_com:user_widget_count{pod_name="RESOURCE_LABEL_VALUE"}
Para filtrar el valor de la etiqueta de métrica, usa
example_googleapis_com:user_widget_count{metric_pod_name="METRIC_LABEL_VALUE"}