28 votes

Remplacer les données manquantes par des zéros dans les graphiques de Datadog

Il ne semble pas y avoir de moyen de remplacer les données manquantes par des zéros lors de l'utilisation de formules dans Datadog. J'ai essayé de remplir avec des zéros mais cela ne semble pas fonctionner. J'aimerais simplement que mon agent de surveillance dd affiche 0 au lieu de données manquantes lorsqu'il est arrêté.

35voto

stephenlechner Points 1021

Qu'en est-il de la fonction "par défaut" ?

Donc default(sum:foo.bar{hello:world} by {baz}, 0) ou quelque chose du genre ?

0 votes

Mise à jour en 2023 : la fonction "par défaut" n'est plus documentée.

33voto

XAleXOwnZX Points 159

La fonction default_zero() fait ce que vous recherchez. Vous pouvez le taper manuellement, comme le suggère stephenlechner.

J'ai trouvé une autre façon :

  1. Cliquez sur "Avancé" en bas à droite :

  2. Entrez default(a, 0) comme formule, et désactivez la visibilité de la métrique a :

Lorsque vous enregistrez le graphe et le rouvrez, vous verrez que les choses ont été légèrement réorganisées, et vous verrez une section "défaut 0" ajoutée à la fin de la définition de la métrique.

10voto

user1655072 Points 341

Il existe désormais une fonction default_zero() qui peut être utilisée dans Datadog en la modifiant directement via JSON.

4voto

donlobbo Points 75

Il est possible de résoudre cela en changeant la requête en utilisant l'interpolation zéro. Vous pouvez mettre ".fill(zéro)" derrière votre requête dans le json ou choisir l'option depuis l'interface utilisateur. entrer la description de l'image ici

EDIT :

Vous avez raison, l'interpolation ne fonctionne pas lorsque les données ne sont pas disponibles. J'ai eu le même problème au final. Le support de Datadog a dit qu'il n'est pas possible d'afficher zéro lorsqu'il n'y a pas de données pour une métrique. Une demande de fonctionnalité a été faite à ce sujet. Ce serait bien si plus de personnes demandaient cette fonctionnalité, elle serait donc priorisée.

Néanmoins, j'ai essayé de créer une solution de contournement en ajoutant une deuxième métrique qui a toujours des données comme deuxième requête et en ajoutant une formule ((b - b) + a) qui annule la deuxième requête, mais lorsque des données sont présentes dans la requête prévue, elles apparaissent dans le graphique. Cela produira une ligne zéro lorsqu'il n'y a pas de données disponibles.

Scénario sans données : GraphWithNoData

Le seul problème est que lorsque vous avez des données dans la requête prévue, cela semble laid et la ligne zéro disparaît. Comme vous pouvez le voir dans la capture d'écran suivante.

Scénario avec données : GraphWithData

Conclusion : La solution de contournement n'est pas parfaite, mais elle fonctionnera dans certaines situations. Par exemple, remplir les valeurs de requête avec zéro au lieu de (pas de données). J'espère que cette réponse est un peu meilleure pour résoudre le problème.

0 votes

Il semble que cela ne fonctionne pas avec seulement dans le doc ( docs.datadoghq.com/graphing/faq/…) Cela dit "L'interpolation n'est pas nécessaire, lorsque vous tracez une métrique soumise par une seule source : avg:net.bytes_rcvd{host:a} (nous supposons que cet hôte soumet toujours cette métrique avec la même liste de tags)."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X