Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

5 Funções de tendência

Funções de tendência, em contraste com as funções de histórico, usam dados de tendência para cálculos.

Tendências armazenam valores agregados por hora. Funções de tendência usam essas médias horárias e, portanto, são úteis para análises de longo prazo.

Os resultados das funções de tendência são armazenados em cache, então múltiplas chamadas para a mesma função com os mesmos parâmetros buscam informações do banco de dados apenas uma vez. O cache de funções de tendência é controlado pelo parâmetro do server TrendFunctionCacheSize.

Triggers que referenciam apenas funções de tendência são avaliados uma vez por menor período de tempo na expressão. Por exemplo, um trigger como

trendavg(/host/key,1d:now/d) > 1 or trendavg(/host/key2,1w:now/w) > 2

será avaliado uma vez por dia. Se o trigger contiver funções de tendência e histórico (ou data e hora e/ou nodata()), ele será calculado de acordo com os princípios usuais.

Todas as funções listadas aqui são suportadas em:

As funções são listadas sem informações adicionais. Clique na função para ver os detalhes completos.

Função Descrição
baselinedev Retorna o número de desvios (pelo algoritmo stddevpop) entre o último período de dados e os mesmos períodos de dados em temporadas anteriores.
baselinewma Calcula a linha de base pela média dos dados do mesmo intervalo de tempo em vários períodos de tempo iguais ('temporadas') usando o algoritmo de média móvel ponderada.
trendavg A média dos valores de tendência dentro do período de tempo definido.
trendcount O número de valores de histórico recuperados com sucesso usados para calcular o valor de tendência dentro do período de tempo definido.
trendmax O máximo nos valores de tendência dentro do período de tempo definido.
trendmin O mínimo nos valores de tendência dentro do período de tempo definido.
trendstl Retorna a taxa de anomalias durante o período de detecção - um valor decimal entre 0 e 1 que é ((número de valores anômalos)/(número total de valores)).
trendsum A soma dos valores de tendência dentro do período de tempo definido.
Parâmetros comuns
  • /host/key é um primeiro parâmetro obrigatório comum
  • período de tempo:deslocamento de tempo é um segundo parâmetro comum, onde:
    • período de tempo - o período de tempo (mínimo '1h'), definido como <N><unidade de tempo> onde N - o número de unidades de tempo, unidade de tempo - h (hora), d (dia), w (semana), M (mês) ou y (ano).
    • deslocamento de tempo - o deslocamento do período de tempo (veja exemplos de funções)

Detalhes da função

Algumas observações gerais sobre os parâmetros da função:

  • Os parâmetros da função são separados por vírgula
  • Parâmetros opcionais da função (ou partes do parâmetro) são indicados por < >
  • Parâmetros específicos da função são descritos com cada função
  • Os parâmetros /host/key e período de tempo:deslocamento de tempo nunca devem ser colocados entre aspas
baselinedev(/host/key,data period:time shift,season unit,num seasons)

Retorna o número de desvios (pelo algoritmo stddevpop) entre o último período de dados e os mesmos períodos de dados em temporadas anteriores.

Parâmetros:

  • Veja parâmetros comuns;
  • data period - o período de coleta de dados dentro de uma temporada, definido como <N><time unit> onde:
    N - o número de unidades de tempo
    time unit - h (hora), d (dia), w (semana), M (mês) ou y (ano), deve ser igual ou menor que a temporada
  • season unit - a duração de uma temporada (h, d, w, M, y), não pode ser menor que o período de dados;
  • num seasons - o número de temporadas a serem avaliadas.

Exemplos:

baselinedev(/host/key,1d:now/d,"M",6) #calcula o número de desvios padrão (população) entre o dia anterior e o mesmo dia nos 6 meses anteriores. Se a data não existir em um mês anterior, o último dia do mês será usado (31 de julho será analisado contra 31 de janeiro, 28 de fevereiro,... 30 de junho)
       baselinedev(/host/key,1h:now/h,"d",10)  #calcula o número de desvios padrão (população) entre a hora anterior e as mesmas horas ao longo do período de dez dias antes de ontem
