docs(inputs.mqtt_consumer): add pivot example to readme (#11195)

This commit is contained in:
Mya 2022-07-05 11:27:19 -06:00 committed by GitHub
parent 2f6701013b
commit 5598a16bdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 57 additions and 3 deletions

View File

@ -87,6 +87,13 @@ and creates metrics using one of the supported [input data formats][].
# key = type
```
## Example Output
```text
mqtt_consumer,host=pop-os,topic=telegraf/host01/cpu value=45i 1653579140440951943
mqtt_consumer,host=pop-os,topic=telegraf/host01/cpu value=100i 1653579153147395661
```
## About Topic Parsing
The MQTT topic as a whole is stored as a tag, but this can be far too coarse to
@ -95,7 +102,7 @@ tag values to be extracted from the MQTT topic letting you store the information
provided in the topic in a meaningful way. An `_` denotes an ignored entry in
the topic path. Please see the following example.
## Example Configuration for topic parsing
### Topic Parsing Example
```toml
[[inputs.mqtt_consumer]]
@ -127,12 +134,59 @@ the topic path. Please see the following example.
test = "int"
```
## Example Output
Will result in the following metric:
```shell
```text
cpu,host=pop-os,tag=telegraf,topic=telegraf/one/cpu/23 value=45,test=23i 1637014942460689291
```
## Field Pivoting Example
You can use the pivot processor to rotate single
valued metrics into a multi field metric.
For more info check out the pivot processors
[here][1].
For this example these are the topics:
```text
/sensors/CLE/v1/device5/temp
/sensors/CLE/v1/device5/rpm
/sensors/CLE/v1/device5/ph
/sensors/CLE/v1/device5/spin
```
And these are the metrics:
```text
sensors,site=CLE,version=v1,device_name=device5,field=temp value=390
sensors,site=CLE,version=v1,device_name=device5,field=rpm value=45.0
sensors,site=CLE,version=v1,device_name=device5,field=ph value=1.45
```
Using pivot in the config will rotate the metrics into a multi field metric.
The config:
```toml
[[inputs.mqtt_consumer]]
....
topics = "/sensors/#"
[[inputs.mqtt_consumer.topic_parsing]]
measurement = "/measurement/_/_/_/_"
tags = "/_/site/version/device_name/field"
[[processors.pivot]]
tag_key = "field"
value_key = "value"
```
Will result in the following metric:
```text
sensors,site=CLE,version=v1,device_name=device5 temp=390,rpm=45.0,ph=1.45
```
[1]: <https://github.com/influxdata/telegraf/tree/master/plugins/processors/pivot> "Pivot Processor"
## Metrics
- All measurements are tagged with the incoming topic, ie