1

我对 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}
    }
    ]

我不确定聚合器中的“总和”究竟会做什么,因为它会返回一个空内容。反正我不需要总和,但在文档中提到它是一个“必填”字段。但是,我得到了所有数据点及其值。仍然不确定 aggregatorTags 以及为什么需要它以及如何省略它并在指定时间内获取与该主机对应的数据点。提前致谢!

4

1 回答 1

1

事实上,聚合器在您的查询中是必需的,但这并不意味着它会一直被使用。在您的情况下,正如您所注意到的,它只是被忽略了,您会收到您首先提供的数据点。

例如,如果您的查询没有指定主机标签和它的值,那么聚合器将发挥真正的作用。在这种情况下,OpenTSDB 会在为您返回它们之前对两个主机的值求和,并且为了清楚起见,字段“aggregateTags”将填充它在总和中使用的主机。

于 2015-03-11T11:38:58.763 回答