Telegraf无法在MQTT协议中正确读取JSON数据
当我使用telegraf inputs.mqtt_consumer
在订阅MQTT时无法正确解析数据时,
- 从客户端读取的原始数据:
{
"air": "air",
"humidity": 35,
"region": "shanghai",
"temperature": 34,
"time": 1655371268
}
- 这是Telegraf的配置
[[inputs.mqtt_consumer]]
servers = ["tcp://127.0.0.1:1883"]
topics = [
"test/#"
]
data_format = "json"
[[inputs.mqtt_consumer.topic_parsing]]
topic = "air/humidity/region/temperature/time"
measurement = "measurement/_/_/_/_"
tags = "_/_/region/_/_"
fields = "_/_/_/temperature/_"
- 这是我使用EMQX 就像这样,
> select * from mqtt_consumer
name: mqtt_consumer
time humidity temperature topic
---- -------- ----------- -----
2022-06-16T09:28:45.663600586Z 41 41 test
2022-06-16T09:28:45.764128509Z 38 48 test
2022-06-16T09:28:46.664330569Z 43 47 test
2022-06-16T09:28:46.764848563Z. 41 34 test
2022-06-16T09:28:47.665094746Z. 49 50 test
2022-06-16T09:28:47.765611758Z. 5 50 test
2022-06-16T09:28:48.66629661Z 42 32 test
- 我希望数据像这样,
name: mqtt_consumer
time region temperature topic
---- ---- ----------- -----
2022-06-16T09:28:45.663600586Z shanghai 41 test
2022-06-16T09:28:45.764128509Z shanghai 48 test
2022-06-16T09:28:46.664330569Z shanghai 47 test
2022-06-16T09:28:46.764848563Z shanghai 34 test
2022-06-16T09:28:47.665094746Z shanghai 50 test
2022-06-16T09:28:47.765611758Z shanghai 50 test
2022-06-16T09:28:48.66629661Z shanghai 32 test
- Telegraf的配置不能更改为
[[inputs.mqtt_consumer.topic_parsing]]
topic = "air/humidity/region/temperature/time"
measurement = "measurement/_/_/_/_"
tags = "_/_/tag/_/_"
fields = "_/_/_/field/_"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅doc
see doc https://docs.influxdata.com/telegraf/v1.22/data_formats/input/json/