我正在尝试发布此数据:
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1495179651177999872
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=444 1495179651203000064
POST Url 看起来像那样
http://influx.local:8086/write?db=testdb&u=myuser&p=myasswd
原始回复:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: 4a1802d2-3ebd-11e7-8030-000000000000
X-Influxdb-Version: 1.1.4
Date: Mon, 22 May 2017 07:07:17 GMT
Content-Length: 147
{"error":"partial write:\nunable to parse 'my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1495179651177999872\r': bad timestamp"}
时间戳看起来对我有用。
如果我只张贴一行(不是上面例子中的两行),它的效果非常好!
我也想知道在时间戳之后错误日志末尾的“\ r”是做什么的。因为我正在写“\ n”。
有趣的是,直到最近我才写入InfluxDB没有任何问题。不涉及版本升级。
我正在运行InfluxDB 1.x(不确定究竟是哪个版本)
要完成混淆......如果我完全省略时间戳(用于测试目的),它仍然不起作用:
{"error":"partial write:\nunable to parse 'my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123\r': invalid number"}
更新:出于测试目的,我安装了InfluxDb 1.2.7(Windows Standalone)
有效负载与以前相同
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1439856000
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=444 1439856001
Influx报告回复:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: eca5283a-3ec4-11e7-8029-000000000000
X-Influxdb-Version: 1.2.4
Date: Mon, 22 May 2017 08:01:56 GMT
Content-Length: 147
{"error":"partial write: unable to parse 'my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1439856000\r': bad timestamp dropped=0"}
使用Fiddler Composer进行的所有这些测试。
答案 0 :(得分:4)
查看包含答案的评论。但是,这是怎么回事:
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1495179651177999872\r\n
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=444 1495179651203000064
问题在于回车符-也称为换行符(\ n)和换行符(\ r)将两个条目分开。 Windows(CRLF)使用此约定。解决方案是确保您使用“ Linux”约定作为行尾。
即使只发送一行,换行字符也是有问题的。经常看到的一个不相关的问题是“无效的布尔值”。如果可以通过influx将字段的首次使用解释为布尔值(“ t ”,“ true ”,“ True ”中的任何一个, ' TRUE ”,“ f ”,“ 错误”,“ 错误”或“ 错误< / strong>'),那么涌入将使该字段永远变为布尔值。最后,请注意可能包含空格,逗号或其他奇怪字符的字段。我建议采取两种预防措施:
HelloWorld=123i
TNR="test"
告诉您您的数据是字符串。有关更多信息,请参见Influx Line Protocol documentation。
答案 1 :(得分:0)
我发现curl对于放置数据很有用,我将数据写在了文件上。然后使用:
卷曲“ http://localhost:9999/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=s” \ --header“授权:令牌YOURAUTHTOKEN” \ --data-binary @ pathfile / data.txt
我强烈建议--data-binary除外--data,因为\ n无法在--data上读取
https://v2.docs.influxdata.com/v2.0/write-data/#example-api-write-request