我尝试使用每秒指标(每秒总查询数)来衡量在线小批量处理系统。对于每个批次,将向石墨发送一个度量标准(例如"stats.gauges.<host>.query.count"
)。批处理在几个不同的主机中并行处理,一批数据需要大约5秒钟来处理。
我试过了:
sumSeries(stats.gauges.*.query.count)
,
结果指标比实际值大许多倍; scaleToSeconds(sumSeries(stats.gauges.*.query.count),
1)
,结果指标远低于实际值; nonNegativeDerivative(sumSeries(integral(stats.gauges.*.query.count)))
,与第一种情况相同...... delta=True
param,然后衍生。结果大约高出20%
比实际值那么,如何从批量指标中获取每秒指标?什么是最佳做法?
答案 0 :(得分:0)
您应该使用碳聚合器服务在它们进入时将多个指标一起添加。有一个适合您案例的示例http://graphite.readthedocs.io/en/latest/config-carbon.html#aggregation-rules-conf
由于您的批处理需要5秒才能处理,因此频率应为5以缓冲所有指标。五秒钟后,聚合器将它们相加并写入石墨。