5 Fonctions de tendance

Les fonctions de tendance, contrairement aux fonctions d’historique, utilisent les données de tendance pour les calculs.

Les tendances stockent des valeurs agrégées horaires. Les fonctions de tendance utilisent ces moyennes horaires et sont donc utiles pour l’analyse à long terme.

Les résultats des fonctions de tendance sont mis en cache, de sorte que plusieurs appels à la même fonction avec les mêmes paramètres ne récupèrent les informations depuis la base de données qu’une seule fois. Le cache des fonctions de tendance est contrôlé par le paramètre serveur TrendFunctionCacheSize.

Les déclencheurs qui référencent uniquement des fonctions de tendance sont évalués une fois selon la plus petite période de temps de l’expression. Par exemple, un déclencheur comme

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

sera évalué une fois par jour. Si le déclencheur contient à la fois des fonctions de tendance et d’historique (ou des fonctions de date et heure et/ou nodata()), il est calculé conformément aux principes habituels.

Toutes les fonctions listées ici sont prises en charge dans :

Les fonctions sont listées sans informations supplémentaires. Cliquez sur la fonction pour voir tous les détails.

Function Description
baselinedev Renvoie le nombre d’écarts (selon l’algorithme stddevpop) entre la dernière période de données et les mêmes périodes de données des saisons précédentes.
baselinewma Calcule la ligne de base en faisant la moyenne des données de la même plage temporelle sur plusieurs périodes de temps égales (« saisons ») à l’aide de l’algorithme de moyenne mobile pondérée.
trendavg La moyenne des valeurs de tendance dans la période définie.
trendcount Le nombre de valeurs d’historique récupérées avec succès utilisées pour calculer la valeur de tendance dans la période définie.
trendmax Le maximum des valeurs de tendance dans la période définie.
trendmin Le minimum des valeurs de tendance dans la période définie.
trendstl Renvoie le taux d’anomalies pendant la période de détection, une valeur décimale comprise entre 0 et 1, soit ((le nombre de valeurs anormales)/(nombre total de valeurs)).
trendsum La somme des valeurs de tendance dans la période définie.
Paramètres communs
  • /host/key est un premier paramètre commun obligatoire
  • time period:time shift est un deuxième paramètre commun, où :
    • time period - la période de temps (minimum « 1h »), définie comme <N><time unit> où N - le nombre d’unités de temps, time unit - h (heure), d (jour), w (semaine), M (mois) ou y (année).
    • time shift - le décalage de période (voir les exemples de fonction)

Détails des fonctions

Quelques remarques générales concernant les paramètres des fonctions :

  • Les paramètres des fonctions sont séparés par une virgule
  • Les paramètres de fonction facultatifs (ou parties de paramètres) sont indiqués par < >
  • Les paramètres spécifiques à chaque fonction sont décrits avec chaque fonction
  • Les paramètres /host/key et time period:time shift ne doivent jamais être placés entre guillemets
baselinedev(/host/key,data period:time shift,season unit,num seasons)

Renvoie le nombre d'écarts (selon l'algorithme stddevpop) entre la dernière période de données et les mêmes périodes de données des saisons précédentes.

Paramètres :

  • Voir les paramètres communs
  • data period - la période de collecte des données au sein d'une saison, définie comme <N><time unit> où :
    N - le nombre d'unités de temps
    time unit - h (heure), d (jour), w (semaine), M (mois) ou y (année), doit être égal ou inférieur à la saison
  • season unit - l'unité calendaire qui définit une saison (h, d, w, M, y) ; ne peut pas être plus petite que data period
  • num seasons - le nombre de saisons à évaluer

Exemples :

baselinedev(/host/key,1d:now/d,"M",6) #calcule le nombre d'écarts-types (population) entre le jour précédent et le même jour des 6 mois précédents. Si la date n'existe pas dans un mois précédent, le dernier jour du mois sera utilisé (Jul,31 sera analysé par rapport à Jan,31, Feb, 28,... June, 30)
baselinedev(/host/key,1h:now/h,"d",10)  #calcule le nombre d'écarts-types de population entre l'heure précédente et la même heure de la journée sur les 10 jours précédents
baselinewma(/host/key,data period:time shift,season unit,num seasons)

