向InfluxDB2通过Line Protocol写入数据点报invalid boolean错误如何解决
InfluxDB 2 Line Protocol 写入错误解决方案
你遇到的invalid boolean报错由Line Protocol语法不规范导致,具体问题和修复方案如下:
核心错误原因
- 语法结构不符合规范:Line Protocol标准格式为
[measurement],[tag_key1]=[tag_value1],[tag_key2]=[tag_value2] [field_key1]=[field_value1],[field_key2]=[field_value2] [timestamp],标签集和字段集之间必须用空格分隔,不能连写 - 系统保留字段误用:
_value、_field是InfluxDB查询返回的系统生成列,写入时无需手动指定,直接填写自定义字段名即可 - 字符串类型字段未加双引号:字符串类型的字段值必须用英文双引号包裹,未加引号的内容会被默认解析为数值、布尔或时间类型,你示例中的
status_message=OK里的OK是字符串,未加引号就会触发布尔类型解析失败报错 - 标签与字段混淆:标签为索引类元数据,需写在测量名后的逗号分隔区域;字段为实际存储的指标值,需写在空格后的区域,不要把标签属性写到字段集内
正确写入示例
如果你需要写入字段status值分别为25、100的两个数据点,正确的Line Protocol写法如下:
service,component=availability,metric_type=service,organization=BestBuy,service=Confluence,service_group=DevOps status=25,status_message="OK" service,component=availability,metric_type=service,organization=BestBuy,service=Confluence,service_group=DevOps status=100,status_message="OK"
补充说明
- 不手动指定时间戳时,InfluxDB会自动使用写入时的服务器时间作为数据点时间
- 如需自定义时间,可在字段集后加空格,填写Unix纳秒时间戳即可
- 标签值如果包含空格、特殊字符需要转义,字段的字符串值必须始终用英文双引号包裹
内容的提问来源于stack exchange,提问作者iSharted
相关产品推荐
相关产品推荐

