我正在尝试发布此数据:
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1495179651177999872
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=444 1495179651203000064
Run Code Online (Sandbox Code Playgroud)
该帖子的网址看起来像
http://influx.local:8086/write?db=testdb&u=myuser&p=myasswd
Run Code Online (Sandbox Code Playgroud)
原始回应:
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"}
Run Code Online (Sandbox Code Playgroud)
时间戳对我来说似乎有效。
如果我只发布一行(而不是上面的示例中的两行),那么效果很好!
我还想知道时间戳记之后错误日志的末尾“ \ r”在做什么。因为我写的是“ \ n”。
有趣的是,直到最近我才对InfluxDB进行写操作没有任何问题。不涉及版本升级。
我正在运行InfluxDB 1.x(不确定确切的版本)
为了解决这个问题,如果我完全省略了时间戳(出于测试目的),它仍然不起作用:
{"error":"partial write:\nunable to parse 'my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123\r': invalid number"}
Run Code Online (Sandbox Code Playgroud)
更新:出于测试目的,我安装了InfluxDb 1.2.7(Windows Standalone)
有效负载与以前相同
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1439856000
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=444 1439856001
Run Code Online (Sandbox Code Playgroud)
大量报告返回:
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"}
Run Code Online (Sandbox Code Playgroud)
所有这些测试都是使用Fiddler Composer进行的。
查看包含答案的评论。但是,这是怎么回事:
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=123 1495179651177999872\r\n
my_tests,SNR=533033200650344358002D00,TNR=test HelloWorld=444 1495179651203000064
Run Code Online (Sandbox Code Playgroud)
问题在于回车符-也称为换行符(\ n)和换行符(\ r)将两个条目分开。Windows(CRLF)使用此约定。解决方案是确保对行尾使用“ Linux”约定。
即使只发送一行,换行字符也是有问题的。经常看到的一个不相关的问题是“无效的布尔值”。如果第一次使用字段可以被influx解释为布尔值(“ t ”,“ true ”,“ true ”,“ TRUE ”,“ f ”,“ false ”,“ False ”或“ FALSE ”中的任何一个),则涌入将永远使该字段变为布尔值。最后,请注意可能包含空格,逗号或其他奇怪字符的字段。我建议两种预防措施:
HelloWorld=123iTNR="test"告诉influx您的数据是字符串。有关更多信息,请参见Influx线路协议文档。
| 归档时间: |
|
| 查看次数: |
3575 次 |
| 最近记录: |