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] (#item-filter-syntax) 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 las condiciones
La expresi¨®n de las condiciones admite:
"<text>"
- constante de cadena, con el car¨¢cter de escape \
para escapar de "
y \
=
, <>
and
, or
, not
(
)
Incluir entre comillas las 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 en cualquier equipo. |
/*/key?[group="ABC" and tag="tagname:value"] |
Coincide con la misma m¨¦trica en cualquier equipo del grupo ABC que tenga etiquetas 'tagname:value'. |
/*/key[a,*,c]?[(group="ABC" y tag="Etiqueta1") or (group="DEF" and (tag="Etiqueta2" o 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 las 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. Las m¨¦tricas en estado no soportado no est¨¢n incluidas.
Si se cambia la clave de 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
grupos de equipos anidados con sus m¨¦tricas correspondientes.
El segundo ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç permite especificar el per¨ªodo de tiempo para la agregaci¨®n. El per¨ªodo de tiempo solo se puede expresar como tiempo; la cantidad de valores (con el prefijo #) no se admite.
Los 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).
Para la funci¨®n last_foreach el per¨ªodo de tiempo es un ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç opcional (compatible desde Áú»¢¶Ä²© 7.0), que se puede omitir:
El per¨ªodo de tiempo no es compatible con la funci¨®n exists_foreach.
bucket_rate_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'.
count_foreach
El tercer y cuarto ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç opcional son compatibles con la funci¨®n count_foreach:
¶Ù¨®²Ô»å±ð:
Operadores
admitidos:pattern
pattern
Comentarios:
±è²¹³Ù°ù¨®²Ô
se puede especificar como dos n¨²meros, separados por '/': ²Ô¨²³¾±ð°ù´Ç³å±è²¹°ù²¹³å³¦´Ç³¾±è²¹°ù²¹°ù³å³¦´Ç²Ô/³¾¨¢²õ³¦²¹°ù²¹. count() calcula "Y bit a bit" a partir del valor y la ³¾¨¢²õ³¦²¹°ù²¹ y compara el resultado con ²Ô¨²³¾±ð°ù´Ç³å²¹³å³¦´Ç³¾±è²¹°ù²¹°ù³å³¦´Ç²Ô. Si el resultado de "Y bit a bit" es igual a number_to_compare_with, el valor se cuenta.pattern
puede ser una expresi¨®n regular ordinaria o global (comenzando con '@'). En el caso de expresiones regulares globales, la distinci¨®n entre may¨²sculas y min¨²sculas se hereda de la configuraci¨®n de expresiones regulares globales. A los efectos de la coincidencia de expresiones regulares, los valores flotantes siempre se representar¨¢n con 4 d¨ªgitos decimales despu¨¦s de '.'. Tambi¨¦n tenga en cuenta que, para n¨²meros grandes, la diferencia en la representaci¨®n decimal (almacenada en la base de datos) y binaria (utilizada por el servidor Áú»¢¶Ä²©) puede afectar el cuarto d¨ªgito decimal.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 | ²Ñ¨¦³Ù°ù¾±³¦²¹ deshabilitada | ²Ñ¨¦³Ù°ù¾±³¦²¹ no admitida | Error de recuperaci¨®n de datos (SQL) |
---|---|---|---|---|---|---|
avg_foreach | ignore | return avg | ignore | ignore | ignore | ignore |
bucket_rate_foreach | ignore | return bucket rate | ignore | ignore | ignore | ignore |
count_foreach | ignore | return count | 0 | ignore | ignore | ignore |
exists_foreach | ignore | 1 | 1 | ignore | 1 | n/a |
last_foreach | ignore | return last | ignore | ignore | ignore | ignore |
max_foreach | ignore | return max | ignore | ignore | ignore | ignore |
min_foreach | ignore | return min | ignore | ignore | ignore | ignore |
sum_foreach | ignore | return sum | ignore | ignore | ignore | ignore |
Si la m¨¦trica se ignora, no se agrega nada a la agregaci¨®n.