石墨-计算包含多个值的两个系列的差

问题描述

我正在使用Graphite和Grafana绘制一些指标。给定以下示例,是否可以输出包含多个值的差异?

service.cluster1.host1.quota
service.cluster1.host1.usage
service.cluster1.host2.quota
service.cluster1.host2.usage
service.cluster1.host3.quota
service.cluster1.host3.usage

我正在尝试为每个主机输出单独的值(基于上一个值)(即配额-使用情况)。我可以使用“ host#”标记通配符来显示两个单独系列的所有数据,但是我不确定如何输出每个主机的差异。然后,我的目标是使用limit()仅显示前几个。我一直在研究诸如groupByNode()和diffSeries()之类的函数,但没有找到解决方案。我试图避免为每个主机定义单独的系列。

解决方法

我使用reduceSeries()和mapSeries()(鉴于先前的示例数据)偶然发现以下解决方案:

limit(sortBy(aliasByTags(reduceSeries(mapSeries(service.cluster1.*.*,2),'diffSeries',3,'quota','usage'),'last',false),10)