5 Funciones de tendencia

Las funciones de tendencia, a diferencia de las funciones de historial, utilizan los datos de tendencia para los cálculos.

Las tendencias almacenan valores agregados por hora. Las funciones de tendencia utilizan estos promedios horarios y, por lo tanto, son útiles para el análisis a largo plazo.

Los resultados de la función de tendencia se almacenan en caché, por lo que si se realizan varias llamadas a la misma función con los mismos parámetros, se recupera la información de la base de datos solo una vez. La caché de la función de tendencia está controlada por el parámetro del servidor TrendFunctionCacheSize.

Los iniciadores que hacen referencia a funciones de tendencia sólo se evalúan una vez por el período de tiempo más pequeño en la expresión. Por ejemplo, un iniciador como

trenavg(/host/key,1d:now/d) > 1 o trenavg(/host/key2,1w:now/w) > 2

será evaluado una vez al día. Si el iniciador contiene funciones de tendencia e historial (o basadas en tiempo), se calcula de acuerdo con los principios habituales.

Todas las funciones enumeradas aquí son compatibles con:

Algunas notas generales sobre los parámetros de función:

  • Los parámetros de la función están separados por una coma.
  • Los parámetros de función opcionales (o partes de parámetros) se indican mediante < >
  • Los parámetros específicos de la función se describen con cada función.
  • Los parámetros /host/key y time period:time shift nunca deben ser entrecomillados
Parámetros comunes
  • /host/key es un primer parámetro obligatorio común
  • período de tiempo:cambio de tiempo es un segundo parámetro común, donde:
    • período de tiempo - el período de tiempo (mínimo '1h'), definido como <N><unidad de tiempo> donde N - el número de unidades de tiempo, unidad de tiempo - h (hora), d (día), w (semana), M (mes) o y (año).
    • timeshift - el desplazamiento del período de tiempo (ver ejemplos de funciones)

Funciones de tendencia

FUNCTION
Descripción Parámetros específicos de la función Comentarios
baselinedev (/host/key,data period:time shift,season_unit,num_seasons)
Devuelve la cantidad de desviaciones (según el algoritmo stddevpop) entre el último período de datos y los mismos períodos de datos en las temporadas anteriores. periodo de datos - el periodo de recopilación de datos dentro de una temporada, definido como <N><unidad de tiempo> donde
N - número de unidades de tiempo
unidad de tiempo - h (hora), d (día), w (semana), M (mes) o y (año), debe ser igual o menor que la temporada

Desplazamiento horario - la diferencia del periodo de tiempo (ver ejemplos)

unidad_de_temporada - duración de una temporada (h, d, w, M, y), no puede ser menor que el periodo de datos

num_temporadas - número de temporadas a evaluar
Ejemplos:
=> baselinedev(/host/key,1d:now/d,"M",6) → calcular el número de desviaciones estándar (población) entre el día anterior y el mismo día en los 6 meses anteriores. Si la fecha no existe en un mes anterior, se utilizará el último día del mes (se analizará el 31 de julio frente al 31 de enero, el 28 de febrero,... el 30 de junio).
=> baselinedev(/host/key,1h:now/h,"d",10) → calcula el número de desviaciones estándar (población) entre la hora anterior y las mismas horas durante el período de diez días antes de ayer.
baselinewma (/host/key,data period:time shift,season_unit,num_seasons)
Calcula la línea base promediando datos del mismo período de tiempo en múltiples períodos de tiempo iguales ("estaciones") utilizando el algoritmo de promedio móvil ponderado. período de datos: el período de recopilación de datos dentro de una temporada, definido como <N><unidad de tiempo> donde
N: número de unidades de tiempo
unidad de tiempo: h (hora), d (día), w (semana), M (mes) o y (año), debe ser igual o menor que la temporada

Desplazamiento horario: el desplazamiento del período de tiempo, define el final del período de tiempo de recopilación de datos en temporadas (ver ejemplos)

season_unit: duración de una temporada (h, d, w, M, y), no puede ser menor que el período de datos

