Insert line in InfluxDB using CURL

匿名 (未验证) 提交于 2019-12-03 09:05:37

问题:

I have the following POST request which is done from 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 

I want to do the same request using CURL. I'm using the following command:

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

This will return the error:

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

How should I change the CURL command to work? I'm running CURL from Windows, if I use:

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

data is correctly inserted in DB. Also tried to insert from file using the example from InfluxDB documentation:

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

This will return:

{"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"} 

Content of 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 

回答1:

Regarding the data.txt file, Windows is the key factor here. It is almost certainly introducing a CRLF rather than just a linefeed at the end of the lines. See the InfluxDB docs for more.

As for the direct example at the top of your post:

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

the content is not valid line protocol format and can never work. Each point must be on a new line, and values cannot be shared between points. Stripping out the curl syntax, this is the attempted write:

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

And this is the actual valid syntax:

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



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!