baselinewma(/host/key,data period:time shift,season unit,num seasons)

Calcula a linha de base pela média dos dados do mesmo período em vários períodos de tempo iguais ('temporadas') usando o algoritmo de média móvel ponderada.

Parâmetros:

  • Veja parâmetros comuns;
  • data period - o período de coleta de dados dentro de uma temporada, definido como <N><unidade de tempo> onde:
    N - o número de unidades de tempo
    unidade de tempo - h (hora), d (dia), w (semana), M (mês) ou y (ano), deve ser igual ou menor que a temporada
    Time shift - o deslocamento do período de tempo, define o final do período de coleta de dados em temporadas (veja exemplos);
  • season unit - a duração de uma temporada (h, d, w, M, y), não pode ser menor que o período de dados;
  • num seasons - o número de temporadas a serem avaliadas.

Exemplos:

baselinewma(/host/key,1h:now/h,"d",3) #calcula a linha de base com base na última hora cheia dentro de um período de 3 dias que terminou ontem. Se "now" for segunda-feira 13:30, os dados de 12:00-12:59 de sexta, sábado e domingo serão analisados
       baselinewma(/host/key,2h:now/h,"d",3) #calcula a linha de base com base nas duas últimas horas dentro de um período de 3 dias que terminou ontem. Se "now" for segunda-feira 13:30, os dados de 11:00-12:59 de sexta, sábado e domingo serão analisados
       baselinewma(/host/key,1d:now/d,"M",4) #calcula a linha de base com base no mesmo dia do mês que 'ontem' nos 4 meses anteriores ao último mês completo. Se a data necessária não existir, o último dia do mês é considerado. Se hoje for 1º de setembro, os dados de 31 de julho, 30 de junho, 31 de maio e 30 de abril serão analisados.
trendavg(/host/key,time period:time shift)

A média dos valores de tendência dentro do período de tempo definido.

Parâmetros:

Exemplos:

trendavg(/host/key,1h:now/h) #a média da hora anterior (ex: 12:00-13:00)
       trendavg(/host/key,1h:now/h-1h) #a média de duas horas atrás (11:00-12:00)
       trendavg(/host/key,1h:now/h-2h) #a média de três horas atrás (10:00-11:00)
       trendavg(/host/key,1M:now/M-1y) #a média do mês anterior há um ano atrás
trendcount(/host/key,período de tempo:deslocamento de tempo)

O número de valores de histórico recuperados com sucesso usados para calcular o valor de tendência dentro do período de tempo definido.

Parâmetros:

Exemplos:

trendcount(/host/key,1h:now/h) #a contagem de valores para a hora anterior (por exemplo, 12:00-13:00)
       trendcount(/host/key,1h:now/h-1h) #a contagem de valores para duas horas atrás (11:00-12:00)
       trendcount(/host/key,1h:now/h-2h) #a contagem de valores para três horas atrás (10:00-11:00)
       trendcount(/host/key,1M:now/M-1y) #a contagem de valores para o mês anterior há um ano
trendmax(/host/key,time period:time shift)

O máximo nos valores de tendência dentro do período de tempo definido.

Parâmetros:

Exemplos:

trendmax(/host/key,1h:now/h) #o máximo para a hora anterior (por exemplo, 12:00-13:00)
       trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calcula a diferença entre os valores máximo e mínimo (delta de tendência) para a hora anterior (12:00-13:00)
       trendmax(/host/key,1h:now/h-1h) #o máximo para duas horas atrás (11:00-12:00)
       trendmax(/host/key,1h:now/h-2h) #o máximo para três horas atrás (10:00-11:00)
       trendmax(/host/key,1M:now/M-1y) #o máximo para o mês anterior há um ano atrás
trendmin(/host/key,time period:time shift)

O mínimo nos valores de tendência dentro do período de tempo definido.

Parâmetros:

Exemplos:

