我正在使用石墨来收集数据,并且我想检索一段时间内某些事件的总数。比如说,每周的登录次数。
但是,我只需要总数,不需要看它如何随着时间的推移而演变。
当我使用类似的东西时,from=-1w&target=summarize(stats.events.login.success,"1w")&format=json
我仍然得到两个数据点,而不是一个。
有没有办法从函数中获取单个数据点?summarize
或使用不同的函数返回单个数据点值?
这里的问题是,summary 默认情况下与 from 字段不对齐。
summarize(seriesList, intervalString, func='sum', alignToFrom=False)
如果你这样做
from=-1w&target=summarize(stats.events.login.success,"1w","sum",true)&format=json
你应该只得到一个数据点。它现在正在做的是将您的存储桶与从您的 from 参数开始的不适合一周范围内的日期对齐,因此您最终得到 2 个存储桶。从石墨文档总结:
默认情况下,桶是通过四舍五入到最接近的间隔来计算的。这适用于小于一天的间隔。例如,当间隔 = 1 小时时,22:32 将最终进入存储桶 22:00-23:00。
传递 alignToFrom=true 将改为从 from 时间开始创建存储桶。在这种情况下,22:32 的存储桶取决于开始时间。如果 from=6:30 则 22:32 的 1 小时时段为 22:30-23:30。
所以对我来说,它把每周的周三和每月的 15 日、16 日或 17 日分开。另外我的似乎忽略了 alignToFrom 值。同事的想法可能是基于安装日期或 whispher db 首次实例化的时间。我可以相信一周中的某天可能是这种情况,但我怀疑我们都在月中安装了东西。