Plugin directory
Telegraf is a plugin-driven agent that collects, processes, aggregates, and writes metrics. It supports four categories of plugins: input, output, aggregator, and processor. In addition to the included plugins, you can run external plugins that integrate with the Telegraf Execd processor plugin.
Jump to:
Input plugins
Telegraf input plugins are used with the InfluxData time series platform to collect metrics from the system, services, or third-party APIs.
ActiveMQ
This plugin gathers queue, topics and subscribers metrics using the Console API ActiveMQ message broker daemon.
Aerospike
This plugin queries Aerospike server(s) for node statistics and statistics on all configured namespaces.
As of version 1.30 the Aerospike plugin has been deprecated in favor of the prometheus plugin and the officially supported Aerospike Prometheus Exporter
For details on the measurements mean, please consult the Aerospike Metrics Reference Docs.
Metric names will have dashes (-
) replaced as underscores (_
) to
make querying more consistently and easy.
All metrics are attempted to be cast to integers, then booleans, then strings in order.
Alibaba Cloud Monitor Service (Aliyun)
This plugin gathers statistics from the Alibaba / Aliyun cloud
monitoring service. In the following we
will use Aliyun
instead of Alibaba
as it’s the default naming across
the web console and docs.
AMD ROCm System Management Interface (SMI)
This plugin gathers statistics including memory and GPU usage, temperatures etc from AMD ROCm platform GPUs.
The rocm-smi
binary is required and needs to be installed on the
system.
AMQP Consumer
This plugin consumes messages from an Advanced Message Queuing Protocol v0.9.1 broker. A prominent implementation of this protocol is RabbitMQ.
Metrics are read from a topic exchange using the configured queue and binding key. The message payloads must be formatted in one of the supported data formats.
For an introduction check the AMQP concepts page and the RabbitMQ getting started guide.
Apache
This plugin collects performance information from Apache HTTP
Servers using the mod_status
module.
Typically, this module is configured to expose a page at the
/server-status?auto
endpoint the server.
The ExtendedStatus option must be enabled in order to collect all available fields. For information about configuration of your server check the module documentation.
APC UPSD
This plugin gathers data from one or more apcupsd daemon over the NIS network protocol. To query a server, the daemon must be running and be accessible.
Apache Aurora
This plugin gathers metrics from Apache Aurora schedulers. For monitoring recommendations check the Monitoring your Aurora cluster article.
Azure Monitor
This plugin gathers metrics of Azure resources using the Azure
Monitor API. The
plugin requires a client_id
, client_secret
and tenant_id
for
authentication via access token. The subscription_id
is required for
accessing Azure resources.
Check the supported metrics page for available resource types and their metrics.
The Azure API has a read limit of 12,000 requests per hour. Please make sure you don’t exceed this limit with the total number of metrics you are in the configured interval.
Azure Queue Storage
This plugin gathers queue sizes from the Azure Queue Storage service, storing a large numbers of messages.
Bcache
This plugin gathers statistics for the block layer
cache from the
stats_total
directory and dirty_data
file.
Beanstalkd
This plugin collects server statistics as well as tube statistics from a
Beanstalkd work queue as reported by the
stats
and stats-tube
server commands.
Beat
This plugin will collect metrics from a Beats instances. It is known to work with Filebeat and Kafkabeat.
BIND 9 Nameserver
This plugin collects metrics from BIND 9 nameservers using the XML or JSON endpoint.
For XML, version 2 statistics (BIND 9.6 to 9.9) and version 3 statistics (BIND 9.9+) are supported. Version 3 statistics are the default and only XML format in BIND 9.10+.
For BIND 9.9 to support version 3 statistics, it must be built with the
--enable-newstats
compile flag, and the statistics must be
specifically requested via the correct URL.
For JSON, version 1 statistics (BIND 9.10+) are supported. As of writing, some distros still do not enable support for JSON statistics in their BIND packages.
Bond
This plugin collects metrics for both the network bond interface as well
as its slave interfaces using /proc/net/bonding/*
files.
Burrow
This plugin collect Kafka topic, consumer and partition status from the Burrow - Kafka Consumer Lag Checking companion via HTTP API. Burrow v1.x versions are supported.
Ceph Storage
This plugin collects performance metrics from MON and OSD nodes in a Ceph storage cluster. Support for Telegraf has been introduced in the v13.x Mimic release where data is sent to a socket (see their documnetation).
Control Group
This plugin gathers statistics per control group (cgroup).
Consider restricting paths to the set of cgroups you are interested in if you have a large number of cgroups, to avoid cardinality issues.
The plugin supports the single value format in the form
the new line separated values format in the form
the space separated values format in the form
and the space separated keys and value, separated by new line format in the form
chrony
This plugin queries metrics from a chrony NTP server. For details on the meaning of the gathered fields please check the chronyc manual.
Cisco Model-Driven Telemetry (MDT)
This plugin consumes Cisco model-driven telemetry (MDT) data from Cisco IOS XR, IOS XE and NX-OS platforms via TCP or GRPC. GRPC-based transport can utilize TLS for authentication and encryption. Telemetry data is expected to be GPB-KV (self-describing-gpb) encoded.
The GRPC dialout transport is supported on various IOS XR (64-bit) 6.1.x and later, IOS XE 16.10 and later, as well as NX-OS 7.x and later platforms. The TCP dialout transport is supported on IOS XR (32-bit and 64-bit) 6.1.x and later.
ClickHouse
This plugin gathers statistics data from a ClickHouse server. Users on Clickhouse Cloud will not see the Zookeeper metrics as they may not have permissions to query those tables.
Google Cloud PubSub
This plugin consumes messages from the Google Cloud PubSub service and creates metrics using one of the supported data formats.
Google Cloud PubSub Push
This plugin listens for messages sent via an HTTP POST from Google Cloud PubSub and expects messages in Google’s Pub/Sub JSON format. The plugin allows Telegraf to serve as an endpoint of push service.
Google’s PubSub service will only send over HTTPS/TLS so this plugin
must be behind a valid proxy or must be configured to use TLS by setting
the tls_cert
and tls_key
accordingly.
Enable mutually authenticated TLS and authorize client connections by
signing certificate authority by including a list of allowed CA
certificate file names in tls_allowed_cacerts
.
Amazon CloudWatch Statistics
This plugin will gather metric statistics from Amazon CloudWatch.
Amazon CloudWatch Metric Streams
This plugin listens for metrics sent via HTTP by Cloudwatch metric streams implementing the required response specifications.
Using this plugin can incure costs, see the Metric Streams example in CloudWatch pricing.
Netfilter Conntrack
This plugin collects metrics from Netfilter’s conntrack tools. There are two collection mechanisms for this plugin:
- Extracting information from
/proc/net/stat/nf_conntrack
files if thecollect
option is set accordingly for finding CPU specific values. - Using specific files and directories by specifying the
dirs
option. At runtime, conntrack exposes many of those connection statistics within/proc/sys/net
. Depending on your kernel version, these files can be found in either/proc/sys/net/ipv4/netfilter
or/proc/sys/net/netfilter
and will be prefixed with eitherip
ornf
.
In order to simplify configuration in a heterogeneous environment, a superset of directory and filenames can be specified. Any locations that doesn’t exist is ignored.
Hashicorp Consul
This plugin will collect statistics about all health checks registered in Consul using the Consul API. The plugin will not report any telemetry metrics but Consul can report those statistics using the StatsD protocol if needed.
Hashicorp Consul Agent
This plugin collects metrics from a Consul agent. Telegraf may be present in every node and connect to the agent locally. Tested on Consul v1.10.
Couchbase
This plugin collects metrics from Couchbase, a distributed NoSQL database. Metrics are collected for each node, as well as detailed metrics for each bucket, for a given couchbase server.
Apache CouchDB
This plugin gathers metrics from Apache CouchDB instances using the stats endpoint.
Counter-Strike Global Offensive (CSGO)
This plugin gather metrics from Counter-Strike: Global Offensive servers.
Bosch Rexroth ctrlX Data Layer
This plugin gathers data from the ctrlX Data Layer a communication middleware running on Bosch Rexroth’s ctrlX CORE devices. The platform is used for professional automation applications like industrial automation, building automation, robotics, IoT Gateways or as classical PLC.
Mesosphere Distributed Cloud OS
This input plugin gathers metrics from a Distributed Cloud OS cluster’s metrics component.
Depending on the workload of your DC/OS cluster, this plugin can quickly create a high number of series which, when unchecked, can cause high load on your database!
Directory Monitor
This plugin monitors a single directory (traversing sub-directories), and processes each file placed in the directory. The plugin will gather all files in the directory at the configured interval, and parse the ones that haven’t been picked up yet.
Files should not be used by another process or the plugin may fail.
Furthermore, files should not be written live to the monitored
directory. If you absolutely must write files directly, they must be
guaranteed to finish writing before directory_duration_threshold
.
Disk
This plugin gathers metrics about disk usage.
The used_percent
field is calculated by used / (used + free)
and
not used / total
as the unix df
command does it. See wikipedia -
df for more details.
Disque
This plugin gathers data from a Disque instance, an experimental distributed, in-memory, message broker.
Device Mapper Cache
This plugin provide a native collection for dmsetup based statistics for dm-cache.
This plugin requires super-user permissions! Please make sure, Telegraf
is able to run sudo /sbin/dmsetup status --target cache
without
requiring a password.
DNS Query
This plugin gathers information about DNS queries such as response time and result codes.
Docker
This plugin uses the Docker Engine API to gather metrics on running Docker containers.
Make sure Telegraf has sufficient permissions to access the configured endpoint.
Docker Log
This plugin uses the Docker Engine API to gather logs from running Docker containers.
This plugin works only for containers with the local
or json-file
or
journald
logging driver. Please make sure Telegraf has sufficient
permissions to access the configured endpoint.
Dovecot
This plugin uses the Dovecot v2.1 stats protocol to gather metrics about configured domains of Dovecot servers. You can use this plugin on Dovecot up to and including version v2.3.x.
Dovecot v2.4+ has the old protocol removed and this plugin will not
work. Please use Dovecot’s Openmetrics
exporter
in combination with the http input
plugin and openmetrics
data format
for newer versions of Dovecot.
Data Plane Development Kit (DPDK)
This plugin collects metrics exposed by applications built with the Data Plane Development Kit which is an extensive set of open source libraries designed for accelerating packet processing workloads.
Since DPDK will most likely run with root privileges, the telemetry socket exposed by DPDK will also require root access. Please adjust permissions accordingly!
Refer to the Telemetry User Guide for details and examples on how to use DPDK in your application.
This plugin uses the v2
interface to read telemetry > data from
applications and required DPDK version v20.05
or higher. Some metrics
might require later versions. The recommended version, especially in
conjunction with the in_memory
option is DPDK 21.11.2
or higher.
Amazon Elastic Container Service
This plugin gathers statistics on running containers in a Task from the Amazon Elastic Container Service using the Amazon ECS metadata and the v2 or v3 statistics API endpoints.
The telegraf container must be run in the same Task as the workload it is inspecting.
The amazon-ecs-agent (though it is a container running on the host) is not present in the metadata/stats endpoints.
Elasticsearch
This plugin queries endpoints of a Elasticsearch instance to obtain node statistics and optionally cluster-health metrics. Additionally, the plugin is able to query cluster, indices and shard statistics for the master node.
Specific statistics information can change between Elasticsearch versions. In general, this plugin attempts to stay as version-generic as possible by tagging high-level categories only and creating unique field names of whatever statistics names are provided at the mid-low level.
Elasticsearch Query
This plugin allows to query an Elasticsearch instance to obtain metrics from data stored in the cluster. The plugins supports counting the number of hits for a search query, calculating statistics for numeric fields, filtered by a query, aggregated per tag and to count the number of terms for a particular field.
This plugins supports Elasticsearch 5.x and 6.x but is known to break on 7.x or higher.
Ethtool
This plugin collects ethernet device statistics. The available information strongly depends on the network device and driver.
Azure Event Hub Consumer
This plugin allows consuming messages from Azure Event Hubs and Azure IoT Hub instances.
Exec
This plugin executes the given commands
on every interval and parses
metrics from their output in any one of the supported data
formats. This plugin can be used to
poll for custom metrics from any source.
Execd
This plugin runs the given external program as a long-running daemon and
collects the metrics in one of the supported data
formats on the process’s stdout
. The
program is expected to stay running and output data when receiving the
configured signal
.
The stderr
output of the process will be relayed to Telegraf’s logging
facilities and will be logged as error by default. However, you can log
to other levels by prefixing your message with E!
for error, W!
for
warning, I!
for info, D!
for debugging and T!
for trace levels
followed by a space and the actual message. For example outputting I! A log message
will create a info
log line in your Telegraf logging
output.
Fail2ban
This plugin gathers the count of failed and banned IP addresses using
fail2ban by running the fail2ban-client
command.
The fail2ban-client
requires root access, so please make sure to
either allow Telegraf to run that command using sudo
without a
password or by running telegraf as root (not recommended).
Fibaro
This plugin gathers data from devices connected to a Fibaro controller. Those values could be true (1) or false (0) for switches, percentage for dimmers, temperature, etc. Both Home Center 2 and Home Center 3 devices are supported.
File
This plugin reads the complete contents of the configured files in every interval. The file content is split line-wise and parsed according to one of the supported data formats.
If you wish to only process newly appended lines use the tail input plugin instead.
File statistics
This plugin gathers metrics about file existence, size, and other file statistics.
Fireboard
This plugin gathers real-time temperature data from fireboard thermometers.
You will need to sign up to for the Fireboard REST API in order to use this plugin.
AWS Data Firehose
This plugin listens for metrics sent via HTTP from AWS Data Firehose in one of the supported data formats. The plugin strictly follows the request-response schema as describe in the official documentation.
Fluentd
This plugin gathers internal metrics of a
fluentd instance provided by fluentd’s
monitor agent plugin.
Data provided by the /api/plugin.json
resource, /api/config.json
is
not covered.
This plugin might produce high-cardinality series as the plugin_id
value is random after each restart of fluentd. You might need to adjust
your fluentd configuration, in order to reduce series cardinality in
case your fluentd restarts frequently by adding the @id
parameter to
each plugin. See fluentd’s
documentation
for details.
Fritzbox
This plugin gathers status information from AVM devices (routers, repeaters, etc) using the device’s TR-064 interface.
GitHub
This plugin gathers information from projects and repositories hosted on GitHub.
Telegraf also contains the webhook input plugin which can be used as an alternative method for collecting repository information.
gNMI (gRPC Network Management Interface)
This plugin consumes telemetry data based on gNMI subscriptions. TLS is supported for authentication and encryption. This plugin is vendor-agnostic and is supported on any platform that supports the gNMI specification.
For Cisco devices the plugin has been optimized to support gNMI telemetry as produced by Cisco IOS XR (64-bit) version 6.5.1, Cisco NX-OS 9.3 and Cisco IOS XE 16.12 and later.
Google Cloud Storage
This plugin will collect metrics from the given Google Cloud Storage buckets in any of the supported data formats.
GrayLog
This plugin collects data from Graylog servers,
currently supporting two type of end points multiple
(e.g.
http://<host>:9000/api/system/metrics/multiple
) and namespace
(e.g.
http://<host>:9000/api/system/metrics/namespace/{namespace}
).
Multiple endpoint can be queried and mixing multiple
and serveral
namespace
end points is possible. Check
http://<host>:9000/api/api-browser
for the full list of available
endpoints.
When specifying a namespace
endpoint without an actual namespace, the
metrics array will be ignored.
HDDtemp
This plugin reads data from a hddtemp daemon.
This plugin requires hddtemp
to be installed and running as a daemon.
As the upstream project is not activly maintained anymore and various
distributions (e.g. Debian Bookwork and later) don’t ship packages for
hddtemp
anymore, the binary might not be available (e.g. in Ubuntu
22.04 or later).
HTTP
This plugin collects metrics from one or more HTTP endpoints providing data in one of the supported data formats.
HTTP Listener v2
This plugin listens for metrics sent via HTTP in any of the supported data formats.
If you would like Telegraf to act as a proxy/relay for InfluxDB v1 or InfluxDB v2 it is recommended to use the influxdb__listener or influxdb_v2_listener plugin instead.
HTTP Response
This plugin generates metrics from HTTP responses including the status code and response statistics.
HueBridge
This plugin gathers status from Hue Bridge devices using the CLIP API interface of the devices.
Hugepages
This plugin gathers metrics from the Linux’ Transparent Huge Pages (THP) memory management system that reduces the overhead of Translation Lookaside Buffer (TLB) lookups on machines with large amounts of memory.
Icinga2
This plugin gather services and hosts status information using the Icinga2 remote API.
InfiniBand
This plugin gathers statistics for all InfiniBand devices and ports on
the system. These are the counters that can be found in
/sys/class/infiniband/<dev>/port/<port>/counters/
and RDMA counters can
be found in /sys/class/infiniband/<dev>/ports/<port>/hw_counters/
InfluxDB
This plugin collects metrics on the given InfluxDB v1 servers from the
/debug/vars
endpoint. Read the
documentation
for detailed information about influxdb
metrics.
Additionally, this plugin can gather metrics from endpoints exposing InfluxDB-formatted endpoints.
To gather InfluxDB v2 metrics use the prometheus plugin with[[inputs.prometheus]] urls = [“http://localhost:8086/metrics”] metric_version = 1
InfluxDB Listener
This plugin listens for requests sent according to the InfluxDB HTTP v1
API. This
allows Telegraf to serve as a proxy/router for the /write
endpoint of
the InfluxDB HTTP API.
This plugin was previously known as http_listener
. If you wish to send
general metrics via HTTP it is recommended to use the
http_listener_v2
instead.
The /write
endpoint supports the precision
query parameter and can be
set to one of ns
, u
, ms
, s
, m
, h
. All other parameters are
ignored and defer to the output plugins configuration.
When chaining Telegraf instances using this plugin, CREATE DATABASE
requests receive a 200 OK
response with message body {"results":[]}
but they are not relayed. The configuration of the output plugin
ultimately submits data to InfluxDB determines the destination database.
InfluxDB V2 Listener
This plugin listens for requests sent according to the InfluxDB HTTP v2
API. This allows Telegraf
to serve as a proxy/router for the /api/v2/write
endpoint of the
InfluxDB HTTP API.
The /api/v2/write
endpoint supports the precision
query parameter and
can be set to one of ns
, us
, ms
, s
. All other parameters are
ignored and defer to the output plugins configuration.
Intel Baseband Accelerator
This plugin collects metrics from both dedicated and integrated Intel devices providing Wireless Baseband hardware acceleration. These devices play a key role in accelerating 5G and 4G Virtualized Radio Access Networks (vRAN) workloads, increasing the overall compute capacity of commercial, off-the-shelf platforms by integrating e.g.
- Forward Error Correction (FEC) processing,
- 4G Turbo FEC processing,
- 5G Low Density Parity Check (LDPC)
- Fast Fourier Transform (FFT) block providing DFT/iDFT processing offload for the 5G Sounding Reference Signal (SRS)
Intel® Dynamic Load Balancer
This plugin collects metrics exposed by applications built with the Data Plane Development Kit, an extensive set of open source libraries designed for accelerating packet processing workloads, plugin is also using bifurcated driver. More specifically it’s targeted for applications using Intel DLB as eventdev devices accessed via bifurcated driver (allowing access from kernel and user-space).
Intel® Platform Monitoring Technology
This plugin collects metrics via the Linux kernel driver for Intel® Platform Monitoring Technology (Intel® PMT), an architecture capable of enumerating and accessing hardware monitoring capabilities on supported devices.
Intel Performance Monitoring Unit
This plugin gathers Intel Performance Monitoring Unit metrics available via the Linux Perf subsystem.
PMU metrics provide insights into performance and health of IA processors’ internal components, including core and uncore units. With the number of cores increasing and processor topology getting more complex the insight into those metrics is vital to assure the best CPU performance and utilization.
Performance counters are CPU hardware registers that count hardware events such as instructions executed, cache-misses suffered, or branches mispredicted. They form a basis for profiling applications to trace dynamic control flow and identify hotspots.
Intel PowerStat
This plugin gathers power statistics on Intel-based platforms providing insights into power saving and workload migration. Those are beneficial for Monitoring and Analytics systems to take preventive or corrective actions based on platform busyness, CPU temperature, actual CPU utilization and power statistics.
Intel RDT
This plugin collects information provided by monitoring features of the Intel Resource Director Technology, a hardware framework to monitor and control the utilization of shared resources (e.g. last level cache, memory bandwidth).
Intel’s Resource Director Technology (RDT) framework consists of:
- Cache Monitoring Technology (CMT)
- Memory Bandwidth Monitoring (MBM)
- Cache Allocation Technology (CAT)
- Code and Data Prioritization (CDP)
As multithreaded and multicore platform architectures emerge, the last level cache and memory bandwidth are key resources to manage for running workloads in single-threaded, multithreaded, or complex virtual machine environments. Intel introduces CMT, MBM, CAT and CDP to manage these workloads across shared resources.
Telegraf Internal
This plugin collects metrics about the telegraf agent and its plugins.
Some metrics are aggregates across all instances of a plugin type.
Internet Speed Monitor
This plugin collects metrics about the internet speed on the system like download/upload speed, latency etc using the speedtest.net service.
Interrupts
This plugin gathers metrics about IRQs from interrupts
(/proc/interrupts
) and soft-interrupts (/proc/softirqs
).
IPMI Sensor
This plugin gathers metrics from the Intelligent Platform Management
Interface
using the ipmitool
command line utility.
The ipmitool
requires access to the IPMI device. Please check the
permission section for possible solutions.
Ipset
This plugin gathers packets and bytes counters from Linux IP
sets using the ipset
command line tool.
IP sets created without the “counters” option are ignored.
Iptables
This plugin gathers packets and bytes counters for rules within a set of table and chain from the Linux’s iptables firewall.
Rules are identified through associated comment, so you must ensure that
the rules you want to monitor do have a unique comment using the
--comment
flag when adding them. Rules without comments are ignored.
The rule number cannot be used as identifier as it is not constant and may vary when rules are inserted/deleted at start-up or by automatic tools (interactive firewalls, fail2ban, …).
The iptables
command requires CAP_NET_ADMIN
and CAP_NET_RAW
capabilities. Check the permissions section for ways to grant them.
IPVS
This plugin gathers metrics about the IPVS virtual and real servers using the netlink socket interface of the Linux kernel.
The plugin requires CAP_NET_ADMIN
and CAP_NET_RAW
capabilities.
Check the permissions section for ways to grant them.
Jenkins
This plugin gathers information about the nodes and jobs running in a Jenkins instance. The plugin uses the Jenkins API and does not require a plugin on the server.
Jolokia2 Agent
This plugin reads JMX metrics from one or more Jolokia agent REST endpoints.
Jolokia2 Proxy
This plugin reads JMX metrics from one or more targets by interacting with a Jolokia proxy REST endpoint.
Juniper Telemetry
This service plugin reads OpenConfig telemetry data via the Junos Telemetry Interface (JTI) from configured from listed sensors.
Apache Kafka Consumer
This service plugin consumes messages from Kafka brokers in one of the supported data formats. The plugin uses consumer groups when talking to the Kafka cluster so multiple instances of Telegraf can consume messages from the same topic in parallel.
Kapacitor
This plugin collects metrics from the configured InfluxData Kapacitor instances.
Kernel
This plugin gathers metrics about the Linux kernel including, among others, the available entropy, Kernel Samepage Merging and Pressure Stall Information.
Kernel VM Statistics
This plugin gathers virtual memory statistics of the Linux
kernel by reading /proc/vmstat
. For a full list
of available fields check the /proc/vmstat
section of the proc man
page and for a
detailed description about the fields see the vmstat man
page.
Kibana
This plugin collects metrics about service status from Kibana instances via the server’s API.
This plugin requires Kibana version 6.0+.
Kinesis Consumer
This service input plugin consumes messages from AWS Kinesis data stream in one of the supported data formats.
KNX
This service plugin listens for messages on the KNX home-automation
bus by connecting via a KNX-IP interface.
Information about supported KNX datapoint-types can be found at the
underlying knx-go
project.
Kubernetes Inventory
This plugin gathers metrics from Kubernetes resources.
This plugin requires Kubernetes version 1.11+.
The gathered resources include for example daemon sets, deployments, endpoints, ingress, nodes, persistent volumes and many more.
This plugin produces high cardinality data, which when not controlled for will cause high load on your database. Please make sure to filter the produced metrics or configure your database to avoid cardinality issues!
Kubernetes
This plugin gathers metrics about running pods and containers of a Kubernetes instance via the Kubelet API.
This plugin has to run as part of a daemonset
within a Kubernetes
installation, i.e. Telegraf is running on every node within the cluster.
You should configure this plugin to talk to its locally running kubelet.
This plugin produces high cardinality data, which when not controlled for will cause high load on your database. Please make sure to filter the produced metrics or configure your database to avoid cardinality issues!
Arista LANZ Consumer
This service plugin consumes messages from the Arista Networks’ Latency Analyzer (LANZ) by receiving the datastream on TCP (usually through port 50001) on the switch’s management IP.
You will need to configure LANZ and enable streaming LANZ data, see the documentation for more details.
LDAP
This plugin gathers metrics from LDAP servers’ monitoring (cn=Monitor
)
backend. Currently this plugin supports
OpenLDAP and
389ds servers.
LeoFS
This plugin gathers metrics of the LEO filesystem services LeoGateway, LeoManager, and LeoStorage via SNMP. Check the LeoFS system monitoring documentation for details.
Libvirt
This plugin collects statistics about virtualized guests on a system by using the libvirt virtualization API. Metrics are gathered directly from the hypervisor on a host system, so Telegraf doesn’t have to be installed and configured on a guest system.
Linux Sysctl Filesystem
This plugin gathers metrics by reading the system filesystem files on Linux systems.
Logstash
This plugin gathers metrics from a Logstash endpoint using the Monitoring API.
This plugin supports Logstash 5+.
Lustre
This plugin gathers metrics for the Lustre® file
system using its entries in the proc
filesystem.
Reference the Lustre Monitoring and Statistics
Guide for
the reported information.
This plugin doesn’t report all information available but only a limited set of items. Check the metrics section.
Logical Volume Manager
This plugin collects information about physical volumes, volume groups and logical volumes from the Logical Volume Management (LVM) of the Linux kernel.
Mailchimp
This plugin gathers metrics from the Mailchimp service using the Mailchimp API.
MavLink
This plugin collects metrics from MavLink-compatible flight controllers such as ArduPilot or PX4 to live ingest flight metrics from unmanned systems (drones, planes, boats, etc.) Currently the ArduPilot-specific Mavlink dialect is used, check the Mavlink documentation for more details and the various messages available.
This plugin potentially generates a large amount of data. If your output
plugin cannot handle the rate of messages, use Metric
filters to limit the
metrics written to outputs, and/or the filters
configuration parameter
to limit which Mavlink messages this plugin parses.
Mcrouter
This plugin gathers statistics data from Mcrouter instances, a protocol router, developed and maintained by Facebook, for scaling memcached deployments.
MD RAID Statistics
This plugin gathers statistics about any Linux MD RAID
arrays configured on the
host by reading /proc/mdstat
. For a full list of available fields see
the /proc/mdstat
section of the proc man
page. For details on
the fields check the mdstat
wiki.
Memory
This plugin collects metrics about the system memory.
For an explanation of the difference between used and actual_used RAM, see Linux ate my ram.
Apache Mesos
This plugin gathers metrics from Apache Mesos instances. For more information, please check the Mesos Observability Metrics page.
Minecraft
This plugin collects score metrics from a Minecraft server using the RCON protocol.
This plugin supports Minecraft Java Edition versions 1.11 - 1.14. When using a version earlier than 1.13, be aware that the values for some criteria has changed and need to be modified.
Mock Data
The plugin generates mock-metrics based on different algorithms like sine-wave functions, random numbers and more with the configured names and tags. Those metrics are usefull during testing (e.g. processors) or if random data is required.
Modbus
This plugin collects data from Modbus registers using e.g. Modbus TCP or serial interfaces with Modbus RTU or Modbus ASCII.
MongoDB
This plugin collects metrics about MongoDB server instances by running database commands.
This plugin supports all versions marked as supported in the MongoDB Software Lifecycle Schedules.
Monit
This plugin gathers metrics and status information about local processes, remote hosts, files, file systems, directories and network interfaces managed and watched over by Monit.
The plugin supports Monit version 5.16+. To use this plugin you have to enable the HTTPD TCP port in Monit.
MQTT Consumer
This service plugin consumes messages from MQTT brokers for the configured topics in one of the supported data formats.
Multifile
This plugin reads the combined data from multiple files into a single
metric, creating one field or tag per file. This is often useful creating
custom metrics from the /sys
or /proc
filesystems.
To parse metrics from a single file you should use the file input plugin instead.
MySQL
This plugin gathers statistics from MySQL server instances.
To gather metrics from the performance schema, it must first be enabled in MySQL. See the performance schema quick start for details.
NATS Server Monitoring
This plugin gathers metrics of a NATS server instance using its monitoring endpoints.
NATS Consumer
This service plugin consumes messages from NATS instances in one of the supported data formats. A Queue Group is used when subscribing to subjects so multiple instances of telegraf can consume messages in parallel. The plugin supports authenticating via username/password, a credentials file (NATS 2.0), or an nkey seed file (NATS 2.0).
Neoom Beaam
This plugin gathers metrics from a Neoom Beaam gateway using the Beaam API with access token that can be created in the Neoom web interface. Please follow the developer instructions to create the token.
Neptune Apex
This plugin gathers metrics from Neptune Apex controller instances, allowing aquarium hobbyists to monitor and control their tanks based on various probes.
Network Response
This plugin tests UDP/TCP connection and produces metrics from the result, the response time and optionally verifies text in the response.
Netflow
This service plugin acts as a collector for Netflow v5, Netflow v9 and IPFIX flow information. The Layer 4 protocol numbers are gathered from the official IANA assignments. The internal field mappings for Netflow v5 fields are defined according to Cisco’s Netflow v5 documentation, Netflow v9 fields are defined according to Cisco’s Netflow v9 documentation and the ASA extensions. Definitions for IPFIX are according to IANA assignment document.
Network Connection Statistics
This plugin collects statistics about TCP connection states and UDP socket counts.
Network Filesystem
This plugin collects metrics about operations on Network Filesystem mounts. By default, only a limited number of general system-level metrics are collected, including basic read/write counts but more detailed metrics can be enabled.
Many of the metrics, even if tagged with a mount point, are really
per-server. E.g. if you mount two shares: nfs01:/vol/foo/bar
and
nfs01:/vol/foo/baz
, there will be two near identical entries in
/proc/self/mountstats
. This is a limitation of the metrics exposed by
the kernel, not by this plugin.
Nginx
This plugin gathers metrics from the open source Nginx web server. Nginx Plus is a commercial version. For more information about differences between Nginx (F/OSS) and Nginx Plus, see the Nginx documentation.
Nginx Plus
This plugin gathers metrics from the commercial Nginx Plus web server via the status module.
Using this plugin requires a license.
For more information about differences between Nginx (F/OSS) and Nginx Plus, see the Nginx documentation.
Nginx Plus API
This plugin gathers metrics from the commercial Nginx Plus web server via the REST API.
Using this plugin requires a license.
For more information about differences between Nginx (F/OSS) and Nginx Plus, see the Nginx documentation.
Nginx Stream Server Traffic
This plugin gathers metrics from the Nginx web server using the external stream server traffic status module. This module provides access to stream host status information containing the current status of servers, upstreams and caches, similar to the live activity monitoring of Nginx plus. For module configuration details please see the module documentation.
Nginx Upstream Check
This plugin gathers metrics from the Nginx web server using the upstream check module. This module periodically sends the configured requests to servers in the Nginx’s upstream determining their availability.
Nginx Virtual Host Traffic
This plugin gathers metrics from the Nginx web server using the external virtual host traffic status module. This module provides access to virtual host status information containing the current status of servers, upstreams and caches, similar to the live activity monitoring of Nginx plus. For module configuration details please see the module documentation.
Hashicorp Nomad
This plugin collects metrics from every Nomad agent of the specified cluster. Telegraf may be present in every node and connect to the agent locally.
NLnet Labs Name Server Daemon
This plugin gathers statistics from a NLnet Labs Name Server Daemon, an authoritative DNS name server.
Netgear Switch Discovery Protocol
This plugin gathers metrics from devices via the Netgear Switch Discovery Protocol for all available switches and ports.
NSQ
This plugin gathers metrics from NSQ realtime distributed messaging platform instances using the NSQD API.
NSQ Consumer
This service plugin consumes messages from NSQ realtime distributed messaging platform brokers in one of the supported data formats.
Kernel Network Statistics
This plugin collects network metrics from /proc/net/netstat
,
/proc/net/snmp
and /proc/net/snmp6
files
Network Time Protocol Query
This plugin gathers metrics about Network Time Protocol queries.
This plugin requires the ntpq
executable to be installed on the
system.
Nvidia System Management Interface (SMI)
This plugin collects metrics for NVIDIA GPUs including memory and GPU usage, temperature and other, using the NVIDIA System Management Interface.
This plugin requires the nvidia-smi
binary to be installed on the
system.
OPC UA Client Reader
This plugin gathers data from an OPC UA server by subscribing to the configured nodes.
OPC UA Client Listener
This service plugin receives data from an OPC UA server by subscribing to nodes and events.
OpenLDAP
This plugin gathers metrics from OpenLDAP’s
cn=Monitor
backend. To use this plugin you must enable the slapd
monitoring
backend.
It is recommended to use the newer ldap
input plugin instead.
OpenNTPD
This plugin gathers metrics from OpenNTPD
using the ntpctl
command.
The ntpctl
binary must be present on the system and executable by
Telegraf. The plugin supports using sudo
for execution.
OpenSearch Query
This plugin queries OpenSearch endpoints to derive metrics from data stored in an OpenSearch cluster like the number of hits for a search query, statistics on numeric fields, document counts, etc.
This plugins is tested against OpenSearch 2.5.0 and 1.3.7 but newer version should also work.
OpenSMTPD
This plugin gathers statistics from
OpenSMTPD using the smtpctl
binary.
The smtpctl
binary must be present on the system and executable by
Telegraf. The plugin supports using sudo
for execution.
OpenStack
This plugin collects metrics about services from OpenStack endpoints.
Due to the large number of unique tags generated by the plugin it is
highly recommended to use metric
filtering like taginclude
and
tagexclude
to reduce cardinality.
OpenTelemetry
This service plugin receives traces, metrics, logs and profiles from OpenTelemetry clients and compatible agents via gRPC.
OpenWeatherMap
This plugin collects weather and forecast data from the OpenWeatherMap service.
To use this plugin you will need an APP-ID to work.
P4 Runtime
This plugin collects metrics from the data plane of network devices, such
as Programmable Switches or Programmable Network Interface Cards by
reading the Counter
values of the P4 program running
on the device. Metrics are collected through a gRPC connection with the
P4 runtime server.
If you want to gather information about the program name, please follow the instruction in 6.2.1. Annotating P4 code with PkgInfo to modify your P4 program.
Passenger
This plugin gathers metrics from the Phusion Passenger service.
Depending on your environment, this plugin can create a high number of series which can cause high load on your database. Please use measurement filtering to manage your series cardinality!
The plugin uses the passenger-status
command line tool.
This plugin requires the passenger-status
binary to be installed on
the system and to be executable by Telegraf.
PF
This plugin gathers information from the FreeBSD or OpenBSD pf firewall
like the number of current entries in the table, counters for the number
of searches, inserts, and removals to tables using the pfctl
command.
This plugin requires the pfctl
binary to be executable by Telegraf. It
requires read access to the device file /dev/pf
.
PgBouncer
This plugin collects metrics from a PgBouncer load balancer instance. Check the documentation for available metrics and their meaning.
This plugin requires PgBouncer v1.5+.
PHP-FPM
This plugin gathers statistics of the PHP FastCGI Process Manager using either the HTTP status page or the fpm socket.
Ping
This plugin collects metrics on ICMP ping packets including the round-trip time, response times and other packet statistics.
When using the exec
method the ping
command must be available on the
systems and executable by Telegraf.
Postfix
This plugin collects metrics on a local Postfix instance reporting the length, size and age of the active, hold, incoming, maildrop, and deferred queues.
PostgreSQL
This plugin provides metrics for a PostgreSQL Server instance. Recorded metrics are lightweight and use Dynamic Management Views supplied by PostgreSQL.
PostgreSQL Extensible
This plugin queries a PostgreSQL server and provides metrics for the returned result. This is useful when using PostgreSQL extensions to collect additional metrics.
Please also check the more generic sql input plugin.
PowerDNS
This plugin gathers metrics from PowerDNS servers using unix sockets.
This plugin will need access to the powerdns control socket.
PowerDNS Recursor
This plugin gathers metrics from PowerDNS Recursor instances using the unix control-sockets.
Telegraf will need read and write access to the control socket and the
socket_dir
.
Processes
This plugin gathers info about the total number of processes and groups them by status (zombie, sleeping, running, etc.)
On Linux this plugin requires access to procfs (/proc), on other
operating systems the plugin must be able to execute the ps
command.
Procstat
This plugin allows to monitor the system resource usage of one or more processes. The plugin provides metrics about the individual processes as well as accumulated metrics on the number of PIDs returned on a search. Processes can be filtered e.g. by regular expressions on the command, the user owning the process or the service that started the process.
Prometheus
This plugin gathers metrics from Prometheus metric endpoints such as applications implementing such an endpoint or node-exporter instances. This plugin also supports various service-discovery methods.
Proxmox
This plugin gathers metrics about containers and VMs running on a Proxmox instance using the Proxmox API.
Puppet Agent
This plugin gathers metrics of a Puppet agent by parsing variables from the local last-run-summary file.
RabbitMQ
This plugin gathers statistics from RabbitMQ servers via the Management Plugin.
Raindrops Middleware
This plugin collects statistics for Raindrops middleware instances.
RAS Daemon
This plugin gathers statistics and error counts provided by the local RAS (reliability, availability and serviceability) daemon.
This plugin requires access to SQLite3 database from RASDaemon
. Please
make sure the Telegraf user has the required permissions to this
database!
RavenDB
This plugin gathers metrics from RavenDB servers via the monitoring API.
This plugin requires RavenDB Server v5.2+.
Redfish
This plugin gathers metrics and status information of server hardware with enabled DMTF’s Redfish support.
Redis Sentinel
This plugin collects metrics for Redis Sentinel instances monitoring Redis servers and replicas.
Riemann Listener
This service plugin listens for messages from Riemann clients using the protocol buffer format.
Siemens S7
This plugin reads metrics from Siemens PLCs via the S7 protocol.
Salesforce
This plugin gathers metrics about the limits in your Salesforce organization and the remaining usage using the limits endpoint of Salesforce’s REST API.
LM Sensors
This plugin collects metrics from hardware sensors using lm-sensors.
This plugin requires the lm-sensors package to be installed on the
system and sensors
to be executable from Telegraf.
SFlow
This service plugin produces metrics from information received by acting as a SFlow V5 collector. Currently, the plugin can collect Flow Samples of Ethernet / IPv4, IPv4 TCP and UDP headers. Counters and other header samples are ignored. Please use the netflow plugin for a more modern and sophisticated implementation.
This plugin produces high cardinality data, which when not controlled for will cause high load on your database. Please make sure to filter the produced metrics or configure your database to avoid cardinality issues!
Slab
This plugin collects details on memory consumption of Slab
cache
entries by parsing the /proc/slabinfo
file respecting the HOST_PROC
environment variable.
This plugin requires /proc/slabinfo
to be readable by the Telegraf
user.
SLURM
This plugin gather diagnoses, jobs, nodes, partitions and reservation
metrics for a SLURM instance using the REST
API provided by the slurmrestd
daemon.
This plugin supports the REST API
v0.0.38 which must be enabled in
the slurmrestd
daemon. For more information, check the
documentation.
S.M.A.R.T.
This plugin collects Self-Monitoring, Analysis and Reporting
Technology
information for storage devices information using the smartmontools
package. This plugin also supports NVMe devices by using the
nvme-cli
package.
This plugin requires the smartmontools
and, for NVMe devices, the
nvme-cli
packages to be installed on your system. The smartctl
and nvme
commands must to be executable by Telegraf.
smartctl JSON
This plugin collects Self-Monitoring, Analysis and Reporting
Technology
information for storage devices information using the smartmontools
package. Contrary to the smart
plugin, this plugin does not use the
nvme-cli
package to collect additional information about NVMe
devices.
This plugin requires smartmontools
to be installed on your system.
The smartctl
command must to be executable by Telegraf and must
supporting JSON output. JSON output was added in v7.0 and improved in
subsequent releases
SNMP
This plugin gathers metrics by polling SNMP agents with individual OIDs or complete SNMP tables.
The path setting is shared between all instances of all SNMP plugin types!
SNMP Trap
This service plugin listens for SNMP notifications like traps and inform requests. Notifications are received on plain UDP with a configurable port.
The path setting is shared between all instances of all SNMP plugin types!
Socket Listener
This service plugin listens for messages on sockets (TCP, UDP, Unix or Unixgram) and parses the packets received in one of the supported data formats.
Socket Statistics
This plugin gathers metrics for established network connections using
iproute2’s ss
command. The ss
command does not require specific privileges.
This plugin produces high cardinality data, which when not controlled for will cause high load on your database. Please make sure to filter the produced metrics or configure your database to avoid cardinality issues!
Apache Solr
This plugin collects statistics from Solr instances using the MBean Request Handler. For additional details on performance statistics check the performance statistics reference.
This plugin requires Apache Solr v3.5+.
SQL
This plugin reads metrics from performing
SQL queries against a SQL
server. Different server types are supported and their settings might
differ (especially the connection parameters). Please check the list of
supported SQL drivers for the
driver
name and options for the data-source-name (dsn
) options.
Microsoft SQL Server
This plugin provides metrics for your SQL Server instance. Recorded metrics are lightweight and use Dynamic Management Views supplied by SQL Server.
This plugin supports SQL server versions supported by Microsoft (see lifecycle dates), Azure SQL Databases (Single), Azure SQL Managed Instances, Azure SQL Elastic Pools and Azure Arc-enabled SQL Managed Instances.
Stackdriver Google Cloud Monitoring
This plugin collects metrics from Google Cloud Monitoring (formerly Stackdriver) using the Cloud Monitoring API v3.
This plugin accesses APIs which are chargeable, cost might incur.
Supervisor
This plugin gathers information about processes running under supervisord using the XML-RPC API.
This plugin requires supervisor v3.3.2+.
Suricata
This service plugin reports internal performance counters of the Suricata IDS/IPS engine, such as captured traffic volume, memory usage, uptime, flow counters, and much more. This plugin provides a socket for the Suricata log output to write JSON stats output to, and processes the incoming data to fit Telegraf’s format. It can also report for triggered Suricata IDS/IPS alerts.
Synproxy
This plugin gathers metrics about the Linux netfilter’s synproxy module used for mitigating SYN attacks.
Syslog
This service plugin listens for syslog messages transmitted over a Unix Domain socket, UDP, TCP or TLS with or without the octet counting framing.
Syslog messages should be formatted according to the syslog protocol or the BSD syslog protocol.
System Performance Statistics
This plugin collects Linux system performance
statistics using the sysstat
package. This plugin uses the sadc
collector utility and and parses the
created binary data file using the sadf
utility.
This plugin requires the sysstat
package to be installed on the system
and both sadc
and sadf
to be executable by Telegraf.
System
This plugin gathers general system statistics like system load, uptime or
the number of users logged in. It is similar to the unix uptime
command.
Systemd-Units
This plugin gathers the status of systemd-units on Linux, using systemd’s DBus interface.
This plugin requires systemd v230+!
Tacacs
This plugin collects metrics on Terminal Access Controller Access Control System authentication requests like response status and response time from servers such as Aruba ClearPass, FreeRADIUS or TACACS+.
The plugin is primarily meant to monitor how long it takes for the server to fully handle an authentication request, including all potential dependent calls (for example to AD servers, or other sources of truth).
Tail
This service plugin continuously reads a file and parses new data as it arrives similar to the tail -f command. The incoming messages are expected to be in one of the supported data formats.
Teamspeak
This plugin collects statistics of one or more virtual
Teamspeak servers using the ServerQuery
interface. Currently this plugin only supports Teamspeak 3 servers.
For querying external Teamspeak server, make sure to add the Telegraf
host to the query_ip_allowlist.txt
file in the Teamspeak Server
directory.
Temperature
This plugin gathers metrics on system temperatures.
Tengine Web Server
This plugin gathers metrics from the Tengine Web Server via the reqstat module.
Apache Tomcat
This plugin collects statistics from a Tomcat server instance using the manager status page. See the Tomcat documentation for details of these statistics.
UPSD
This plugin reads data of one or more Uninterruptible Power Supplies from a Network UPS Tools daemon using its NUT network protocol.
uWSGI
This plugin gathers metrics about uWSGI using its Stats Server.
Varnish
This plugin gathers statistics from a local Varnish HTTP
Cache instance using the varnishstat
command.
This plugin requires the varnishstat
executable to be installed on the
system and executable by Telegraf. Furthermore, the plugin requires
Varnish v6.0.2+.
Hashicorp Vault
This plugin collects metrics from every Vault agent of a cluster.
This plugin requires Vault v1.8.5+
VMware vSphere
This plugin gathers metrics from vSphere servers of a vCenter including clusters, hosts, resource pools, VMs, datastores and vSAN information.
This plugin requires vSphere v7.0+.
Webhooks
This service plugin provides an HTTP server and register for multiple webhook listeners.
WHOIS
This plugin queries WHOIS information for configured domains and provides metrics such as expiration timestamps, registrar details and domain status from e.g. IANA or ICANN servers.
Windows Eventlog
This plugin gathers metrics from the Windows event log on Windows Vista and higher.
Some event channels, like the System Log, require Administrator permissions to subscribe.
Windows Performance Counters
This plugin produces metrics from the collected Windows Performance Counters.
Windows Services
This plugin collects information about the status of Windows services.
Monitoring some services may require running Telegraf with administrator privileges.
Windows Management Instrumentation
This plugin queries information or invokes methods using Windows Management Instrumentation classes. This allows capturing and filtering virtually any configuration or metric value exposed through WMI.
The telegraf service user must have at least permission to read the WMI namespace being queried.
Wireguard
This plugin collects statistics on a local
Wireguard server using the wgctrl
library. The plugin reports gauge metrics for Wireguard interface
device(s) and its peers.
Wireless
This plugin gathers metrics about wireless link quality by reading the
/proc/net/wireless
file.
x509 Certificate
This plugin provides information about X.509 certificates accessible e.g. via local file, tcp, udp, https or smtp protocols.
When using a UDP address as a certificate source, the server must support DTLS.
Dell EMC XtremIO
This plugin gathers metrics from a Dell EMC XtremIO Storage Array instance using the v3 Rest API.
ZFS
This plugin gathers metrics from ZFS
filesystems using /proc/spl/kstat/zfs
on Linux and sysctl
, zfs
and
zpool
on FreeBSD.
Zipkin
This service plugin implements the Zipkin HTTP server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures.
This plugin produces high cardinality data, which when not controlled for will cause high load on your database. Please make sure to filter the produced metrics or configure your database to avoid cardinality issues!
Apache Zookeeper
This plugin collects variables from
Zookeeper instances using the mntr
command.
If the Prometheus Metric provider is enabled in Zookeeper use the
prometheus plugin instead with
http://<ip>:7000/metrics
.
Output plugins
Telegraf processor plugins write metrics to various destinations.
Amon
This plugin writes metrics to Amon monitoring
platform. It requires a serverkey
and
amoninstance
URL which can be obtained
here for your account.
If point values being sent cannot be converted to a float64
, the
metric is skipped.
AMQP
This plugin writes to an Advanced Message Queuing Protocol v0.9.1 broker. A prominent implementation of this protocol is RabbitMQ.
This plugin does not bind the AMQP exchange to a queue.
For an introduction check the AMQP concepts page and the RabbitMQ getting started guide.
Azure Application Insights
This plugin writes metrics to the Azure Application Insights service.
Azure Data Explorer
This plugin writes metrics to the Azure Data Explorer, Azure Synapse Data Explorer, and Real time analytics in Fabric services.
Azure Data Explorer is a distributed, columnar store, purpose built for any type of logs, metrics and time series data.
Azure Monitor
This plugin writes metrics to Azure Monitor which has a metric resolution of one minute. To accomodate for this in Telegraf, the plugin will automatically aggregate metrics into one minute buckets and send them to the service on every flush interval.
The Azure Monitor custom metrics service is currently in preview and might not be available in all Azure regions. Please also take the metric time limitations into account!
The metrics from each input plugin will be written to a separate Azure
Monitor namespace, prefixed with Telegraf/
by default. The field name
for each metric is written as the Azure Monitor metric name. All field
values are written as a summarized set that includes: min, max, sum,
count. Tags are written as a dimension on each Azure Monitor metric.
Google BigQuery
This plugin writes metrics to the Google Cloud BigQuery service and requires authentication with Google Cloud using either a service account or user credentials.
Be aware that this plugin accesses APIs that are chargeable and might incur costs.
Clarify
This plugin writes metrics to Clarify. To use this plugin you will need to obtain a set of credentials.
Google Cloud PubSub
This plugin publishes metrics to a Google Cloud PubSub topic in one of the supported data formats.
Amazon CloudWatch
This plugin writes metrics to the Amazon CloudWatch service.
Amazon CloudWatch Logs
This plugin writes log-metrics to the Amazon CloudWatch service.
CrateDB
This plugin writes metrics to CrateDB via its PostgreSQL protocol.
Datadog
This plugin writes metrics to the Datadog Metrics
API and
requires an apikey
which can be obtained
here for the account. >
[!NOTE] This plugin supports the v1 API.
Dynatrace
This plugin writes metrics to Dynatrace via the Dynatrace Metrics API V2. It may be run alongside the Dynatrace OneAgent for automatic authentication or it may be run standalone on a host without OneAgent by specifying a URL and API Token.
More information on the plugin can be found in the Dynatrace documentation.
All metrics are reported as gauges, unless they are specified to be
delta counters using the additional_counters
or
additional_counters_patterns
config option (see below). See the
Dynatrace Metrics ingestion protocol
documentation
for details on the types defined there.
Elasticsearch
This plugin writes metrics to Elasticsearch via HTTP using the Elastic client library. The plugin supports Elasticsearch releases from v5.x up to v7.x.
Azure Event Hubs
This plugin writes metrics to the Azure Event Hubs service in any of the supported data formats. Metrics are sent as batches with each message payload containing one metric object, preferably as JSON as this eases integration with downstream components.
Each patch is sent to a single Event Hub within a namespace. In case no partition key is specified the batches will be automatically load-balanced (round-robin) across all the Event Hub partitions.
Executable
This plugin writes metrics to an external application via stdin
. The
command will be executed on each write creating a new process. Metrics
are passed in one of the supported data
formats.
The executable and the individual parameters must be defined as a list.
All outputs of the executable to stderr
will be logged in the Telegraf
log.
For better performance consider execd which runs continuously.
Executable Daemon
This plugin writes metrics to an external daemon program via stdin
. The
command will be executed once and metrics will be passed to it on every
write in one of the supported data
formats. The executable and the
individual parameters must be defined as a list.
All outputs of the executable to stderr
will be logged in the Telegraf
log. Telegraf minimum version: Telegraf 1.15.0
File
This plugin writes metrics to one or more local files in one of the supported data formats.
Graphite
This plugin writes metrics to Graphite via TCP. For details on the translation between Telegraf Metrics and Graphite output see the Graphite data format.
Graylog
This plugin writes metrics to a Graylog instance using the GELF data format.
GroundWork
This plugin writes metrics to a GroundWork Monitor instance.
Plugin only supports GroundWork v8 or later.
Health
This plugin provides a HTTP health check endpoint that can be configured to return failure status codes based on the value of a metric.
When the plugin is healthy it will return a 200 response; when unhealthy it will return a 503 response. The default state is healthy, one or more checks must fail in order for the resource to enter the failed state.
HTTP
This plugin writes metrics to a HTTP endpoint using one of the supported data formats. For data formats supporting batching, metrics are sent in batches by default.
InfluxDB v1.x
This plugin writes metrics to a InfluxDB v1.x instance via HTTP or UDP protocol.
InfluxDB v2.x
This plugin writes metrics to a InfluxDB v2.x instance via HTTP.
Inlong
This plugin publishes metrics to an Apache InLong instance.
Instrumental
This plugin writes metrics to the Instrumental Collector API and requires a project-specific API token.
Instrumental accepts stats in a format very close to Graphite, with the
only difference being that the type of stat (gauge, increment) is the
first token, separated from the metric itself by whitespace. The
increment
type is only used if the metric comes in as a counter via the
statsd input plugin.
Apache IoTDB
This plugin writes metrics to an Apache IoTDB instance, a database for the Internet of Things, supporting session connection and data insertion.
Kafka
This plugin writes metrics to a Kafka Broker acting a Kafka Producer.
Amazon Kinesis
This plugin writes metrics to a Amazon Kinesis endpoint. It will batch all Points in one request to reduce the number of API requests.
Please consult Amazon’s official documentation for more details on the Kinesis architecture and concepts.
Librato
This plugin writes metrics to the Librato
service. It requires an api_user
and api_token
which can be obtained
here for your account.
The source_tag
option in the Configuration file is used to send
contextual information from Point Tags to the API. Besides from this, the
plugin currently does not send any additional associated Point Tags.
If the point value being sent cannot be converted to a float64
, the
metric is skipped.
Grafana Loki
This plugin writes logs to a Grafana Loki
instance, using the metric name and tags as labels. The log line will
contain all fields in key="value"
format easily parsable with the
logfmt
parser in Loki.
Logs within each stream are sorted by timestamp before being sent to Loki.
Microsoft Fabric
This plugin writes metrics to Real time analytics in Fabric services.
MongoDB
This plugin writes metrics to MongoDB automatically creating collections as time series collections if they don’t exist.
This plugin requires MongoDB v5 or later for time series collections.
MQTT Producer
This plugin writes metrics to a MQTT broker
acting as a MQTT producer. The plugin supports the MQTT protocols 3.1.1
and 5
.
In v2.0.12+ of the mosquitto MQTT server, there is a
bug requiring the
keep_alive
value to be set non-zero in Telegraf. Otherwise, the server
will return with identifier rejected
. As a reference
eclipse/paho.golang
sets the keep_alive
to 30.
NATS
This plugin writes metrics to subjects of a set of NATS instances in one of the supported data formats.
Nebius Cloud Monitoring
This plugin writes metrics to the Nebuis Cloud Monitoring service.
New Relic
This plugins writes metrics to New Relic Insights using the Metrics API. To use this plugin you have to obtain an Insights API Key.
NSQ
This plugin writes metrics to the given topic of a NSQ instance as a producer in one of the supported data formats.
OpenSearch
This plugin writes metrics to a OpenSearch instance via HTTP. It supports OpenSearch releases v1 and v2 but future comparability with 1.x is not guaranteed and instead will focus on 2.x support.
Consider using the existing Elasticsearch plugin for 1.x.
OpenTelemetry
This plugin writes metrics to OpenTelemetry servers and agents via gRPC.
OpenTSDB
This plugin writes metrics to an OpenTSDB instance using either the telnet or HTTP mode. Using the HTTP API is recommended since OpenTSDB 2.0.
Parquet
This plugin writes metrics to parquet files. By default, metrics are grouped by metric name and written all to the same file.
If a metric schema does not match the schema in the file it will be dropped.
To lean more about the parquet format, check out the parquet docs as well as a blog post on querying parquet.
PostgreSQL
This plugin writes metrics to a PostgreSQL (or compatible) server managing the schema and automatically updating missing columns.
Prometheus
This plugin starts a Prometheus client and
exposes the written metrics on a /metrics
endpoint by default. This
endpoint can then be polled by a Prometheus server.
Quix
This plugin writes metrics to a Quix endpoint.
Please consult Quix’s official documentation for more details on the Quix platform architecture and concepts.
Redis Time Series
This plugin writes metrics to a Redis time-series server.
Remote File
This plugin writes metrics to files in a remote location using the rclone library. Currently the following backends are supported:
Socket Writer
This plugin writes metrics to a network service e.g. via UDP or TCP in one of the supported data formats.
SQL
This plugin writes metrics to a supported SQL database using a simple, hard-coded database schema. There is a table for each metric type with the table name corresponding to the metric name. There is a column per field and a column per tag with an optional column for the metric timestamp.
A row is written for every metric. This means multiple metrics are never merged into a single row, even if they have the same metric name, tags, and timestamp.
The plugin uses Golang’s generic “database/sql” interface and third party drivers. See the driver-specific section for a list of supported drivers and details.
Google Cloud Monitoring
This plugin writes metrics to a project
in Google Cloud
Monitoring (formerly called
Stackdriver).
Authentication
with Google Cloud is required using either a service account or user
credentials.
This plugin accesses APIs which are chargeable and might incur costs.
By default, Metrics are grouped by the namespace
variable and metric
key, eg: custom.googleapis.com/telegraf/system/load5
. However, this is
not the best practice. Setting metric_name_format = "official"
will
produce a more easily queried format of:
metric_type_prefix/[namespace_]name_key/kind
. If the global namespace
is not set, it is omitted as well.
ActiveMQ STOMP
This plugin writes metrics to an Active MQ Broker for STOMP but also supports Amazon MQ brokers. Metrics can be written in one of the supported data formats.
Sumo Logic
This plugin writes metrics to a Sumo Logic HTTP Source using one of the following data formats:
graphite
for Content-Type ofapplication/vnd.sumologic.graphite
carbon2
for Content-Type ofapplication/vnd.sumologic.carbon2
prometheus
for Content-Type ofapplication/vnd.sumologic.prometheus
Syslog
This plugin writes metrics as syslog messages via UDP in RFC5426 format or via TCP in RFC6587 format or via TLS in RFC5425 format, with or without the octet counting framing.
Syslog messages are formatted according to RFC5424 limiting the field sizes when sending messages according to the syslog message format section of the RFC. Sending messages beyond these sizes may get dropped by a strict receiver silently.
Amazon Timestream
This plugin writes metrics to the Amazon Timestream service.
Wavefront
This plugin writes metrics to a Wavefront instance or a Wavefront Proxy instance over HTTP or HTTPS.
Websocket
This plugin writes metrics to a WebSocket endpoint in one of the supported data formats.
Yandex Cloud Monitoring
This plugin writes metrics to the Yandex Cloud Monitoring service.
Zabbix
This plugin writes metrics to Zabbix via traps. It has been tested with versions v3.0, v4.0 and v6.0 but should work with newer versions of Zabbix as long as the protocol doesn’t change.
Aggregator plugins
Telegraf aggregator plugins create aggregate metrics (for example, mean, min, max, quantiles, etc.)
Basic Statistics
This plugin computes basic statistics such as counts, differences,
minima, maxima, mean values, non-negative differences etc. for a set of
metrics and emits these statistical values every period
.
Derivative
This plugin computes the derivative for all fields of the aggregated metrics.
Final
This plugin emits the last metric of a contiguous series, defined as a
series which receives updates within the time period in series_timeout
.
The contiguous series may be longer than the time interval defined by
period
. When a series has not been updated within the series_timeout
,
the last metric is emitted.
Alternatively, the plugin emits the last metric in the period
for the
periodic
output strategy.
This is useful for getting the final value for data sources that produce discrete time series such as procstat, cgroup, kubernetes etc. or to downsample metrics collected at a higher frequency.
All emited metrics do have fields with _final
appended to the
field-name by default.
Histogram
This plugin creates histograms containing the counts of field values
within the configured range. The histogram metric is emitted every
period
.
In cumulative
mode, values added to a bucket are also added to the
consecutive buckets in the distribution creating a cumulative
histogram.
By default bucket counts are not reset between periods and will be
non-strictly increasing while Telegraf is running. This behavior can be
by setting the reset
parameter.
Merge
This plugin merges metrics of the same series and timestamp into new metrics with the super-set of fields. A series here is defined by the metric name and the tag key-value set.
Use this plugin when fields are split over multiple metrics, with the same measurement, tag set and timestamp.
Minimum-Maximum
This plugin aggregates the minimum and maximum values of each field it
sees, emitting the aggrate every period
seconds with field names
suffixed by _min
and _max
respectively.
Quantile
This plugin aggregates each numeric field per metric into the specified
quantiles and emits the quantiles every period
. Different aggregation
algorithms are supported with varying accuracy and limitations.
Starlark
This plugin allows to implement a custom aggregator plugin via a Starlark script.
The Starlark language is a dialect of Python and will be familiar to those who have experience with the Python language. However, there are major differences. Existing Python code is unlikely to work unmodified.
The execution environment is sandboxed, and it is not possible to access the local filesystem or perfoming network operations. This is by design of the Starlark language as a configuration language.
The Starlark script used by this plugin needs to be composed of the three
methods defining an aggreagtor named add
, push
and reset
.
The add
method is called as soon as a new metric is added to the plugin
the metrics to the aggregator. After period
, the push
method is
called to output the resulting metrics and finally the aggregation is
reset by using the reset
method of the Starlark script.
The Starlark functions might use the global function state
to keep
aggregation information such as added metrics etc.
More details on the syntax and available functions can be found in the Starlark specification.
Value Counter
This plugin counts the occurrence of unique values in fields and emits
the counter once every period
with the field-names being suffixed by
the unique value converted to string
.
The fields to be counted must be configured using the fields
setting,
otherwise no field will be counted and no metric is emitted.
This plugin is useful to e.g. count the occurrances of HTTP status codes
or other categorical values in the defined period
.
Counting fields with a high number of potential values may produce a significant amounts of new fields and results in an increased memory usage. Take care to only count fields with a limited set of values.
Processor plugins
Telegraf output plugins transform, decorate, and filter metrics.
AWS EC2 Metadata
This plugin appends metadata gathered from AWS IMDS to metrics associated with EC2 instances.
Batch
This plugin groups metrics into batches by adding a batch tag. This is
useful for parallel processing of metrics where downstream processors,
aggregators or outputs can then select a batch using tagpass
or
metricpass
.
Metrics are distributed across batches using the round-robin scheme.
Clone
This plugin creates a copy of each metric passing through it, preserving the original metric and allowing modifications such as metric modifiers in the copied metric.
Metric filtering options apply to both the clone and the original metric.
Converter
This plugin allows transforming tags into fields or timestamps, and converting fields into tags or timestamps. The plugin furthermore allows to change the field type.
When converting tags to fields, take care to ensure the series is still uniquely identifiable. Fields with the same series key (measurement + tags) will overwrite one another.
Cumulative Sum
This plugin accumulates field values per-metric over time and emit metrics with cumulative sums whenever a metric is updated. This is useful when using outputs relying on monotonically increasing values
Metrics within a series are accumulated in the order of arrival and not in order of their timestamps!
Date
This plugin adds the metric timestamp as a human readable tag. A common use is to add a tag that can be used to group by month or year.
Dedup
This plugin filters metrics whose field values are exact repetitions of
the previous values. This plugin will store its state between runs if the
statefile
option in the agent config section is set.
Defaults
This plugin allows to specify default values for fields and tags for cases where the tag or field does not exist or has an empty value.
Enum
This plugin allows the mapping of field or tag values according to the configured enumeration. The main use-case is to rewrite numerical values into human-readable values or vice versa. Default mappings can be configured to be used for all remaining values.
Execd
This plugin runs an external program as a separate process and pipes
metrics in to the process’s stdin
and reads processed metrics from its
stdout
. Program output on stderr
is logged.
Filepath
This plugin allows transforming a path, using e.g. basename to extract the last path element, for tag and field values. Values can be modified in place or stored in another key.
Filter
This plugin allows specifying a set of rules for metrics with the ability to keep or drop those metrics. It does not modify the metric. As such a user might want to apply this processor to remove metrics from the processing/output stream.
The filtering is not output specific, but will apply to the metrics processed by this processor.
Network Interface Name
This plugin looks up network interface names using SNMP.
Lookup
This plugin allows to use one or more files containing lookup-tables for annotating incoming metrics. The lookup is static as the files are only used on startup. The main use-case for this is to annotate metrics with additional tags e.g. dependent on their source. Multiple tags can be added depending on the lookup-table files.
The lookup key can be generated using a Golang template with the ability
to access the metric name via {{.Name}}
, the tag values via {{.Tag "mytag"}}
, with mytag
being the tag-name and field-values via
{{.Field "myfield"}}
, with myfield
being the field-name. Non-existing
tags and field will result in an empty string or nil
respectively. In
case the key cannot be found, the metric is passed-through unchanged. By
default all matching tags are added and existing tag-values are
overwritten.
The plugin only supports the addition of tags and thus all mapped tag-values need to be strings!
Noise
This plugin is used to add noise to numerical field values. For each field a noise is generated using a defined probability density function and added to the value. The function type can be configured as Laplace, Gaussian or Uniform.
Override
This plugin allows to modify metrics using metric
modifiers. Use-cases of this
plugin encompass ensuring certain tags or naming conventions are adhered
to irrespective of input plugin configurations, e.g. by taginclude
.
Metric filtering options apply to both the clone and the original metric.
Parser
This plugin parses defined fields or tags containing the specified data format and creates new metrics based on the resulting fields and tags.
Pivot
This plugin rotates single-valued metrics into a multi-field metric. The result is a more compact representation for applying mathematical operators to or do comparisons between metrics or flatten fields.
To perform the reverse operation use the unpivot processor.
Port Name Lookup
This plugin allows converting a tag or field containing a well-known
port, either a number (e.g. 80
) for TCP ports or a port and protocol
(e.g. 443/tcp
), to the registered service name.
Regex
This plugin transforms tag and field values as well as renaming tags, fields and metrics using regular expression patterns. Tag and field values can be transformed using named-groups in a batch fashion.
The regex processor only operates on string fields. It will not work on any other data types, like an integer or float.
Reverse DNS
This plugin does a reverse-dns lookup on tags or fields containing IPs and creates a tag or field containing the corresponding DNS name.
S2 Geo
This plugin uses the WGS-84 coordinates in decimal degrees specified in the latitude and longitude fields and adds a tag with the corresponding S2 cell ID token of specified cell level.
Scale
This plugin allows to scale field-values from an input range into the given output range according to this formula:
Alternatively, you can apply a factor and offset to the input according to this formula
Input fields are converted to floating point values if possible. Otherwise, fields that cannot be converted are ignored and keep their original value.
Neither the input nor output values are clipped to their respective ranges!
SNMP Lookup
This plugin looks up extra information via SNMP and adds it to the metric as tags.
Split
This plugin splits a metric up into one or more metrics based on a configured template. The resulting metrics will be timestamped according to the source metric. Templates can overlap, where a field or tag, is used across templates and as a result end up in multiple metrics.
If drop original is changed to true, then the plugin can result in dropping all metrics when no match is found! Please ensure to test templates before putting into production and use metric filtering to avoid data loss.
Starlark
This plugin calls the provided Starlark function for each matched metric, allowing for custom programmatic metric processing.
The Starlark language is a dialect of Python, and will be familiar to those who have experience with the Python language. However, there are major differences. Existing Python code is unlikely to work unmodified. The execution environment is sandboxed, and it is not possible to do I/O operations such as reading from files or sockets.
The Starlark specification has details about the syntax and available functions.
Strings
This plugin allows to manipulate strings in the measurement name, tag and field values using different functions.
Tag Limit
This plugin ensures that only a certain number of tags are preserved for any given metric, and to choose the tags to preserve when the number of tags appended by the data source is over the limit.
This can be useful when dealing with output systems (e.g. Stackdriver) that impose hard limits on the number of tags/labels per metric or where high levels of cardinality are computationally and/or financially expensive.
Template
This plugin applies templates to metrics for generatuing a new tag. The primary use case of this plugin is to create a tag that can be used for dynamic routing to multiple output plugins or using an output specific routing option.
The template has access to each metric’s measurement name, tags, fields, and timestamp. Templates follow the Go Template syntax and may contain Sprig functions.
Timestamp
This plugin allows to parse fields containing timestamps into timestamps of other format.
TopK
This plugin filters the top series over a period of time and calculates
the top metrics via different aggregation functions. The processing steps
comprise grouping the metrics based on the metric name and tags,
computing the aggregate functions for each group every period and
outputting the top K
groups.
Unpivot
This plugin allows to rotate a multi-field series into single-valued metrics. The resulting metrics allow to more easily aggregate data across fields.
To perform the reverse operation use the pivot processor.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Telegraf and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support. Customers using a trial license can email trial@influxdata.com for assistance.