0

How can I use Telegraf to extract timestamp and sensor value from an MQTT message and insert it into a PostgreSQL database with separate timestamp and sensor value columns?

I am receiving this JSON object from MQTT: {"sensor": "current", "data": [[1614945972418042880, 1614945972418042880], [1614945972418294528, 0.010058338362502514], [1614945972418545920, 0.010058338362502514]]} It contains two fields: "sensor" and "data". The "sensor" field contains a string value that identifies the type of sensor and the "data" field contains an array of arrays, where each sub-array contains a timestamp and a sensor value. I am using Telegraf to output this data to a PostgreSQL database. I would like to separate the timestamp and sensor value and flatten it out of the list and use the sensor name as the column name, how can I configure Telegraf to do this?

So my table would look like this :

timestamp current
1614945972418042880 1614945972418042880
1614945972418294528 0.010058338362502514
[[inputs.mqtt_consumer]]   
servers = ["tcp://localhost:1883"]   
topics = ["your_topic"]   
data_format = "json"   
json_query = "data.*"   
tag_keys = ["sensor","timestamp"]   
measurement = "sensors"`

0 Answers0