Как запросить "все, кроме одного" в графите/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