我使用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
答案 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)”