influxdb 的 web api 操作

influxdb 提供了操作 influxdb 的api 接口,在实际使用中,可以将请求写入代码中,通过其他编程语言来模拟HTTP请求
为了方便,示例当中也是使用curl(模拟web请求的一个工具!)这个工具来模拟HTTP 请求。
一,数据库操作
# 创建数据库
curl -POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
# 删除数据库,相当于模拟 web api (post) 请求
curl -POST http://localhost:8086/query --data-urlencode "q=DROP DATABASE mydb"
#向数据库 添加数据请求(InfluxDB规定格式) 首先是表名,后面是tags,然后是field,最后是时间戳。tags、field和时间戳三者之间以空格相分隔
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
二,表操作
#向数据库插入多条数据(第一条第二条使用同样的时间戳)
'''
    第一条指定tag为host,值为server02,第二条指定tag为host和region,值分别为server02和us-west,第三条指定tag为direction,host,region,值分别为:in,server01,us-west
'''
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'
三,InfluxDB进行HTTP API查询方法
#使用HTTP API在InfluxDB进行查询主要是发送 GET 请求到 InfluxDB的 /query 端 q之后 代表执行的查询语句。
#在浏览器执行后,会返回json格式的串 如果查询出错的话,则会返回关键词“error”+错误信息。
curl -GET 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"

# 多条语句查询 需要':'隔开
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west';
SELECT count(value) FROM cpu_load_short WHERE region='us-west'"

#在使用HTTP查询时可以使用 epoch 参数指定输出的时间格式。可选值有 epoch=[h,m,s,ms,u,ns]。
# s 代表是秒
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"

#使用 chunk_size 参数来指定每次结果的大小。
#chunk_size=200 表示每次返回200个点的数据
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "chunk_size=200" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"

四,api responses
1)2xx:204代表no content,200代表InfluxDB可以接收请求但是没有完成请求。一般会在body体中带有出错信息。
2)4xx:InfluxDB不能解析请求。
3)5xx:系统出现错误。

 

posted @ 2018-08-26 12:14  十七楼的羊  阅读(829)  评论(0编辑  收藏  举报