0%

influxdb-API

支持的API client

参考官网

http

创建数据库

curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"

写入数据

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'

配置gzip压缩

InfluxDB支持gzip压缩。要减少网络流量,请考虑以下选项:

  • 要接受来自InfluxDB的压缩数据,请将Accept-Encoding: gzip标头添加到InfluxDB API请求中。
  • 要在将数据发送到InfluxDB之前压缩数据,请将Content-Encoding: gzip标头添加到InfluxDB API请求中。

批量写入

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

从文件写入

通过传递@filename到文件来写入文件中的点curl。文件中的数据应遵循InfluxDB行协议语法。

格式正确的文件(cpu_data.txt)的示例:

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

写入数据cpu_data.txtmydb与数据库:

curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary @cpu_data.txt

注意:如果您的数据文件具有5,000个以上的点,则可能有必要将该文件拆分为几个文件,以便将数据批量写入InfluxDB。默认情况下,HTTP请求在五秒钟后超时。超时后,InfluxDB仍将尝试写入这些点,但是不会确认它们已成功写入。

HTTP响应摘要

  • 2xx:如果收到您的写请求HTTP 204 No Content,那就成功了!
  • 4xx:InfluxDB无法理解该请求。
  • 5xx:系统过载或严重损坏

查询数据

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'"

InfluxDB返回JSON。您的查询结果将显示在”results”数组中。如果发生错误,InfluxDB会设置一个”error”包含错误说明的密钥。

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "cpu_load_short",
                    "columns": [
                        "time",
                        "value"
                    ],
                    "values": [
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            2
                        ],
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            0.55
                        ],
                        [
                            "2015-06-11T20:46:02Z",
                            0.64
                        ]
                    ]
                }
            ]
        }
    ]
}

注意:附加pretty=true到URL会启用精美打印的JSON输出。尽管这对于调试或在使用诸如之类的工具直接查询时很有用curl,但不建议用于生产环境,因为它会消耗不必要的网络带宽。

多个查询

通过单个API调用将多个查询发送到InfluxDB。只需使用分号分隔每个查询,例如:

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'"

返回:

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "cpu_load_short",
                    "columns": [
                        "time",
                        "value"
                    ],
                    "values": [
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            2
                        ],
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            0.55
                        ],
                        [
                            "2015-06-11T20:46:02Z",
                            0.64
                        ]
                    ]
                }
            ]
        },
        {
            "statement_id": 1,
            "series": [
                {
                    "name": "cpu_load_short",
                    "columns": [
                        "time",
                        "count"
                    ],
                    "values": [
                        [
                            "1970-01-01T00:00:00Z",
                            3
                        ]
                    ]
                }
            ]
        }
    ]
}

java

influxdb-java

  • Java 1.8+ (tested with jdk8 and jdk11)
  • Maven 3.0+ (tested with maven 3.5.0)

  org.influxdb
  influxdb-java
  2.17

compile 'org.influxdb:influxdb-java:2.17'

python

influxdb-python

go

influxdb1-client