【问题标题】:graphite summarize datapoints石墨总结数据点
【发布时间】:2012-11-27 17:07:50
【问题描述】:

我正在使用graphite 收集数据,我想检索一段时间内某些事件的总数。比如说,每周的登录次数。

但是,我只需要总数,不需要查看它随着时间的推移如何演变。

当我使用 from=-1w&target=summarize(stats.events.login.success,"1w")&format=json 之类的东西时,我仍然会得到 两个 数据点,而不是一个。

有没有办法从summarize 函数中获取单个数据点?还是使用不同的函数返回单个数据点值?

【问题讨论】:

    标签: graphite


    【解决方案1】:

    这里的问题是,summary 默认不与 from 字段对齐。

    summarize(seriesList, intervalString, func='sum', alignToFrom=False)
    

    如果你这样做

    from=-1w&target=summarize(stats.events.login.success,"1w","sum",true)&format=json
    

    您应该只获得一个数据点。它现在正在做的是将您的存储桶与从您的 from 参数开始的不适合周范围内的日期对齐,因此您最终得到 2 个存储桶。来自graphite docs上的总结:

    默认情况下,桶是通过四舍五入到最接近的间隔来计算的。 这适用于小于一天的间隔。例如,22:32 22:00-23:00 时间隔=1 小时,最终会在桶中。

    传递 alignToFrom=true 将改为创建从 从时间。在这种情况下,22:32 的存储桶取决于 from 时间。如果 from=6:30 则 22:32 的 1 小时时段为 22:30-23:30。

    【讨论】:

    • 谢谢@mmrobins。我通过反复试验发现了这一点,但没有机会在这里更新答案。不得不说,看了好几遍文档,还是没有完全理解(特别是为什么小于1天的时间间隔会有所不同,但不大于...)
    • 我认为较小的间隔没有什么不同,只是更直观。问题是对于每周间隔,桶应该从哪里开始不太直观。至少对我来说,在每周级别进行总结时,它似乎在星期四进行,这绝对不是一个直观的日子。当按月计算时,它似乎在每个月的 16 号。我不确定他们如何决定以大于一天的时间间隔在哪里创建存储桶,但这绝对不是我所期望的,所以在使用更大的时间间隔时,我大部分时间都必须设置 alignToFrom=true。
    • 是的,也许只有我一个人,但默认对齐它对我来说更有意义,并且只有在你需要它而不是相反时才让它不对齐/圆形。也许想法是,如果您想要按小时汇总,您希望它与一天中的确切时间(14:00、15:00 等)对齐,而不是从当前时间开始按小时间隔。然而,同样的逻辑不适用于更长的时间,比如几周。无论如何,只要我知道如何解决它,我就相当高兴。再次感谢您的帮助@mmrobins。
    【解决方案2】:

    所以对我来说,它把每周的周三和每月的 15 日、16 日或 17 日分开。另外我的似乎忽略了 alignToFrom 值。同事的想法可能是基于安装日期或 whispher db 首次实例化的时间。我可以相信一周中的某天可能是这种情况,但我怀疑我们都在月中安装了东西。

    【讨论】:

    • 没关系,修复了不尊重 alignToFrom 的问题,我不得不将值括在引号中。即只是做一个直截了当的“真实”。但是默认值还是很奇怪。
    猜你喜欢
    • 2012-07-13
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    相关资源
    最近更新 更多