Lissage

Autosmooth

FonctionDescriptionExemple
autosmooth()Supprime automatiquement les valeurs parasites tout en préservant la tendance de la métrique.autosmooth(<NOM_MÉTRIQUE>{*})

La fonction autosmooth() applique une moyenne mobile avec un intervalle sélectionné automatiquement. Elle lisse une série temporelle tout en préservant sa tendance. Dans cet exemple, la fonction choisit l’intervalle optimal pour lisser la série temporelle :

Illustration d'autosmooth

Lorsque la fonction est utilisée sur une requête group by, par exemple avg by, le même intervalle appliqué à toutes les séries temporelles. Lorsque la fonction est utilisée sur plusieurs métriques d’un même graphique, différents intervalles peuvent être sélectionnés pour lisser de façon optimale chaque série temporelle de métrique.

L’algorithme est inspiré de l’algorithme ASAP. Vous pouvez en savoir plus dans cet article de blog (en anglais).

La fonction autosmooth() ne peut pas être utilisée dans les monitors. L’intervalle étant choisi de façon dynamique, le résultat de l’application de la fonction peut changer d’une minute à l’autre : il est donc difficile de définir un seuil, et les alertes risqueraient de se déclencher trop fréquemment.

Moyenne mobile avec pondération exponentielle (EWMA)

Ewma 3

FonctionDescriptionExemple
ewma_3()Calcule la moyenne mobile avec pondération exponentielle sur un intervalle de 3.ewma_3(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, ewma_3() utilise les 3 derniers points de données pour calculer la moyenne.

Exemple :

Si une métrique 10 + x%10 {*} s’incrémente de 1 à partir de 10 puis revient à 10 après 10 points de données, alors ewma3(10 + x%10 {*}) donne le graphique suivant :

EWMA3

Ewma 5

FonctionDescriptionExemple
ewma_5()Calcule la moyenne mobile avec pondération exponentielle sur un intervalle de 5.ewma_5(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, ewma_5() utilise les 5 derniers points de données pour calculer la moyenne.

Exemple :

Si une métrique 10 + x%10 {*} s’incrémente de 1 à partir de 10 puis revient à 10 après 10 points de données, alors ewma5(10 + x%10 {*}) donne le graphique suivant :

EWMA5

Ewma 7

FonctionDescriptionExemple
ewma_7()Calcule la moyenne mobile avec pondération exponentielle sur un intervalle de 7.ewma_7(<METRIC_NAME>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, ewma_7() utilise les 7 derniers points de données pour calculer la moyenne.

Ewma 10

FonctionDescriptionExemple
ewma_10()Calcule la moyenne mobile avec pondération exponentielle sur un intervalle de 10.ewma_10(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, ewma_10() utilise les 10 derniers points de données pour calculer la moyenne.

Exemple :

Si une métrique 10 + x%10 {*} s’incrémente de 1 à partir de 10 puis revient à 10 après 10 points de données, alors ewma10(10 + x%10 {*}) donne le graphique suivant :

EWMA10

Ewma 20

FonctionDescriptionExemple
ewma_20()Calcule la moyenne mobile avec pondération exponentielle sur un intervalle de 20.ewma_20(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, ewma_20() utilise les 20 derniers points de données pour calculer la moyenne.

Exemple :

Si une métrique 10 + x%10 {*} s’incrémente de 1 à partir de 10 puis revient à 10 après 10 points de données, alors ewma20(10 + x%10 {*}) donne le graphique suivant :

EWMA20

Médiane

Median 3

FonctionDescriptionExemple
median_3()Médiane mobile avec un intervalle de 3.median_3(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, median_3() utilise les 3 derniers points de données pour calculer la valeur médiane.

Median 5

FonctionDescriptionExemple
median_5()Médiane mobile avec un intervalle de 5.median_5(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, median_5() utilise les 5 derniers points de données pour calculer la valeur médiane.

Median 7

FonctionDescriptionExemple
median_7()Médiane mobile avec un intervalle de 7.median_7(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, median_7() utilise les 7 derniers points de données pour calculer la valeur médiane.

Median 9

FonctionDescriptionExemple
median_9()Médiane mobile avec un intervalle de 9.median_9(<NOM_MÉTRIQUE>{*})

Remarque : la valeur de l’intervalle correspond au nombre de points de données. Par conséquent, median_9() utilise les 9 derniers points de données pour calculer la valeur médiane.

Pondéré

La fonction Weighted() n'est disponible que lors de l'interrogation de `SUM BY` sur des métriques de type gauge.
FonctionDescriptionExemple
weighted()Supprime automatiquement les valeurs parasites tout en préservant le poids des tags transitoires.sum:(<GAUGE_METRIC_NAME>{*}).weighted()

La fonction weighted() tient compte de la courte durée de vie des valeurs de tag transitoires et fluctuantes lors de l’addition de métriques de type gauge dans l’espace afin d’éviter les pics artificiels.

Cette fonction est automatiquement ajoutée aux requêtes sur des métriques de type gauge lorsque les deux conditions suivantes sont respectées :

  1. La métrique possède un intervalle dʼenvoi régulier et cohérent, qui est également spécifié dans Metrics Summary
  2. La métrique est agrégée avec SUM by (par exemple, sum: mygaugemetric{*})

Voici un exemple de graphique de la requête originale avec des pics inexacts (en violet) et de la requête avec le calcul correctement pondéré (en vert) :

Exemple de graphique comparant des requêtes avec et sans le modificateur pondéré

Pour en savoir plus sur le modificateur weighted(), consultez la section Comment fonctionne weighted() ?.

Autres fonctions