num_seasons: número de temporadas a evaluar
Ejemplos:
=> baselinewma(/host/key,1h:now/h,"d",3) → se calcula la línea base en función de la última hora completa dentro de un período de 3 días que terminó ayer. Si "ahora" es el lunes 13:30, se analizarán los datos de 12:00 a 12:59 del viernes, sábado y domingo.
=> baselinewma(/host/key,2h:now/h,"d",3) → se calcula la línea base en función de las últimas dos horas dentro de un período de 3 días que terminó ayer. Si "ahora" es el lunes 13:30, se analizarán los datos de 11:00 a 12:59 del viernes, sábado y domingo.
=> baselinewma(/host/key,1d:now/d,"M",4) → se calcula la línea base en función del mismo día del mes que "ayer" en los 4 meses anteriores al último mes completo. Si la fecha requerida no existe, se toma el último día del mes. Si hoy es 1 de septiembre, se analizarán los datos del 31 de julio, 30 de junio, 31 de mayo y 30 de abril.
trendavg (/host/key,time period:time shift)
Promedio de los valores de tendencia dentro del período de tiempo definido. Ver parámetros comunes. Ejemplos:
=> trendavg(/host/key,1h:now/h) → promedio de la hora anterior (p. ej., 12:00-13:00)
=> trendavg(/host/key,1h:now/h-1h) → promedio de hace dos horas (11:00-12:00)
=> trendavg(/host/key,1h:now/h-2h) → promedio de hace tres horas (10:00-11:00)
=> trendavg(/host/key,1M:now/M-1y) → promedio del mes anterior hace un año
trendcount (/host/key,período de tiempo:cambio de hora)
Número de valores históricos recuperados correctamente utilizados para calcular el valor de tendencia dentro del período de tiempo definido. Ver parámetros comunes. Ejemplos:
=> trendcount(/host/key,1h:now/h) → recuento de la hora anterior (p. ej., 12:00-13:00)
=> trendcount(/host/key,1h:now/h-1h) → recuento de hace dos horas (11:00-12:00)
=> trendcount(/host/key,1h:now/h-2h) → recuento de hace tres horas (10:00-11:00)
=> trendcount(/host/key,1M:now/M-1y) → recuento del mes anterior hace un año
trendmax (/host/key,período de tiempo:cambio de hora)
El máximo de los valores de tendencia dentro del período de tiempo definido. Ver parámetros comunes. Ejemplos:
=> trendmax(/host/key,1h:now/h) → máximo de la hora anterior (p. ej., 12:00-13:00)
=> trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calcula la diferencia entre los valores máximo y mínimo (delta de tendencia) de la hora anterior (12:00-13:00)
=> trendmax(/host/key,1h:now/h-1h) → máximo de hace dos horas (11:00-12:00)
=> trendmax(/host/key,1h:now/h-2h) → máximo de hace tres horas (10:00-11:00)
=> trendmax(/host/key,1M:now/M-1y) → máximo del mes anterior hace un año
trendmin (/host/key,time period:time shift)
El mínimo en valores de tendencia dentro del período de tiempo definido. Ver parámetros comunes. Ejemplos:
=> trendmin(/host/key,1h:now/h) → mínimo de la hora anterior (p. ej., 12:00-13:00)
=> trendmin(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calcula la diferencia entre los valores máximo y mínimo (delta de tendencia) de la hora anterior (12:00-13:00)
=> trendmin(/host/key,1h:now/h-1h) → mínimo de hace dos horas (11:00-12:00)
=> trendmin(/host/key,1h:now/h-2h) → mínimo de hace tres horas (10:00-11:00)
=> trendmin(/host/key,1M:now/M-1y) → mínimo del mes anterior hace un año
trendstl (/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s_window>)
Devuelve la tasa de anomalías durante el período de detección: un valor decimal entre 0 y 1 que es ((la cantidad de valores de anomalía)/(la cantidad total de valores)). eval period: el período de tiempo que se debe descomponer (mínimo '1 h'), definido como <N><time unit> donde
N: cantidad de unidades de tiempo
time unit: h (hora), d (día), w (semana), M (mes) o y (año).

Time shift: la diferencia de período de tiempo (consulte los ejemplos)

detection period: el período de tiempo antes del final del período de evaluación para el que se calculan las anomalías (mínimo '1 h', no puede ser más largo que eval period), definido como <N><time unit> donde
N: cantidad de unidades de tiempo
time unit: h (hora), d (día), w (semana).

season - el período de tiempo más corto en el que se espera un patrón repetitivo ("season") (mínimo '2h', no puede ser más largo que el período de evaluación, la cantidad de entradas en el período de evaluación debe ser mayor que los dos tiempos de la frecuencia resultante (season/h)), definida como <N><time unit> donde
N - número de unidades de tiempo
time unit - h (hora), d (día), w (semana).

deviations - la cantidad de desviaciones (calculadas por devalg) para contar como anomalía (pueden ser decimales), (deben ser mayores o iguales a 1, el valor predeterminado es 3)

devalg (debe estar entre comillas dobles) - algoritmo de desviación, puede ser stddevpop, stddevsamp o mad (predeterminado)

s_window - el lapso (en rezagos) de la ventana de loess para la extracción estacional (el valor predeterminado es 10 * número de entradas en el período de evaluación + 1)
Ejemplos:
=> trendstl(/host/key,100h:now/h,10h,2h) → analizar las últimas 100 horas de datos de tendencia,
encontrar la tasa de anomalía para las últimas 10 horas de ese período,
esperando que la periodicidad sea de 2 h,
los valores de la serie restante del período de evaluación se consideran anomalías si alcanzan el valor de 3 desviaciones de la MAD de esa serie restante
=> trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") → analizar el período de 100 horas de datos de tendencia, hasta hace 10 horas,
encontrar la tasa de anomalía para todo ese período
esperando que la periodicidad sea 2h,
los valores de la serie restante del período de evaluación se consideran anomalías si alcanzan el valor de 2,1 desviaciones de la MAD de esa serie restante
=> trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) → analizar 100 días de datos de tendencia hasta hace un día,
encontrar la tasa de anomalía para el período de los últimos 10 días de ese período,
esperando que la periodicidad sea 1d,
los valores de la serie restante del período de evaluación se consideran anomalías si alcanzan el valor de 4 desviaciones de la MAD de esa serie restante,
anulando el lapso predeterminado de la ventana de loess para la extracción estacional de "10 * número de entradas en el período de evaluación + 1" con el lapso de 10 rezagos
=> trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") → analiza el mes anterior hace un año,
encuentra la tasa de anomalía del último día de ese período
esperando que la periodicidad sea de 2 h,
los valores de la serie restante del período de evaluación se consideran anomalías si alcanzan el valor de 3 desviaciones de la desviación estándar de la muestra de esa serie restante
trendsum (/host/key,time period:time shift)
Suma de los valores de tendencia dentro del período de tiempo definido. Ver parámetros comunes. Ejemplos:
=> trendsum(/host/key,1h:now/h) → suma de la hora anterior (p. ej., 12:00-13:00)
=> trendsum(/host/key,1h:now/h-1h) → suma de hace dos horas (11:00-12:00)
=> trendsum(/host/key,1h:now/h-2h) → suma de hace tres horas (10:00-11:00)
=> trendsum(/host/key,1M:now/M-1y) → suma del mes anterior hace un año