2018-05-24 05:29:57 +08:00
# Converter Processor
The converter processor is used to change the type of tag or field values. In
2018-06-12 05:43:28 +08:00
addition to changing field types it can convert between fields and tags.
2018-05-24 05:29:57 +08:00
Values that cannot be converted are dropped.
2018-06-13 07:12:08 +08:00
**Note:** When converting tags to fields, take care to ensure the series is still
2018-05-24 05:29:57 +08:00
uniquely identifiable. Fields with the same series key (measurement + tags)
will overwrite one another.
2021-04-29 00:31:48 +08:00
**Note on large strings being converted to numeric types:** When converting a string value to a numeric type, precision may be lost if the number is too large. The largest numeric type this plugin supports is `float64` , and if a string 'number' exceeds its size limit, accuracy may be lost.
2021-11-25 02:47:11 +08:00
## Configuration
2022-05-25 22:59:41 +08:00
```toml @sample .conf
2018-05-24 05:29:57 +08:00
# Convert values to another metric value type
2018-08-24 04:11:39 +08:00
[[processors.converter]]
2018-05-24 05:29:57 +08:00
## Tags to convert
##
## The table key determines the target type, and the array of key-values
## select the keys to convert. The array may contain globs.
## < target-type > = [< tag-key > ...]
[processors.converter.tags]
2020-03-10 05:08:38 +08:00
measurement = []
2018-05-24 05:29:57 +08:00
string = []
integer = []
unsigned = []
boolean = []
float = []
## Fields to convert
##
## The table key determines the target type, and the array of key-values
## select the keys to convert. The array may contain globs.
## < target-type > = [< field-key > ...]
[processors.converter.fields]
2020-03-10 05:08:38 +08:00
measurement = []
2018-05-24 05:29:57 +08:00
tag = []
string = []
integer = []
unsigned = []
boolean = []
float = []
```
2020-03-10 05:08:38 +08:00
### Example
2018-05-24 05:29:57 +08:00
2020-03-10 05:08:38 +08:00
Convert `port` tag to a string field:
2021-11-25 02:47:11 +08:00
2018-05-24 05:29:57 +08:00
```toml
2018-08-24 04:11:39 +08:00
[[processors.converter]]
2018-05-24 05:29:57 +08:00
[processors.converter.tags]
string = ["port"]
2020-03-10 05:08:38 +08:00
```
```diff
- apache,port=80,server=debian-stretch-apache BusyWorkers=1,BytesPerReq=0
+ apache,server=debian-stretch-apache port="80",BusyWorkers=1,BytesPerReq=0
```
2018-05-24 05:29:57 +08:00
2020-03-10 05:08:38 +08:00
Convert all `scboard_*` fields to an integer:
2021-11-25 02:47:11 +08:00
2020-03-10 05:08:38 +08:00
```toml
[[processors.converter]]
2018-05-24 05:29:57 +08:00
[processors.converter.fields]
integer = ["scboard_*"]
```
```diff
2020-03-10 05:08:38 +08:00
- apache scboard_closing=0,scboard_dnslookup=0,scboard_finishing=0,scboard_idle_cleanup=0,scboard_keepalive=0,scboard_logging=0,scboard_open=100,scboard_reading=0,scboard_sending=1,scboard_starting=0,scboard_waiting=49
+ apache scboard_closing=0i,scboard_dnslookup=0i,scboard_finishing=0i,scboard_idle_cleanup=0i,scboard_keepalive=0i,scboard_logging=0i,scboard_open=100i,scboard_reading=0i,scboard_sending=1i,scboard_starting=0i,scboard_waiting=49i
```
Rename the measurement from a tag value:
2021-11-25 02:47:11 +08:00
2020-03-10 05:08:38 +08:00
```toml
[[processors.converter]]
[processors.converter.tags]
measurement = ["topic"]
```
```diff
- mqtt_consumer,topic=sensor temp=42
+ sensor temp=42
2018-05-24 05:29:57 +08:00
```