Fill
Fonction | Description | Exemple |
---|
fill() | Permet d’interpoler les valeurs manquantes d’une métrique. | <NOM_MÉTRIQUE>{*}.fill(<MÉTHODE>, <LIMITE>) |
La fonction fill()
comprend deux paramètres :
MÉTHODE
: la fonction à utiliser comme méthode d’interpolation. Valeurs autorisées :
- linear : renvoie une interpolation linéaire entre le début et la fin de l’intervalle manquant.
- last : remplace l’intervalle manquant par la dernière valeur de celui-ci.
- zero : remplace l’intervalle manquant par un zéro.
- null : désactive l’interpolation.
LIMITE
[facultatif, défaut=300, maximum=600] : la limite d’interpolation (en secondes), c’est-à-dire la taille maximale d’un intervalle manquant que vous souhaitez interpoler.
Default zero
Fonction | Description | Exemple |
---|
default_zero() | Ajoute une valeur par défaut aux métriques creuses. | default_zero(system.load.1{*}) |
La fonction default_zero()
remplit les intervalles vides avec la valeur 0 ou par interpolation, si cette dernière est activée. Remarque : l’interpolation est activée par défaut pour les métriques de type GAUGE
. Comme la plupart des fonctions, la fonction default_zero()
est appliquée après l’agrégation temporelle et spatiale.
Cas d’utilisation
La fonction default_zero()
peut notamment être utilisée pour :
- Aligner des gauges sur la valeur 0 lors de la réalisation d’opérations arithmétiques sur des métriques creuses. Remarque : les métriques de type
COUNT
ou RATE
traitées via as_count()
ou as_rate()
sont toujours alignées sur la valeur 0. L’utilisation de default_zero()
ne modifie pas leur alignement : seules les métriques de type GAUGE
sont affectées. - Rétablir l’état des monitors depuis l’état no-data. Cela fonctionne pour les alertes simples et multiples, mais la valeur 0 ne doit pas causer le déclenchement du monitor. Par exemple, la fonction ne pourrait pas rétablir l’état d’un monitor utilisant la requête
avg(last_10m):avg:system.cpu.idle{*} < 10
, car ce monitor se déclenche (au lieu de rétablir son état) lorsqu’il détecte la valeur 0. Évitez d’utiliser cette fonction pour les monitors de taux d’erreur utilisant une requête as_count()
. Consultez la section as_count() dans les évaluations de monitors pour en savoir plus. - Remplir des intervalles vides dans des séries de métriques creuses (mais non vides) pour des raisons visuelles ou pour ajuster la valeur min/max/moyenne d’une série temporelle dans une évaluation de monitor.
- Afficher la valeur 0 sur le widget Série temporelle en l’absence de données.
Exemple
Pour illustrer le fonctionnement de la fonction default_zero()
, prenons ce point de données unique créé pour une métrique custom avec DogStatsD :
$ echo -n "custom_metric:1|g" | nc -4u -w0 127.0.0.1 8125
Lorsque cette métrique est interrogée sur les 30 dernières minutes, un seul timestamp est enregistré, car un seul des intervalles de cumul de la requête présente un point de données :
avg:custom_metric{*}
+---------------------+---------------+
| Timestamp | custom_metric |
+---------------------+---------------+
| --------- | --------- |
| 2019-04-17 17:45:00 | 1 |
+---------------------+---------------+
La fonction default_zero()
permet d’interpoler ce point de données cinq minutes en avant dans le temps (la limite d’interpolation par défaut pour les gauges), puis de remplir les intervalles vides restant avec des zéros :
default_zero(avg:custom_metric{*})
+---------------------+-----------------------------+
| Timestamp | default_zero(custom_metric) |
+---------------------+-----------------------------+
| --------- | --------- |
| 2019-04-17 17:30:00 | 0 |
| 2019-04-17 17:31:00 | 0 |
...
| 2019-04-17 17:44:00 | 0 |
| 2019-04-17 17:45:00 | 1 |
| 2019-04-17 17:46:00 | 1 |
| 2019-04-17 17:47:00 | 1 |
| 2019-04-17 17:48:00 | 1 |
| 2019-04-17 17:49:00 | 1 |
| 2019-04-17 17:50:00 | 1 |
| 2019-04-17 17:51:00 | 0 |
| 2019-04-17 17:52:00 | 0 |
...
+---------------------+-----------------------------+
Autres fonctions
Consultez les autres fonctions disponibles :