Calcule la ligne de base en moyennant les données de la même période temporelle sur plusieurs périodes de temps égales (« saisons ») à l’aide de l’algorithme de moyenne mobile pondérée.

Paramètres :

  • Voir paramètres communs
  • data period - la période de collecte des données au sein d’une saison, définie comme <N><time unit> où :
    N - le nombre d’unités de temps
    time unit - h (heure), d (jour), w (semaine), M (mois) ou y (année), doit être égal ou inférieur à la saison
    Time shift - le décalage temporel, définit la fin de la période de collecte des données en saisons (voir les exemples)
  • season unit - l’unité calendaire qui définit une saison (h, d, w, M, y) ; ne peut pas être inférieure à data period
  • num seasons - le nombre de saisons à évaluer

Exemples :

baselinewma(/host/key,1h:now/h,"d",3) #calcul de la ligne de base à partir de la même heure de la journée sur les 3 derniers jours complets se terminant hier. Si "now" correspond à lundi 13:30, les données de 12:00 à 12:59 de vendredi, samedi et dimanche seront analysées
baselinewma(/host/key,2h:now/h,"d",3) #calcul de la ligne de base à partir de la même plage de deux heures sur les 3 derniers jours complets se terminant hier. Si "now" correspond à lundi 13:30, les données de 11:00 à 12:59 de vendredi, samedi et dimanche seront analysées
baselinewma(/host/key,1d:now/d,"M",4) #calcul de la ligne de base à partir du même jour du mois que « hier » sur les 4 mois précédant le dernier mois complet. Si la date requise n’existe pas, le dernier jour du mois est pris. Si aujourd’hui est le 1er septembre, les données des 31 juillet, 30 juin, 31 mai et 30 avril seront analysées.
trendavg(/host/key,time period:time shift)

La moyenne des valeurs de tendance dans la période définie.

Paramètres :

Exemples :

trendavg(/host/key,1h:now/h) #la moyenne pour l’heure précédente (par ex. 12:00-13:00)
trendavg(/host/key,1h:now/h-1h) #la moyenne pour il y a deux heures (11:00-12:00)
trendavg(/host/key,1h:now/h-2h) #la moyenne pour il y a trois heures (10:00-11:00)
trendavg(/host/key,1M:now/M-1y) #la moyenne pour le mois précédent il y a un an
trendcount(/host/key,time period:time shift)

Le nombre de valeurs d'historique récupérées avec succès utilisées pour calculer la valeur de tendance dans la période définie.

Paramètres :

Exemples :

trendcount(/host/key,1h:now/h) #le nombre de valeurs pour l'heure précédente (p. ex. 12:00-13:00)
trendcount(/host/key,1h:now/h-1h) #le nombre de valeurs pour il y a deux heures (11:00-12:00)
trendcount(/host/key,1h:now/h-2h) #le nombre de valeurs pour il y a trois heures (10:00-11:00)
trendcount(/host/key,1M:now/M-1y) #le nombre de valeurs pour le mois précédent il y a un an
trendmax(/host/key,time period:time shift)

Le maximum des valeurs de tendance dans la période définie.

Paramètres :

Exemples :

trendmax(/host/key,1h:now/h) #le maximum pour l’heure précédente (par ex. 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calculer la différence entre les valeurs maximale et minimale (delta de tendance) pour l’heure précédente (12:00-13:00)
trendmax(/host/key,1h:now/h-1h) #le maximum pour il y a deux heures (11:00-12:00)
trendmax(/host/key,1h:now/h-2h) #le maximum pour il y a trois heures (10:00-11:00)
trendmax(/host/key,1M:now/M-1y) #le maximum pour le mois précédent il y a un an
trendmin(/host/key,time period:time shift)

Le minimum des valeurs de tendance dans la période définie.

Paramètres :

Exemples :

