Как запросить "все, кроме одного" в графите/grafana

Я играю с grafana, и я хочу создать панель, где я сравниваю данные с одного сервера приложений против среднего из всех других, кроме этого. Что-то вроде:

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

можно ли это сделать? Как?

2 ответов


после прочтения графит URL API docs раздел о подстановочных путей Я не думаю, что есть "все кроме одной" целевой запрос. Однако, если у вас не так много машин, вы можете перечислить их все, кроме исключенного в вашем запросе:

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

или используйте диапазон символов:

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

звучит так, как будто вы хотите отфильтровать список сериалов, вы делаете это включительно, используя функцию "grep" или исключительно используя функцию "exclude"

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

и передайте это в averageSeries

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

вы можете прочитать больше о тех функциях здесь: http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.exclude