全部产品

查询数据

更新时间:2017-08-15 16:18:20   分享:   

数据查询

请求路径 请求方法 说明
/api/query POST 查询数据

请求内容为 JSON 格式,说明如下:

名字 数据类型 是否必须 描述 举例
start Integer 必选 开始时间,单位秒 1499158925
end Integer 可选 结束时间,单位秒,默认值为 HiTSDB 服务器当前时间 1499162916
queries Array 必选 子查询数组 见子查询说明

子查询 JSON 格式,说明如下:

名字 数据类型 是否必需 描述 举例
aggregator String 必需 聚合函数,见下面说明 sum
metric String 必需 指标名 sys.cpu0
rate Boolean 可选 默认为 false,是否计算返回相邻点的斜率,例如当查询值为总请求量,需要查看其 QPS 的时候使用 true
downsample String 可选 时间维度降精度采样 60m-avg
tags Map 可选 指定 tag -
filters List 可选 过滤器 -

说明:downsample、tags 和 filters下面单独进行说明。

downsample 说明

当查询的时间范围比较长,只需返回一定精度的数据时使用

  1. 格式:<interval><units>-<aggregator>[-fill policy]
  • interval:指数值,如5,60等

  • units:s 代表秒,m 代表分,h 代表小时,d 代表天

  • 插值描述:

    在计算时当遇到缺点,会采取插值的方法补充,插值发生在降精度以及聚合2个阶段。

    • 比如降精度时downsample 为10秒(10s),0、1、2、4、8的数据点做计算时,会插入3、5、6、7、9时刻的值。

    • 比如聚合时有2条时间线,line1:0,10,20,30,line2:0,20,30,第二条时间线缺10这个时刻的值,那么会进行插值。

fill policy 插值描述:

名称 描述
none 默认行为,即不插值
nan double 无意义值
null double 无意义值时用 null 代替
zero 插入0

aggregator 说明

aggregator 在降精度和多条时间线聚合时使用

算子 描述 插值方法
avg 平均值 线性插值(斜率拟合)
count 数据点数 插0
dev 标准差 线性插值
first 取第一个值,仅用于降精度 downsampling -
last 取最后一个值,仅用于降精度 downsampling -
mimmin 最小值 插最大值
mimmax 最大值 插最小值
min 最小值 线性插值
max 最大值 线性插值
none 不做计算 插0
p50 50%的值都大于 线性插值
p75 75%的值都大于 线性插值
p90 90%的值都大于 线性插值
p95 95%的值都大于 线性插值
p99 99%的值都大于 线性插值
p999 999%的值都大于 线性插值
sum 求和 线性插值
zimsum 求和 插0

降精度downsample举例: 1m-avg,1h-sum-zero

filters 说明

有2种方法可以指定

第一种方法在指定 tagk 时指定。

  1. tagk=*,对 tagk下面的 tagv 做 groupby,相同的 tagv 做聚合。

  2. tagk=tagv1|tagv2,分别对 tagk 下面的 tagv1 和 tagv2 数据做聚合。

第二种方法是使用 JSON 格式指定 Filter,说明如下:

名字 类型 是否必选 描述 举例
type String 必选 filter类型,见下面说明 regexp
tagk String 必选 指定 tagk 名 host
filter String 必选 filter 表达式 web.*.mysite.com
groupBy Boolean 可选 是否对 tagv 做 groupBy,默认为 false false

JSON 举例:

  1. {
  2. "type": "regexp",
  3. "filter": "web[0-9]+.lax.mysite.com",
  4. "tagk": "host",
  5. "groupBy": false
  6. }

Filter 类型说明:

名称 filter 举例 说明
literal_or web01丨web02 分别对多个 tagv 做聚合,区分大小写
not_literal_or web01丨web02 分别对不是指定 tagv 做聚合,区分大小写
wildcard *mysite.com 分别对满足通配符的 tagv 做聚合,区分大小写
regexp web[0-9].mysite.com 分别对满足正则表达式的 tagv 做聚合
  • 不包含 Filter 的查询举例:

    1. {
    2. "start": 1356998400,
    3. "end": 1356998460,
    4. "queries": [
    5. {
    6. "aggregator": "sum",
    7. "metric": "sys.cpu.0",
    8. "rate": "true",
    9. "tags": {
    10. "host": "*",
    11. "dc": "lga"
    12. }
    13. }
    14. ]
    15. }
  • 包含 Filter 的查询举例:

    1. {
    2. "start": 1356998400,
    3. "end": 1356998460,
    4. "queries": [
    5. {
    6. "aggregator": "sum",
    7. "metric": "sys.cpu.0",
    8. "rate": "true",
    9. "filters": [
    10. {
    11. "type":"wildcard",
    12. "tagk":"host",
    13. "filter":"*",
    14. "groupBy":true
    15. },
    16. {
    17. "type":"literal_or",
    18. "tagk":"dc",
    19. "filter":"lga|lga1|lga2",
    20. "groupBy":false
    21. },
    22. ]
    23. }
    24. ]
    25. }

查询返回说明

查询成功 HTTP 响应码为 200,响应内容为 JSON 格式数据,说明如下:

名称 描述
metric 指标名
tags tagv 未做聚合的 tag
aggregateTags tagv 做了聚合了的 tag
dps 数据点对

返回结果 JSON 举例

  1. [
  2. {
  3. "metric": "tsd.hbase.puts",
  4. "tags": {"appName": "hitsdb"},
  5. "aggregateTags": [
  6. "host"
  7. ],
  8. "dps": {
  9. "1365966001": 25595461080,
  10. "1365966061": 25595542522,
  11. "1365966062": 25595543979,
  12. "1365973801": 25717417859
  13. }
  14. }
  15. ]

Metric,Tagk,Tagv 查询

请求路径 请求方法 说明
/api/suggest POST 查询Metric,Tagk,Tagv

请求说明

名称 类型 说明 举例
type String 需要查询的类型,metrics,tagk,tagv metrics
q String 前缀过滤 “my_”
max Integer 最大返回个数 4

JSON 样例

  1. {
  2. "type": "metrics",
  3. "q": "my_"
  4. "max": 4
  5. }

响应说明

响应为查询到的字符串数组

  1. [ "my_metric1", "my_metric2", "my_metric3", "my_metric4" ]

tagk 下面的 tagv 查询

请求路径 请求方法 说明
/api/dump_meta POST 查询对应Tagk下面的Tagv

请求 JSON 说明

名称 类型 说明 举例
tagkey String 标签 Key “host”
tagvalueprefix String 前缀过滤 “127.0.0”
max Integer 返回最大结果 2

请求 JSON 举例:

  1. {
  2. "tagkey": "host",
  3. "tagvalueprefix": "127.0.0"
  4. "max": 2
  5. }

请求响应 JSON

响应为 Tag 数组

  1. [ {"host": "127.0.0.1"}, {"host": "127.0.0.2"} ]
本文导读目录
本文导读目录
以上内容是否对您有帮助?