从Graphites /render
API获取JSON响应时,它看起来如下。
{
"target": "summarize(sol.count.meter.count, "1day", "sum")",
"datapoints": [
[
null,
1481846400
],,
[
null,
1481932800
],,
[
null,
1482019200
],,
[
null,
1482105600
],,
[
null,
1482192000
],,
[
null,
1482278400
],,
[
1006491,
1482364800
],,
[
1577,
1482451200
],
],
}
我对预期响应的直觉是我会得到一个包含数据点的列表,其中每天有0或1个度量。然而,这不是我得到的。
我不明白为什么我们需要一个嵌套列表来表示数据点? Graphite响应中内部列表的内容是什么?
答案 0 :(得分:1)
石墨的json输出格式可以定义为度量系列数组,每个度量系列都是一个对象,其中包含' id / name称为 target 和数据点数组,最后每个 datapoint是一个对应值和时间戳的数组。
[
{
"datapoints": [
[value1, timestamp1],
[value2, timestamp2],
// ...
],
"target": "some.metric.count"
}, {
"datapoints": [
[value9, timestamp99],
[value8, timestamp88],
// ...
],
"target": "some.metric2.count"
},
// ...
]
这种结构是设计理念及其实施的结果:
我对预期响应的直觉是我会得到一个包含数据点的列表,其中每天有0或1个度量。然而,这不是我得到的。
summarize
每个指定时间段减少(使用sum / avg / max / min)数据点,如果桶中的所有值都为空,则最终值等于null
。您可以使用transfomrNulls
将空值替换为所需的值。