---
title: Transform data with aggregator and processor plugins
description: Aggregator and processor plugins aggregate and process metrics.
url: https://docs.influxdata.com/telegraf/v1/configure_plugins/aggregator_processor/
estimated_tokens: 663
product: Telegraf Enterprise
version: v1
publisher: InfluxData
canonical: https://docs.influxdata.com/telegraf/v1/configure_plugins/aggregator_processor/
date: '2025-12-10T11:27:01-05:00'
lastmod: '2025-12-10T11:27:01-05:00'
---

In addition to input plugins and output plugins, Telegraf includes aggregator and processor plugins, which are used to aggregate and process metrics as they pass through Telegraf.

graph TD
Process[Process  
\- transform  
\- decorate  
\- filter]
Aggregate[Aggregate  
\- transform  
\- decorate  
\- filter]
CPU --\> Process
Memory --\> Process
MySQL --\> Process
SNMP --\> Process
Docker --\> Process
Process --\> Aggregate
Aggregate --\> InfluxDB
Aggregate --\> File
Aggregate --\> Kafka
style Process text-align:left
style Aggregate text-align:left

**Processor plugins** process metrics as they pass through and immediately emit
results based on the values they process. For example, this could be printing
all metrics or adding a tag to all metrics that pass through. For a list of processor plugins and links to their detailed configuration options, see [processor plugins](/telegraf/v1/plugins/#processor-plugins).

**Aggregator plugins**, on the other hand, are a bit more complicated. Aggregators
are typically for emitting new *aggregate* metrics, such as a running mean,
minimum, maximum, quantiles, or standard deviation. For this reason, all *aggregator*plugins are configured with a `period`. The `period` is the size of the window
of metrics that each *aggregate* represents. In other words, the emitted*aggregate* metric will be the aggregated value of the past `period` seconds.
Since many users will only care about their aggregates and not every single metric
gathered, there is also a `drop_original` argument, which tells Telegraf to only
emit the aggregates and not the original metrics. For a list of aggregator plugins and links to their detailed configuration options, see [aggregator plugins](/telegraf/v1/plugins/#aggregator-plugins).

#### Behavior of processors and aggregators when used together

When using both aggregator and processor plugins in Telegraf v1.17, processor plugins
process data and then pass it to aggregator plugins.
After aggregator plugins aggregate the data, they pass it back to processor plugins.
This can have unintended consequences, such as executing mathematical operations twice.*See [influxdata/telegraf#7993](https://github.com/influxdata/telegraf/issues/7993).*

If using custom processor scripts, they must be idempotent (repeatable, without side-effects).
For custom processes that are not idempotent, use [namepass or namedrop](/telegraf/v1/configuration/#metric-filtering) to avoid issues when aggregated data is processed a second time.

#### Related

* [Telegraf Aggregator Plugins](/telegraf/v1/aggregator-plugins/)
* [Telegraf Processor Plugins](/telegraf/v1/processor-plugins/)
