Graphite summarize()函数结果对于不同的'来自'值

时间:2015-07-02 09:09:16

标签: analytics graphite statsd

我使用Graphite记录用户登录信息。

当我运行以下内容时:

render?target=summarize(stats_counts.login.success,"1day")&format=json&from=-1days

我得到了结果:

[
  {
    "target": "summarize(stats_counts.login.success, \"1day\", \"sum\")",
    "datapoints": [
      [
        5,
        1435708800
      ],
      [
        21,
        1435795200
      ]
    ]
  }
]

但是对于以下查询:

render?target=summarize(stats_counts.login.success,"1day")&format=json&from=-7days

我得到了结果:

[
  {
    "target": "summarize(stats_counts.login.success, \"1day\", \"sum\")",
    "datapoints": [
      [
        0,
        1435190400
      ],
      [
        1,
        1435276800
      ],
      [
        0,
        1435363200
      ],
      [
        0,
        1435449600
      ],
      [
        5,
        1435536000
      ],
      [
        16,
        1435622400
      ],
      [
        6,
        1435708800
      ],
      [
        21,
        1435795200
      ]
    ]
  }
]

注意结果中存储桶的值: 1435708800 。 在一个结果中,它是: 5 ,在第二个结果中是: 6

在第一个查询中,我试图获取上周每天的用户登录次数,而在第二次查询中,我试图获取昨天和今天每天的用户登录次数。

造成这种差异的原因是什么?

更新

石墨版本:0.9.10 保留设置:

[carbon]
pattern = ^carbon\.
retentions = 60:90d

[real_time]
priority = 200
pattern = ^stats.*
retentions = 1:34560000

[stats]
priority = 110
pattern = .*
retentions = 1s:24h,1m:7d,10m:1y

1 个答案:

答案 0 :(得分:0)

请尝试将allign添加为true,因为它会基于时间改变它在存储区间隔中获得的数据点数。

默认情况下,存储桶是通过四舍五入到最接近的间隔来计算的。对于间隔小于一天的间隔,此方法效果很好。例如,当间隔= 1小时时,22:32将最终在存储桶22:00-23:00中结束。

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

“ summaryize(ex.cpe.ex.xxx,'30s','avg',true)”