curl - 使用 CURL 在 InfluxDB 中插入行

标签 curl influxdb

我有以下从 C# 完成的 POST 请求:

POST http://192.168.123.27:8086/write?db=HWDB HTTP/1.1
Content-Type: text/plain; charset=utf-8
Host: 192.168.123.27:8086
Content-Length: 97
Expect: 100-continue
Connection: Keep-Alive

HARDWARE,CPU=1 count=91i 1456298998307783936
HARDWARE,CPU=2 count=92i 1456298998307783936

我想使用 CURL 执行相同的请求。我正在使用以下命令:

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU="1" value=91, CPU="2" value=92 1422568543702900257"

这将返回错误:

{"error":"unable to parse 'HARDWARE,CPU=1 value=91i, CPU=2 value=92i 1422568543702900257': invalid field format"}

我应该如何更改 CURL 命令才能工作?如果我使用,我正在从 Windows 运行 CURL:

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU=1 value=91"

数据已正确插入 DB。还尝试使用 InfluxDB 文档中的示例从文件中插入:

curl -i -XPOST http://192.168.123.27:8086/write?db=HDWB --data-binary @data.txt

这将返回:

{"error":"partial write:\nunable to parse 'cpu_load_short,host=server02 value=0.
67\r': invalid number\nunable to parse    'cpu_load_short,host=server02,region=us-w
est value=0.55 1422568543702900257\r': bad timestamp"}

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

最佳答案

关于 data.txt 文件,Windows 是这里的关键因素。几乎可以肯定的是,它引入了 CRLF,而不仅仅是行尾的换行符。见 InfluxDB docs了解更多。

至于您帖子顶部的直接示例:

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU="1" value=91, CPU="2" value=92 1422568543702900257"

内容不是valid line protocol format并且永远无法工作。每个点必须在新的一行上,并且不能在点之间共享值。去掉 curl 语法,这是尝试写入:

HARDWARE,CPU="1" value=91, CPU="2" value=92 1422568543702900257

这是实际有效的语法:

HARDWARE,CPU="1" value=91 1422568543702900257
HARDWARE,CPU="2" value=92 1422568543702900257

关于curl - 使用 CURL 在 InfluxDB 中插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596542/

相关文章:

bash - 如何仅在 wget 或 curl 下载较新文件时才执行操作?

influxdb - 在 Influxdb 中将数据从一种保留策略移动到另一种保留策略

time-series - 插入特定时间?

bash - 错误/非法格式或缺少 URL - 在自定义 curl 中传递变量值

php - 使用curl下载大文件时发生 fatal error

curl 错误 1 ​​: Unsupported protocol: https

python - 在 python 中使用 Influxdb 客户端 - 错误 : 'InfluxDBClient' object has no attribute 'create_database' /' get_list_database '

docker - 连接 Kubernetes master,更新 heapster

java - influxdb-java : org. influxdb.InfluxDBIOException : java.net.SocketException:连接由对等方重置:套接字写入错误

authentication - elasticsearch中如何进行token认证?