trendmin(/host/key,1h:now/h) #le minimum pour l’heure précédente (p. ex. 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → calculer la différence entre les valeurs maximale et minimale (delta de tendance) pour l’heure précédente (12:00-13:00)
trendmin(/host/key,1h:now/h-1h) #le minimum pour il y a deux heures (11:00-12:00)
trendmin(/host/key,1h:now/h-2h) #le minimum pour il y a trois heures (10:00-11:00)
trendmin(/host/key,1M:now/M-1y) #le minimum pour le mois précédent il y a un an
trendstl(/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s window>)

Renvoie le taux d'anomalies pendant la période de détection - une valeur décimale comprise entre 0 et 1, soit ((le nombre de valeurs anormales)/(le nombre total de valeurs)).

Paramètres :

  • Voir paramètres communs
  • eval period - la période de temps qui doit être décomposée (minimum '1h'), définie comme <N><time unit> où
    N - le nombre d'unités de temps
    time unit - h (heure), d (jour), w (semaine), M (mois) ou y (année)
  • detection period - la période de temps avant la fin de eval period pour laquelle les anomalies sont calculées (minimum '1h', ne peut pas être plus longue que eval period), définie comme <N><time unit> où
    N - le nombre d'unités de temps
    time unit - h (heure), d (jour), w (semaine)
  • season - la plus courte période de temps pour laquelle un motif répétitif ("saison") est attendu (minimum '2h', ne peut pas être plus longue que eval period, le nombre d'entrées dans eval period doit être supérieur à deux fois la fréquence résultante (season/h)), définie comme <N><time unit> où
    N - le nombre d'unités de temps
    time unit - h (heure), d (jour), w (semaine)
  • deviations - le nombre d'écarts (calculés par devalg) à considérer comme une anomalie (peut être décimal), (doit être supérieur ou égal à 1, la valeur par défaut est 3)
  • devalg (doit être entre guillemets doubles) - l'algorithme d'écart, peut être stddevpop, stddevsamp ou mad (par défaut)
  • s window - l'étendue (en retards) de la fenêtre loess pour l'extraction saisonnière (la valeur par défaut est 10 * nombre d'entrées dans eval period + 1)

Exemples :

trendstl(/host/key,100h:now/h,10h,2h) #analyse les 100 dernières heures de données de tendances, trouve le taux d'anomalies pour les 10 dernières heures de cette période, en supposant une périodicité de 2h, les valeurs de la série résiduelle de la période d'évaluation sont considérées comme des anomalies si elles atteignent la valeur de 3 écarts du MAD de cette série résiduelle
trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") #analyse la période de 100 heures de données de tendances, jusqu'à il y a 10 heures, trouve le taux d'anomalies pour toute cette période en supposant une périodicité de 2h, les valeurs de la série résiduelle de la période d'évaluation sont considérées comme des anomalies si elles atteignent la valeur de 2,1 écarts du MAD de cette série résiduelle
trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) #analyse 100 jours de données de tendances jusqu'à il y a un jour, trouve le taux d'anomalies pour la période des 10 derniers jours de cette période, en supposant une périodicité de 1d, les valeurs de la série résiduelle de la période d'évaluation sont considérées comme des anomalies si elles atteignent la valeur de 4 écarts du MAD de cette série résiduelle, en remplaçant l'étendue par défaut de la fenêtre loess pour l'extraction saisonnière de "10 * nombre d'entrées dans eval period + 1" par une étendue de 10 retards
trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") #analyse le mois précédent il y a un an, trouve le taux d'anomalies du dernier jour de cette période en supposant une périodicité de 2h, les valeurs de la série résiduelle de la période d'évaluation sont considérées comme des anomalies si elles atteignent la valeur de 3 écarts de l'écart-type de l'échantillon de cette série résiduelle
trendsum(/host/key,time period:time shift)

La somme des valeurs de tendance dans la période définie.

Paramètres :

Exemples :

trendsum(/host/key,1h:now/h) #la somme pour l’heure précédente (par ex. 12:00-13:00)
trendsum(/host/key,1h:now/h-1h) #la somme pour il y a deux heures (11:00-12:00)
trendsum(/host/key,1h:now/h-2h) #la somme pour il y a trois heures (10:00-11:00)
trendsum(/host/key,1M:now/M-1y) #la somme pour le mois précédent il y a un an

Voir toutes les fonctions prises en charge.