--- description: "Telegraf plugin for transforming metrics using Scale" menu: telegraf_v1_ref: parent: processor_plugins_reference name: Scale identifier: processor-scale tags: [Scale, "processor-plugins", "configuration", "transformation"] introduced: "v1.27.0" os_support: "freebsd, linux, macos, solaris, windows" related: - /telegraf/v1/configure_plugins/ - https://github.com/influxdata/telegraf/tree/v1.37.2/plugins/processors/scale/README.md, Scale Plugin Source --- # Scale Processor Plugin This plugin allows to scale field-values from an input range into the given output range according to this formula: ```math \text{result}=(\text{value}-\text{input\_minimum})\cdot\frac{(\text{output\_maximum}-\text{output\_minimum})} {(\text{input\_maximum}-\text{input\_minimum})} + \text{output\_minimum} ``` Alternatively, you can apply a factor and offset to the input according to this formula ```math \text{result}=\text{factor} \cdot \text{value} + \text{offset} ``` Input fields are converted to floating point values if possible. Otherwise, fields that cannot be converted are ignored and keep their original value. > [!NOTE] > Neither the input nor output values are clipped to their respective ranges! **Introduced in:** Telegraf v1.27.0 **Tags:** transformation **OS support:** all ## Global configuration options Plugins support additional global and plugin configuration settings for tasks such as modifying metrics, tags, and fields, creating aliases, and configuring plugin ordering. See [CONFIGURATION.md](/telegraf/v1/configuration/#plugins) for more details. [CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # Scale values with a predefined range to a different output range. [[processors.scale]] ## It is possible to define multiple different scaling that can be applied ## do different sets of fields. Each scaling expects the following ## arguments: ## - input_minimum: Minimum expected input value ## - input_maximum: Maximum expected input value ## - output_minimum: Minimum desired output value ## - output_maximum: Maximum desired output value ## alternatively you can specify a scaling with factor and offset ## - factor: factor to scale the input value with ## - offset: additive offset for value after scaling ## - fields: a list of field names (or filters) to apply this scaling to ## Example: Scaling with minimum and maximum values # [[processors.scale.scaling]] # input_minimum = 0.0 # input_maximum = 1.0 # output_minimum = 0.0 # output_maximum = 100.0 # fields = ["temperature1", "temperature2"] ## Example: Scaling with factor and offset # [[processors.scale.scaling]] # factor = 10.0 # offset = -5.0 # fields = ["voltage*"] ``` ## Example The example below uses these scaling values: ```toml [[processors.scale.scaling]] input_minimum = 0.0 input_maximum = 50.0 output_minimum = 50.0 output_maximum = 100.0 fields = ["cpu"] ``` ```diff - temperature, cpu=25 + temperature, cpu=75.0 ```