OpenTSDB使用总结-(3)

查询数据

功能介绍

从OpenTSDB数据库中查询数据。
URI

URI格式

POST {OpenTSDB URL}/api/query

请求

请求样例

{
    "start": 1504527820,
    "end": 1504557820,
    "queries": [
        {
            "aggregator": "sum",
            "metric": "cpu.system",
            "rate": "true",
            "filters": [
                {
                   "type":"regexp",
                   "tagk":"host",
                   "filter":"web[0-9]+.lax.mysite.com",
                   "groupBy":true
                },
                {
                   "type":"literal_or",
                   "tagk":"dc",
                   "filter":"lax|dal",
                   "groupBy":false
                },
            ]
        }
    ]
}

参数说明

表1 请求参数说明

名称类型是否必须描述
startInteger起始时间,单位秒。查询结果包含该时间的值。 说明: 建议使用4334400秒到4291718400秒之间的时间,即从1970/02/20 12:00:00到2106/01/01 00:00:00,也可以为0。否则可能导致查询结果不正确。
endInteger结束时间,单位秒,默认值为OpenTSDB的当前系统时间。查询结果包含该时间的值。 说明: 建议使用4334400秒到4291718400秒之间的时间,即从1970/02/20 12:00:00到2106/01/01 00:00:00。否则可能导致查询结果不正确。
queriesArray可以有多个查询,请参见[表2]。
deleteBoolean如果为true,符合条件的查询结果数据都会被删除。 说明: 删除数据是以一小时的数据为单位的。即查询结果关联的所有小时的数据都会被删除。
noAnnotationsBoolean是否返回注释信息。 true:不返回。false:返回。 默认为false。
globalAnnotationsBoolean是否返回时间跨度内的全局注释。 true:返回。false:不返回。 默认为false。
showTSUIDsBoolean是否在结果中返回与时间序列关联的TSUID。 true:如果多个时间序列被聚合成一个集合,则多个TSUID将以排序方式返回。false:不返回。 默认为false。
showSummaryBoolean是否在结果中返回时间摘要,详细信息请参见http://opentsdb.net/docs/build/html/user_guide/query/stats.html true:返回。false:不返回。 默认为false。
showStatsBoolean是否在结果中返回详细时间,详细信息请参见http://opentsdb.net/docs/build/html/user_guide/query/stats.html true:返回。false:不返回。 默认为false。
showQueryBoolean是否返回带查询结果的原始子查询。 true:返回。false:不返回。 默认为false。
msResolutionBoolean默认情况下,查询结果中的时间戳是以秒为单位的。如果设置为true,则查询结果中的时间戳以毫秒为单位。

表2 子查询参数说明

名称类型是否必须描述
aggregatorString聚合函数,请参见aggregator说明
metricString指标项。
rateBoolean是否返回倾斜率。 true:返回。false:不返回。 默认为false。
downsampleString降时间精度采样,请参见downsample说明
filtersList过滤器,可以设置多个过滤器,请参见表5
explicitTagsBoolean是否只返回filter指定的tag。 true:返回。false:不返回。 默认为false。
useMultiGetsBoolean是否使用MultiGet方式查询数据,默认为false。只有当“filters”的“type”为“literal_or”,同时“explicitTags”为“true”时才会起作用。
downsample说明-重采样

当查询的时间跨度很大,例如每秒都将温度作为数据写入OpenTSDB,每个小时会产生3600条数据点,当查询一周的数据时,会返回604800个数据点。展示如此多数据会显得很乱,通常也不需要这样精确的数据。使用降精度的方式将一段时间的数据点聚合后当作一个数据点,比如将每个小时的数据聚合为1个数据点,这样就会只显示168个数据点。

格式:

<Interval><units>-<aggregator>[c][-<fill policy>]

  • “Interval” :时间数值,unit:时间单位,s秒,m分,h小时,d天。示例:1h , 30m, 24h

  • “aggregator” :聚合策略,将一段时间点聚合为一个数据点的策略。参见[aggregator说明]。

  • “fill policy” : 补值策略,当使用aggreator计算一段时间内的汇聚值时,遇到中间缺少的数据点时,会使用一定的策略补充数据。补值策略请参见表4

aggregator说明

aggregator在降精度downsample和多条时间线聚合时使用。通过算子将多个数据点汇聚成一个数据点。汇聚的算子请参见表3

表3-算子
算子描述补值方式
avg平均值线性插值
count数据点数补0
dev计算标准偏差线性插值
ep50r3用R-3方法计算的50%都大于线性插值
ep50r7用R-7方法计算的50%都大于线性插值
ep75r3用R-3方法计算的75%都大于线性插值
ep75r7用R-7方法计算的75%都大于线性插值
ep90r3用R-3方法计算的90%都大于线性插值
ep90r7用R-7方法计算的90%都大于线性插值
ep95r3用R-3方法计算的95%都大于线性插值
ep95r7用R-7方法计算的95%都大于线性插值
ep99r3用R-3方法计算的99%都大于线性插值
ep99r7用R-7方法计算的99%都大于线性插值
ep999r3用R-3方法计算的99.9%都大于线性插值
ep999r7用R-7方法计算的99.9%都大于线性插值
first取第一个值-
last取最后一个值-
mimmin最小值补最大值
mimmax最大值补最小值
min最小值线性插值
max最大值线性插值
none不做计算补0
p5050%的值都大于线性插值
p7575%的值都大于线性插值
p9090%的值都大于线性插值
p9595%的值都大于线性插值
p9999%的值都大于线性插值
p99999.9%的值都大于线性插值
sum求和线性插值
zimsum求和补0
表4-补值策略参数
名称描述
none默认,不补值
nan补NaN
null补null
zero补0
表5-filter参数
名称类型是否必须描述示例
typeStringfilter类型,参见表6regexp
tagkString要做filter的tag名host
filterStringfilter的表达式值web[0-9]+.lax.mysite.com
groupByBoolean是否对tagv做groupBy,默认falsefalse
表6-filter-type参数
名称说明示例
literal_ortagv等于或者等于host=literal_or(web01|web02|web03)
not_literal_ortagv不等于或者不等于host= not_literal_or(web01|web02|web03)
wildcardtagv需满足的通配符host=wildcard(*mysite.com)
iwildcard与wildcard作用相反host= iwildcard (*mysite.com)
regexptagv需满足正则表达式regexp(web[0-9].mysite.com)

相应

  • 响应样例
[
    {
        "metric": "tsd.hbase.puts",
        "tags": {
            "host": "tsdb-1.mysite.com"
        },
        "aggregatedTags": [],
        "dps": {
            "1365966001": 3758788892,
            "1365966061": 3758804070,
...
            "1365974281": 3778141673
        }
    },
    {
        "metric": "tsd.hbase.puts",
        "tags": {
            "host": "tsdb-2.mysite.com"
        },
        "aggregatedTags": [],
        "dps": {
            "1365966001": 3902179270,
            "1365966062": 3902197769,
...
            "1365974281": 3922266478
        }
    }
]
  • 参数说明

表7 响应参数说明

名称描述
metric指标名
tags未做聚合的tagv,如果存在聚合,这个值为空。
aggregateTags如果存在聚合,显示做聚合操作的tagv。
dps数据点对,数据点由时间戳和值组成并做了序列化。 说明: 如果值是浮点数,那么是以双精度(Double)方式进行显示,可根据需要转换为单精度(Float)或双精度(Double)浮点数。
annotations注释信息
globalAnnotations时间跨度内的全局注释
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值