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:系统出现错误。