Telegraf
By InfluxData
Telegraf is an open-source server agent, written in Go, that collects, processes, and forwards metrics and events from a wide range of systems, databases, and third-party services to output destinations such as time-series databases and…
Definition
Telegraf is an open-source server agent, written in Go, that collects, processes, and forwards metrics and events from a wide range of systems, databases, and third-party services to output destinations such as time-series databases and monitoring platforms. It runs as a single lightweight binary with a large library of input, processor, aggregator, and output plugins configured through one file, and is maintained by InfluxData as the standard collection layer for its time-series database ecosystem.
Overview
Every monitoring stack needs something to actually gather data from the systems being watched, whether that is CPU and memory statistics from a host, query performance from a database, or custom application metrics, and then send it somewhere useful. Telegraf, built by InfluxData, was created to be that universal collection layer: rather than writing bespoke scripts per data source, teams configure Telegraf's plugins to pull or receive metrics from hundreds of supported sources and push them to one or more backends in a consistent format. Telegraf's design centers on four plugin types wired together through an internal buffer. Input plugins collect metrics on a schedule, either by polling a source like a database or system API, or by listening for pushed data such as StatsD or syslog messages. Processor plugins can transform or filter each metric as it flows through, aggregator plugins compute rollups like averages over a time window, and output plugins serialize the final metrics and send them to one or more destinations, such as InfluxDB, Prometheus, Kafka, or a generic HTTP endpoint. Because the whole pipeline is one compiled Go binary with no external runtime dependency, it starts quickly and has a small resource footprint, which is why it is commonly run as a per-host agent or a sidecar. Telegraf differs from a full monitoring platform in that it does not store data, render dashboards, or evaluate alerts itself; it is purely the collection and forwarding layer, most often paired with InfluxDB for storage and Grafana or Chronograf for visualization, forming what InfluxData calls the TICK stack lineage. Compared to Prometheus's own scrape-based collection, Telegraf can both push and pull, and covers a broader range of non-Prometheus-native systems out of the box through its plugin catalog, though Prometheus users often use Telegraf specifically to bridge non-Prometheus sources into a Prometheus-compatible format. In practice, Telegraf is deployed on individual servers, inside containers, or centrally to poll network devices and cloud APIs, feeding metrics for infrastructure monitoring, IoT sensor collection, and database performance tracking. Its plugin ecosystem covers common databases, message queues, cloud provider APIs, and application frameworks, so teams often reach for it as a low-effort way to start collecting from a new system without custom code. The trade-off is that Telegraf's flexibility comes from configuration file complexity as the number of plugins grows, and because it has no built-in storage or alerting, it always needs to be paired with another system to be useful end to end. Teams already fully standardized on Prometheus's pull-based scraping and exporters may not need Telegraf for Prometheus-native services, reserving it instead for systems that lack a native Prometheus exporter or that need to fan out the same metrics to multiple different backends at once.
Key Features
- Ships as a single lightweight Go binary with minimal runtime overhead
- Supports hundreds of input plugins for systems, databases, and cloud services
- Offers processor and aggregator plugins for transforming metrics in-flight
- Can output to multiple destinations simultaneously, including InfluxDB and Prometheus
- Supports both pull-based polling and push-based metric ingestion
- Requires only a single configuration file to define a full pipeline
- Runs efficiently as a per-host agent or containerized sidecar
- Integrates natively with the broader InfluxData ecosystem