Las funciones Foreach se utilizan en c¨¢lculos agregados para devolver un valor agregado para cada m¨¦trica seleccionada por el filtro de m¨¦tricas usado. Se devuelve una matriz de valores.
Por ejemplo, la funci¨®n avg_foreach devolver¨¢ una matriz de valores, donde cada valor es el valor hist¨®rico promedio de la m¨¦trica seleccionada, durante el intervalo de tiempo especificado.
El filtro de m¨¦trica es parte de la sintaxis utilizada por las funciones foreach. El filtro de m¨¦trica admite el uso de comodines, por lo que las m¨¦tricas necesarias se pueden seleccionar de forma bastante flexible.
¹ó³Ü²Ô³¦¾±¨®²Ô | ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô |
---|---|
avg_foreach | Devuelve el valor promedio de cada m¨¦trica. |
bucket_rate_foreach | Devuelve pares (l¨ªmite superior del dep¨®sito, valor de tasa) adecuados para su uso en la funci¨®n histogram_quantile(), donde "l¨ªmite superior del dep¨®sito" es el valor del ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç clave de la m¨¦trica definida por el ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç <n¨²mero de ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç>. |
count_foreach | Devuelve el n¨²mero de valores para cada m¨¦trica. |
exists_foreach | Devuelve '1' para cada m¨¦trica habilitada. |
last_foreach | Devuelve el ¨²ltimo valor de cada m¨¦trica. |
max_foreach | Devuelve el valor m¨¢ximo para cada m¨¦trica. |
min_foreach | Devuelve el valor m¨ªnimo para cada m¨¦trica. |
sum_foreach | Devuelve la suma de los valores de cada m¨¦trica. |
Las funciones Foreach admiten dos ±è²¹°ù¨¢³¾±ð³Ù°ù´Çs comunes: "filtro de m¨¦tricas" (ver detalles a continuaci¨®n) y "per¨ªodo de tiempo":
Por ejemplo:
avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m)
devolver¨¢ el promedio de cinco minutos de cada elemento 'mysql.qps' en el grupo de servidores MySQL.
Tenga en cuenta que algunas funciones admiten ±è²¹°ù¨¢³¾±ð³Ù°ù´Çs adicionales.
El filtro de m¨¦tricas:
consta de cuatro partes, donde:
S¨®lo se permiten espacios dentro de la expresi¨®n de condiciones.
Uso de comodines
/host/*
y /*/key
son filtros v¨¢lidos, pero /*/*
no es v¨¢lido.key[abc,*,*]
).Expresi¨®n de condiciones
La expresi¨®n de condiciones admite:
"<text>"
- constante de cadena, con el car¨¢cter de escape \
para escapar de "
y \
=
, <>
and
, or
, not
(
)
La cita de constantes de cadena es obligatoria. Solo se admite la comparaci¨®n de cadenas completas que distingue entre may¨²sculas y min¨²sculas.
Al especificar etiquetas en el filtro (es decir, tag="tagname:value"
), los dos puntos ":" se utilizan como delimitador. Todo lo que sigue se considera el valor de la etiqueta. Por lo tanto, actualmente no se admite especificar un nombre de etiqueta que contenga ":".
Ejemplos
Se puede utilizar un filtro complejo, que haga referencia a la clave de la m¨¦trica, al grupo de equipos y etiquetas, como lo ilustran los ejemplos:
Ejemplo de sintaxis | ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô |
---|---|
/host/key[abc,*] |
Coincide con m¨¦tricas similares en este equipo. |
/*/key |
Coincide con la misma m¨¦trica de cualquier equipo. |
/*/key?[group="ABC" and tag="tagname:value"] |
Coincide con la misma m¨¦trica de cualquier equipo del grupo ABC que tenga etiquetas 'tagname:value'. |
/*/key[a,*,c]?[(group="ABC" and tag="Etiqueta1") or (group="DEF" and (tag="Etiqueta2" or tag="Etiqueta3:valor" ))] |
Coincide con m¨¦tricas similares de cualquier equipo del grupo ABC o DEF con las etiquetas respectivas. |
Todas las m¨¦tricas a los que se hace referencia deben existir y recopilar datos. S¨®lo las m¨¦tricas habilitadas en los equipos habilitados se incluyen en los c¨¢lculos.
Si se cambia la clave de la m¨¦trica de una m¨¦trica referenciada, el filtro debe actualizarse manualmente.
La especificaci¨®n de un grupo de equipos principal incluye el grupo principal y todos los equipos de los grupos de equipos anidados con sus m¨¦tricas.
El segundo ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç permite especificar el per¨ªodo de tiempo para la agregaci¨®n. El per¨ªodo de tiempo s¨®lo puede expresarse como tiempo, la cantidad de valores (con el prefijo #) no es compatible.
S¨ªmbolos de unidad admitidos se pueden utilizar en este ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç por conveniencia, por ejemplo '5m' (cinco minutos) en lugar de '300s' (300 segundos) o '1d' (un d¨ªa) en lugar de '86400' (86400 segundos).
El servidor ignora el per¨ªodo de tiempo si se pasa con la funci¨®n last_foreach y por lo tanto se puede omitir:
El per¨ªodo de tiempo no es compatible con la funci¨®n exists_foreach.
Un tercer ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç opcional es compatible con la funci¨®n bucket_rate_foreach:
donde <n¨²mero de ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç> es la posici¨®n del valor del "dep¨®sito" en la clave de la m¨¦trica. Por ejemplo, si el valor del "dep¨®sito" en myItem[aaa,0.2] es '0.2', entonces su posici¨®n es 2.
El valor predeterminado de <n¨²mero de ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç> es '1'.
Consulte c¨¢lculos agregados para obtener m¨¢s detalles y ejemplos sobre el uso de funciones foreach.
La siguiente tabla ilustra c¨®mo se comporta cada funci¨®n en casos de disponibilidad limitada de equipo/m¨¦trica y datos hist¨®ricos.
¹ó³Ü²Ô³¦¾±¨®²Ô | Equipo deshabilitado | Equipo no disponible con datos | Equipo no disponible sin datos | M¨¦trica deshabilitada | M¨¦trica no admitida | Error de recuperaci¨®n de datos (SQL) |
---|---|---|---|---|---|---|
avg_foreach | ignorar | retornar promedio | ignorar | ignorar | ignorar | ignorar |
bucket_rate_foreach | ignorar | tasa de retorno del dep¨®sito | ignorar | ignorar | ignorar | ignorar |
count_foreach | ignorar | retornar recuento | 0 | ignorar | ignorar | ignorar |
exists_foreach | ignorar | 1 | 1 | ignorar | 1 | n/a |
last_foreach | ignorar | retornar ¨²ltimo | ignorar | ignorar | ignorar | ignorar |
max_foreach | ignorar | retornar max | ignorar | ignorar | ignorar | ignorar |
min_foreach | ignorar | retornar min | ignorar | ignorar | ignorar | ignorar |
sum_foreach | ignorar | retornar suma | ignorar | ignorar | ignorar | ignorar |
Si la m¨¦trica se ignora, no se agrega nada a la agregaci¨®n.