如何在石墨/ grafana中查询"all but one"

spr*_*man 16 graphite grafana

我正在使用grafana,我想创建一个面板,我将来自一个应用服务器的数据与除了那个之外的所有其他应用服务器的平均值进行比较.就像是:

apps.machine1.someMetric
averageSeries(apps.*.not(machine1).someMetric)
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?怎么样?

Sco*_*ott 38

听起来你想要过滤一个seriesList,你可以使用'grep'函数或仅使用'exclude'函数来包含它

exclude(apps.machine*.someMetric,"machine1")
Run Code Online (Sandbox Code Playgroud)

并将其传递给averageSeries

averageSeries(exclude(apps.machine*.someMetric,"machine1"))
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关这些功能的更多信息:http: //graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.exclude


duk*_*ody 6

在阅读Graphite URL API 文档中有关通配符路径的部分后,我认为不存在任何“除一个之外的所有”目标查询。但是,如果您没有很多机器,您可以列出所有机器,但查询中排除的机器除外:

apps.machine1.someMetric
averageSeries(apps.{machine2,machine3,machine4,machine5}.someMetric)
Run Code Online (Sandbox Code Playgroud)

或者使用字符范围:

apps.machine1.someMetric
averageSeries(apps.machine[2-5].someMetric)
Run Code Online (Sandbox Code Playgroud)