使用CURL在InfluxDB中插入行

sar*_*rbo 2 curl influxdb

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

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
Run Code Online (Sandbox Code Playgroud)

我想用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"
Run Code Online (Sandbox Code Playgroud)

这将返回错误:

{"error":"unable to parse 'HARDWARE,CPU=1 value=91i, CPU=2 value=92i 1422568543702900257': invalid field format"}
Run Code Online (Sandbox Code Playgroud)

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

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU=1 value=91"
Run Code Online (Sandbox Code Playgroud)

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

curl -i -XPOST http://192.168.123.27:8086/write?db=HDWB --data-binary @data.txt
Run Code Online (Sandbox Code Playgroud)

这将返回:

{"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"}
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

bec*_*ean 6

关于data.txt文件,Windows是这里的关键因素.几乎可以肯定的是,它引入了CRLF,而不仅仅是在生产线末端引入了换行.有关更多信息,请参阅InfluxDB文档.

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

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU="1" value=91, CPU="2" value=92 1422568543702900257"
Run Code Online (Sandbox Code Playgroud)

内容不是有效的行协议格式,永远不会工作.每个点必须在一个新行上,并且不能在点之间共享值.剥离curl语法,这是尝试写:

HARDWARE,CPU="1" value=91, CPU="2" value=92 1422568543702900257
Run Code Online (Sandbox Code Playgroud)

这是实际有效的语法:

HARDWARE,CPU="1" value=91 1422568543702900257
HARDWARE,CPU="2" value=92 1422568543702900257
Run Code Online (Sandbox Code Playgroud)