我有一个Graphite数据的seriesList,它由UNIX风格的时间戳组成。 (具体来说,根据sensu-plugins-puppet收集的Sensu指标,server.foo.puppet.time.last_run
处的数据包括p最后一次在服务器“ foo”上运行的时间。)我想要的数据是“已经有多长时间了自上次玩偶以来?”
通过使用查询diffSeries(identity("tmp"), server.foo.puppet.time.last_run))
从身份函数中减去我的last_run数据,我可以使用Grafana将其一次绘制在一台服务器上。但是,我想要的是一个使用通配符一次显示所有服务器的图。
我尝试过的方法不起作用:
diffSeries(identity("tmp"), server.*.puppet.time.last_run))
(diffSeries仅返回一个序列,因此这将导致所有服务器数据的组合变得难以理解)identity("server.*.currenttime")
或time("server.*.currenttime")
为每个服务器生成一个标识序列,以便可以成对地从该服务器的标识序列中减去每个last_run系列,也许使用map / reduce或类似的方法(但是只生成一个系列,并且名称中带有文字星号)offset(server.*.puppet.time.last_run, identity("blah"))
当然不起作用,因为偏移量只需要一个常数有没有办法做到这一点,而无需编写一个新的sensu指标,对于每个服务器,该指标仅将当前时间戳返回为数据?我知道Unix时间戳在Graphite / Whisper中无处不在,所以这似乎很愚蠢,但这只是唯一的想法。谢谢!