trendmin(/host/key,1h:now/h) #o mínimo para a hora anterior (por exemplo, 12:00-13:00)
       trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calcula a diferença entre os valores máximo e mínimo (delta de tendência) para a hora anterior (12:00-13:00)
       trendmin(/host/key,1h:now/h-1h) #o mínimo para duas horas atrás (11:00-12:00)
       trendmin(/host/key,1h:now/h-2h) #o mínimo para três horas atrás (10:00-11:00)
       trendmin(/host/key,1M:now/M-1y) #o mínimo para o mês anterior há um ano atrás
trendstl(/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s window>)

Retorna a taxa de anomalias durante o período de detecção - um valor decimal entre 0 e 1 que é ((o número de valores anômalos)/(número total de valores)).

Parâmetros:

  • Veja parâmetros comuns;
  • eval period - o período de tempo que deve ser decomposto (mínimo '1h'), definido como <N><unidade de tempo> onde
    N - o número de unidades de tempo
    unidade de tempo - h (hora), d (dia), w (semana), M (mês) ou y (ano)
  • detection period - o período de tempo antes do final do eval period para o qual as anomalias são calculadas (mínimo '1h', não pode ser maior que o eval period), definido como <N><unidade de tempo> onde
    N - o número de unidades de tempo
    unidade de tempo - h (hora), d (dia), w (semana)
  • season - o menor período de tempo onde um padrão repetitivo ("sazonalidade") é esperado (mínimo '2h', não pode ser maior que o eval period, o número de entradas no eval period deve ser maior que duas vezes a frequência resultante (season/h)), definido como <N><unidade de tempo> onde
    N - o número de unidades de tempo
    unidade de tempo - h (hora), d (dia), w (semana)
  • deviations - o número de desvios (calculado por devalg) para contar como anomalia (pode ser decimal), (deve ser maior ou igual a 1, o padrão é 3);
  • devalg (deve ser entre aspas duplas) - o algoritmo de desvio, pode ser stddevpop, stddevsamp ou mad (padrão);
  • s window - o intervalo (em lags) da janela loess para extração sazonal (o padrão é 10 * número de entradas no eval period + 1)

Exemplos:

trendstl(/host/key,100h:now/h,10h,2h) #analisa as últimas 100 horas de dados de tendência, encontra a taxa de anomalias para as últimas 10 horas desse período, esperando a periodicidade de 2h, os valores da série residual do período de avaliação são considerados anomalias se atingirem o valor de 3 desvios do MAD dessa série residual
       trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") #analisa o período de 100 horas de dados de tendência, até 10 horas atrás, encontra a taxa de anomalias para todo esse período esperando a periodicidade de 2h, os valores da série residual do período de avaliação são considerados anomalias se atingirem o valor de 2,1 desvios do MAD dessa série residual
       trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) #analisa 100 dias de dados de tendência até um dia atrás, encontra a taxa de anomalias para o período dos últimos 10d desse período, esperando a periodicidade de 1d, os valores da série residual do período de avaliação são considerados anomalias se atingirem o valor de 4 desvios do MAD dessa série residual, substituindo o intervalo padrão da janela loess para extração sazonal de "10 * número de entradas no eval period + 1" pelo intervalo de 10 lags
       trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") #analisa o mês anterior há um ano, encontra a taxa de anomalias do último dia desse período esperando a periodicidade de 2h, os valores da série residual do período de avaliação são considerados anomalias se atingirem o valor de 3 desvios do desvio padrão amostral dessa série residual
trendsum(/host/key,time period:time shift)

A soma dos valores de tendência dentro do período de tempo definido.

Parâmetros:

Exemplos:

trendsum(/host/key,1h:now/h) #a soma para a hora anterior (por exemplo, 12:00-13:00)
       trendsum(/host/key,1h:now/h-1h) #a soma para duas horas atrás (11:00-12:00)
       trendsum(/host/key,1h:now/h-2h) #a soma para três horas atrás (10:00-11:00)
       trendsum(/host/key,1M:now/M-1y) #a soma para o mês anterior há um ano atrás

Veja todas as funções suportadas.