influxdb简单使用

Deploying InfluxDB using Docker

Influxdb HTTP API

https://docs.influxdata.com/influxdb/v1.0/guides/

Influxdb的http api的请求端口为: 8086

Writing Data

https://docs.influxdata.com/influxdb/v1.0/guides/writing_data/

create database

  • curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
    • 使用POST方法
    • url为 /query
    • q 用于设置URL参数
    • CREATE DATABASE mydb为influxdb的语法

writing data

  • curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
    • 使用POST方法
    • url为 /write
    • db=mydb用于指定db名称
    • cpu_load_short 为 measurement, 类似于table, collection的概念
    • host,region为tag key
    • server01, us-west为tag value
    • tag keytag value都会被索引, 类型为string
    • value为field key, 不会被索引
    • 0.64为field value
    • 1434055562000000000 为 timestamp

/write api支持一次写入多条数据或者从文件中读取, 但每条数据必须被组织在单行中

Schema Design

Influxdb是schemaless database(无模式), 但是对于同一个measurement, tag field对应的tag value数据类型必须一致

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'tobeornottobe booleanonly=true'

1
2
3
4
5
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 44f427bc-8f57-11e6-8021-000000000000
X-Influxdb-Version: 1.0.1
Date: Tue, 11 Oct 2016 02:06:06 GMT

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'tobeornottobe booleanonly=5'

1
2
3
4
5
6
7
8
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: 4cbc4d09-8f57-11e6-8022-000000000000
X-Influxdb-Version: 1.0.1
Date: Tue, 11 Oct 2016 02:06:19 GMT
Content-Length: 142

{"error":"field type conflict: input field \"booleanonly\" on measurement \"tobeornottobe\" is type float64, already exists as type boolean"}

Querying Data

https://docs.influxdata.com/influxdb/v1.0/guides/querying_data/

  • 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'"
    • 使用GET方法
    • url为 /query
    • q 用于设置URL参数
    • CREATE DATABASE mydb为influxdb的语法
    • 需要指定db名称
    • 查询语法中tag key, field key需要使用""引起来, tag value需要使用''引起来
    • pretty=true获取JSON格式的输出