Comprenda la sintaxis de las expresiones de Monitoring Query Language (MQL) y revise los valores válidos para operadores de intervalo, estadística y predicado en expresiones MQL.
La sintaxis de MQL regula las expresiones para consultar métricas publicadas en el servicio Monitoring. Las expresiones MQL definen consultas (incluidas consultas de alarma). MQL actúa en datos agregados.
En el siguiente diagrama se muestran los componentes necesarios y los componentes opcionales comunes.
Nota
Algunos componentes pueden aparecer en una expresión MQL varias veces. Por ejemplo, puede utilizar dos funciones de agrupación (como en groupBy(), seguidas de una estadística, seguida de grouping()). También puede anidar consultas.
Para seleccionar la estadística absent() en la consola, consulte las siguientes instrucciones específicas de la página.
Página Crear alarma o Editar alarma: en el modo básico, seleccione ausente en Operador en Regla de disparador. En el modo avanzado (seleccione Switch to Advanced Mode), actualice la expresión MQL.
Página Explorador de métricas: seleccione Modo avanzado para utilizar MQL.
Los valores soportados para el intervalo dependen del rango de tiempo especificado en la consulta de métrica (no aplicable a las consultas de alarma). Se soportan más valores de intervalo para los rangos de tiempo más pequeños. Por ejemplo, si selecciona una hora para el rango de tiempo, se soportan todos los valores de intervalo. Si selecciona 90 días para el rango de tiempo, solo están soportados valores de intervalo entre 1 hora y 1 día.
Seleccione un intervalo de alarma basado en la frecuencia en la que se emite la métrica. Por ejemplo, una métrica emitida cada cinco minutos requiere un intervalo de alarma de 5 minutos o superior. La mayoría de las métricas se emiten cada minuto, lo que significa que la mayoría de las métricas soportan cualquier intervalo de alarma. Para determinar los intervalos de alarma válidos para una métrica específica, consulte la referencia sobre métricas del servicio relevante.
Ejemplo: intervalo de un minuto (1m)
CpuUtilization[1m].mean()
Los siguientes son intervalos válidos para las expresiones MQL: 1m-60m, 1h-24h, 1d
Para las consultas de métricas, el intervalo seleccionado controla la resolución por defecto de la solicitud, lo cual determina el intervalo máximo de tiempo de los datos obtenidos.
En las consultas de alarmas, el intervalo especificado no tiene efecto alguno en la resolución de la solicitud. El único valor válido de la resolución para una solicitud de consulta de alarma es 1m.Para obtener más información acerca del uso del parámetro de resolución en las consultas de alarmas, consulte Alarma.
El intervalo de tiempo máximo devuelto para una consulta de una métrica depende de la resolución. Por defecto, para las consultas de métricas, la resolución se corresponde con el intervalo de consulta.
El intervalo de tiempo máximo se calcula utilizando la hora actual, independientemente de la hora de finalización especificada. A continuación se muestran los rangos de tiempo máximos devueltos para cada selección de intervalo disponible en la consola (modo básico).
Intervalo
Resolución por defecto (consultas de métricas)
Intervalo de tiempo máximo devuelto
1 minuto
Automático (página Métricas de servicio)*, cuando el período de tiempo seleccionado es de 6 horas o menos
1 minuto
7 días
5 minutos
Automático (página Métricas de servicio)*, cuando el período de tiempo seleccionado es superior a 6 horas e inferior a 36 horas
5 minutos
30 días
1 hora
Automático (página Métricas de servicio)*, cuando el período de tiempo seleccionado es superior a 36 horas
1 hora
90 días
1 día
1 día
90 días
* El rango de tiempo máximo que se devuelve cuando selecciona Automático en Intervalo (sólo en la página Métricas de servicio) viene determinado por la selección automática del intervalo. La selección automática de intervalos se basa en el período de tiempo seleccionado.
Intervalo y resolución de un minuto hasta la hora actual, enviado el 8 de enero a las 10:00. No se ha especificado valor alguno para la resolución ni para el tiempo de finalización, así que la resolución adopta por defecto el valor del intervalo de 1m y la hora de finalización se define por defecto en la hora actual (2023-01-08T10:00:00.789Z). Esta solicitud devuelve un máximo de 7 días de puntos de datos de métrica. El primer punto de datos posible dentro de este período de siete días sería el 1 de enero a las 10:00 (2023-01-01T10:00:00.789Z).
Ejemplo 2 para datos devueltos
Intervalo de cinco minutos con resolución de un minuto hasta hace dos días, enviado el 8 de enero a las 10:00. Debido a que la resolución controla el intervalo de tiempo máximo, se devuelve un máximo de 7 días de puntos de datos de métrica. Si bien la hora de finalización especificada era el 6 de enero a las 10:00 (2023-01-06T10:00:00.789Z), el primer punto de datos posible dentro de este período de siete días sería el 1 de enero a las 10:00 (2023-01-01T10:00:00.789Z). Por tanto, en este ejemplo solo se pueden devolver 5 días de puntos de datos de métrica.
Estadística 🔗
La estadística es la función de agregación que se aplica al juego de puntos de datos sin formato en el intervalo especificado.
Los valores válidos oscilan entre un minuto (1m) y tres días (3d o 72h). Especifique la cantidad de tiempo en el período de detección de ausencias mediante un número y una unidad (m, h o d para minuto, hora o día).
Para cada intervalo, devuelve el valor con el último registro de hora en el intervalo especificado.
max()
Máximo
Devuelve el valor más alto observado durante el intervalo especificado.
mean()
Media
Devuelve el valor de Sum dividido entre Count durante el intervalo especificado.
min()
Mín.
Devuelve el valor más bajo observado durante el intervalo especificado.
percentile(p)
P50
P90
P95
P99
P99,9 (solo página Métricas de servicio)
Devuelve el valor estimado del percentil especificado (p al utilizar SDK, CLI o API) durante el intervalo especificado. Los valores válidos son superiores a 0,0 e inferiores a 1,0.
Por ejemplo, percentile(0.8) devuelve el valor del percentil 80.
rate()
Tarifa
Devuelve la ratio de cambio media por intervalo. La unidad se indica por segundo.
sum()
Suma
Devuelve todos los valores sumados, por intervalo.
Operadores de predicado 🔗
El componente de predicado solo mantiene los valores especificados de los flujos de métricas. Utilice un operador de predicado para definir un umbral o una ausencia.
Ejemplo 1: Mayor que 80% para el uso medio de CPU
CpuUtilization[1m].mean() > 80
Ejemplo 2: entre 60 y 80 por ciento para el uso medio de CPU
CpuUtilization[1m].mean() in (60, 80)
Ejemplo 3: mayor que 1 para errores
ServiceConnectorHubErrors[1m].count() > 1
Ejemplo 4: mayor que 85 para el uso de CPU del percentil 90 (selección de un dominio de disponibilidad y agrupación por pool)
Descripción de absent(): devuelve true (1) si la métrica está ausente para todo el intervalo. Devuelve false (0) si la métrica está presente durante el intervalo. Se ignora después del período de detección de ausencias, sin generar ningún valor.
Los valores válidos oscilan entre un minuto (1m) y tres días (3d o 72h). Especifique la cantidad de tiempo en el período de detección de ausencias mediante un número y una unidad (m, h o d para minuto, hora o día).
Ejemplo 2: Calcule el valor en segundos, en lugar de la unidad por defecto de milisegundos de la métrica (métrica TotalRequestLatency en el espacio de nombres oci_objectstorage)
TotalRequestLatency[1m].mean() / 1000
Unir consultas 🔗
Utilice los operadores && (AND) y || (OR) para unir consultas. Varias consultas unidas actúan como una sola consulta.
Nota
Los operadores && (AND) y || (OR) solo se pueden utilizar entre consultas. No los utilice entre juegos de dimensiones. Por ejemplo, la siguiente consulta no es válida: CpuUtilization[1m]{faultDomain =~ "FAULT-DOMAIN-1|FAULT-DOMAIN-2" || resourceDisplayName = "test"}.mean()
Operador de unión
Descripción
&&
AND: Unir consultas. Devuelve verdadero si ambos operandos son verdaderos. Devuelve false de lo contrario.
||
OR: Unir consultas. Devuelve verdadero si cualquiera de los operandos es verdadero o si ambos operandos son verdaderos. Devuelve false de lo contrario.
Ejemplo 1: Unir consultas con OR. Devuelva true si el punto de datos de uso de CPU está en el dominio de errores 1 o 2 O el punto de datos de uso de memoria está en el dominio de errores 1 o 2.
Ejemplo 2: unión de consultas de alarma con AND. Active la alarma (transición al estado de activación) solo cuando ambas consultas sean verdaderas: existe al menos un error Y el error medio es mayor que la mitad.
Ejemplo 3: unión de consultas de alarma con AND. Active la alarma (transición al estado de activación) solo cuando ambas consultas sean verdaderas: para lecturas más pequeñas (de 0 a 8 kilobytes), el percentil 50 de las solicitudes supera 100 Y la latencia media es inferior a 0,01.
Ejemplo que muestra la coincidencia parcial para tres juegos de valores de dimensión (prueba de instancias informáticas en el dominio de errores 1 que utilizan la unidad myshape):