我正在玩grafana,我想创建一个面板,我将来自一个应用服务器的数据与除了那个之外的所有其他应用服务器的平均值进行比较。类似的东西:
apps.machine1.someMetric
averageSeries(apps.*.not(machine1).someMetric)
能做到吗?怎么样?
答案 0 :(得分:32)
听起来你想要过滤一个seriesList,你可以使用'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
答案 1 :(得分:4)
在阅读Graphite URL API docs section about wildcard paths之后,我认为除了一个之外,还有其他所有的"目标查询。但是,如果您没有多台计算机,则可以在查询中列出所有计算机但排除在外的计算机:
apps.machine1.someMetric
averageSeries(apps.{machine2,machine3,machine4,machine5}.someMetric)
或使用字符范围:
apps.machine1.someMetric
averageSeries(apps.machine[2-5].someMetric)