Telegraf provides integration of MQTT topics through the MQTT Consumer input plugin. Telegraf collects the metrics from the messages on the topic, processes them, and sends them to Cloud Observability using the OpenTelemetry output plugin.
To complete the integration, you will:
In the Telegraf configuration file, add configuration for the MQTT servers and topics. The
data_format setting tells Telegraf how to translate the message bodies. There are additional settings available that are specific to the data format you use. You can find complete configuration details in the MQTT Consumer plugin documentation.
1 2 3 4 5 6 7 8 [[inputs.mqtt_consumer]] servers = [ "tcp://broker:1883" ] topics = [ "test/topic" ] data_format = "json"
To deliver metrics to Cloud Observability you configure the Telegraf OpenTelmetry output plugin. This plugin sends metrics to Cloud Observability using gRPC.
This example shows the plugin configured without TLS:
1 2 3 4 5 6 7 [[outputs.opentelemetry]] service_address = "ingest.lightstep.com:443" insecure_skip_verify = true # Additional gRPC request metadata [outputs.opentelemetry.headers] lightstep-access-token = "$LS_ACCESS_TOKEN"
For more details regarding configuring the OpenTelemetry output plugin see the official Telegraf documentation.
You can validate that metrics are reporting to Cloud Observability on the Metrics details page in Project settings.
In Cloud Observability, click Project settings > Metric details.
Search for MQTT metric names.
If needed, select the metric to edit the description and how the units are displayed in Cloud Observability.
After you have Cloud Observability ingesting metrics from the MQTT Consumer endpoint, you can use the Cloud Observability Terraform Provider to create a dashboard for the metrics.
For a complete example that’s ready to run, see Telegraf MQTT input plugin in the Cloud Observability OpenTelemetry Examples.
You can learn more about configuring Telegraf from the official documentation.
Updated Dec 1, 2022