web-dev-qa-db-fra.com

Comment interroger "tous sauf un" dans graphite / grafana

Je joue avec grafana et je veux créer un panneau où je compare les données d'un serveur d'application avec la moyenne de tous les autres sauf celui-ci. Quelque chose comme:

apps.machine1.someMetric
averageSeries(apps.*.not(machine1).someMetric)

Cela peut-il être fait? Comment?

17
sprugman

On dirait que vous voulez filtrer une liste de séries, vous pouvez le faire inclusivement en utilisant la fonction "grep" ou en utilisant exclusivement la fonction "exclude"

exclude(apps.machine*.someMetric,"machine1")

et passer cela dans averageSeries

averageSeries(exclude(apps.machine*.someMetric,"machine1"))

Vous pouvez en savoir plus sur ces fonctions ici: http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.exclude

40
Scott

Après avoir lu la section de documentation de l'API URL Graphite sur les chemins génériques Je ne pense pas qu'il y ait de requête cible "tout sauf un". Cependant, si vous n'avez pas beaucoup de machines, vous pouvez toutes les répertorier, sauf celles exclues dans votre requête:

apps.machine1.someMetric
averageSeries(apps.{machine2,machine3,machine4,machine5}.someMetric)

Ou utilisez une plage de caractères:

apps.machine1.someMetric
averageSeries(apps.machine[2-5].someMetric)
4
dukebody