我是OpenTSDB和时间序列数据库的新手。我已经快速浏览了它的文档,但我仍然不清楚某些事情。我基本上对sum等等聚合函数不感兴趣。我必须存储复制滞后,慢查询的数量,SQL机器对每个主机的状态,我存储在这样的标签中的指标::
[
{
"metric":"replicationLag"
"timestamp":new Date.getTime()
"value" : 2.0
"tags": {
"host":acb-em1.db01.nm.xyz.com
}
}
"metric":"slowQuery"
"timestamp":new Date.getTime()
"value" : 4
"tags": {
"host":acb-em1.db01.nm.xyz.com
}
]
我需要对此进行的查询类似于:在特定给定时间范围内复制滞后的值是多少。 1.上面提到的架构是否足够好,或者我能做些什么?
对于这个使用此
请求JSON是
{
"start":1410272307100,
"end":1410340000000,
"queries":[
{
"metric":"slowQuery",
"aggregator":"sum",
"tags":{
"host":"tg-em-db01.nm.flipkart.com"
}
}
]
}
Response content :
[
{
"metric":"slowQuery",
"tags":{
"host":"tg-em-db01.nm.flipkart.com"
},
"aggregateTags":[],
"dps":{"1410327176":0,"1410328026":0,"1410328265":0,"1410328401":0,"1410328488":0}
}
]
我不确定"总和"在聚合器中会做,因为它返回一个空的内容。无论如何,我不需要一笔钱,但在文档中提到它是一个" required"领域。但是我得到了所有的数据点和它们的值。仍然不确定聚合器标签以及为什么需要它以及如何省略它并在指定时间内获取与该主机相对应的数据点。 提前谢谢!
答案 0 :(得分:1)
事实上,在您的查询中需要聚合器,但这并不意味着它将始终被使用。在您的情况下,正如您所注意到的那样,它被忽略了,您收到的数据点就像您首先提供的那样。
例如,如果您的查询未指定主机标记及其值,则聚合器将具有真正的作用。在这种情况下,OpenTSDB会在为您返回主机之前对两个主机的值求和,并使其清楚,字段" aggregateTags"将用它在总和中使用的主机填充。