How influxdata/telegraf works
Telegraf is a configurable agent for collecting, processing, aggregating, and writing metrics and other data. The documented workflow is: users select plugins in TOML; the agent gathers from inputs on an interval, processes and aggregates metrics, then flushes them to outputs. The tree supports the core runtime layers shown here, and sampled input code confirms that plugins emit metrics through an accumulator. Plugin families and several integrations are represented by their existing directories; their internal wiring was not sampled, so those links remain high-level.
Main entry points: agent.go Agent · inputs Input plugins · config.go Configuration · main.go Telegraf CLI
Components 16
Agent runtime
- Configuration
config/config.go - Telegraf CLI
cmd/telegraf/main.go - Agent
agent/agent.go - Metric accumulator
accumulator.go - Metric model
metric/metric.go - Metric buffer
models/buffer.go
Collection plugins
- Input plugins
plugins/inputs
Metric processing
- Metric filters
filter/filter.go - Processors
plugins/processors - Aggregators
plugins/aggregators
Output plugins
- Output plugins
plugins/outputs - PostgreSQL output
plugins/outputs/postgresql/table_manager.go
Other components
- Operator
- Source systems
- Destinations
- PostgreSQL
Connections 14
- Operator → Configuration: configures
- Configuration → Telegraf CLI: supplies settings
- Telegraf CLI → Agent: starts
- Agent → Input plugins: schedules gathering
- Input plugins → Source systems: reads from
- Input plugins → Metric accumulator: emits metrics
- Metric accumulator → Metric model: builds
- Agent → Metric filters: applies
- Agent → Processors: dispatches
- Agent → Aggregators: dispatches
- Agent → Metric buffer: buffers metrics
- Agent → Output plugins: flushes to
- Output plugins → Destinations: writes to
- PostgreSQL output → PostgreSQL: updates schema