Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

1 Funciones Foreach

¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô general

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.

Funciones admitidas

¹ó³Ü²Ô³¦¾±¨®²Ô ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô
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.

Sintaxis de la funci¨®n

Las funciones Foreach admiten dos ±è²¹°ù¨¢³¾±ð³Ù°ù´Çs comunes: "filtro de m¨¦tricas" (ver detalles a continuaci¨®n) y "per¨ªodo de tiempo":

foreach_function(filtro de m¨¦trica,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.

Sintaxis del filtro de m¨¦trica

El filtro de m¨¦tricas:

/host/key[parameters]?[conditions]

consta de cuatro partes, donde:

  • host - nombre del equipo
  • key - clave de la m¨¦trica (sin ±è²¹°ù¨¢³¾±ð³Ù°ù´Çs)
  • parameters - ±è²¹°ù¨¢³¾±ð³Ù°ù´Çs de la clave de la m¨¦trica
  • conditions: condiciones basadas en grupo de equipos y/o etiqueta de m¨¦tricas (como expresi¨®n)

S¨®lo se permiten espacios dentro de la expresi¨®n de condiciones.

Uso de comodines

  • Se puede utilizar un comod¨ªn para reemplazar el nombre del equipo, la clave de la m¨¦trica o un ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç de clave de m¨¦trica individual.
  • Se debe especificar la clave del equipo o de la m¨¦trica sin comodines. Entonces /host/* y /*/key son filtros v¨¢lidos, pero /*/* no es v¨¢lido.
  • El comod¨ªn no se puede utilizar para una parte del nombre de equipo, clave de m¨¦trica o ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç de clave de m¨¦trica.
  • El comod¨ªn no coincide con m¨¢s de un ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç clave de m¨¦trica. Por lo tanto, se debe especificar un comod¨ªn para cada ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç en la separaci¨®n (es decir, key[abc,*,*]).

Expresi¨®n de las condiciones

La expresi¨®n de las condiciones admite:

  • operandos:
    • group - grupo de equipos
    • tag - etiqueta de m¨¦trica
    • "<text>" - constante de cadena, con el car¨¢cter de escape \ para escapar de " y \
  • operadores de comparaci¨®n de cadenas que distinguen entre may¨²sculas y min¨²sculas: =, <>
  • operadores l¨®gicos: and, or, not
  • agrupaci¨®n entre par¨¦ntesis: ( )

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.

Periodo de tiempo

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:

last_foreach(/*/key?[group="host group"])

El per¨ªodo de tiempo no es compatible con la funci¨®n exists_foreach.

Par¨¢metros adicionales

bucket_rate_foreach

Un tercer ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç opcional es compatible con la funci¨®n bucket_rate_foreach:

bucket_rate_foreach(filtro de m¨¦tricas,per¨ªodo de tiempo,<n¨²mero de ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç>)

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:

count_foreach(filtro de m¨¦tricas,per¨ªodo de tiempo,<operador>,<±è²¹³Ù°ù¨®²Ô>)

¶Ù¨®²Ô»å±ð:

  • operador es el operador condicional para los valores de las m¨¦tricas (debe estar entre comillas dobles). Operadores admitidos:
    eq - igual
    ne - no igual
    gt - mayor
    ge - mayor o igual
    lt - menos<br >le - menor o igual
    like - coincide si contiene ±è²¹³Ù°ù¨®²Ô (distingue entre may¨²sculas y min¨²sculas)
    bitand - AND bit a bit
    regexp - coincide entre may¨²sculas y min¨²sculas de la expresi¨®n regular dada en pattern
    iregexp - coincidencia que no distingue entre may¨²sculas y min¨²sculas de la expresi¨®n regular dada en pattern
  • ±è²¹³Ù°ù¨®²Ô es el ±è²¹³Ù°ù¨®²Ô requerido (los argumentos de cadena deben estar entre comillas dobles); compatible si se especifica operador en el tercer ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç.

Comentarios:

  • Los ±è²¹°ù¨¢³¾±ð³Ù°ù´Çs opcionales operador o ±è²¹³Ù°ù¨®²Ô no se pueden dejar vac¨ªos despu¨¦s de una coma, solo se pueden omitir por completo.
  • Con bitand como tercer ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç, el cuarto ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç ±è²¹³Ù°ù¨®²Ô 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.
    Si number_to_compare_with y mask son iguales, solo es necesario especificar la mask (sin '/').
  • Con regexp o iregexp como tercer ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç, el cuarto ±è²¹°ù¨¢³¾±ð³Ù°ù´Ç 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.

Comportamiento seg¨²n disponibilidad

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.