Telegraf is entirely input driven. It gathers all metrics from the inputs specified in the configuration file.
Note: Telegraf plugins added in the current release are noted with
-- NEW in v1.5. The Release Notes/Changelog has a list of new plugins and updates for other plugins. See the plugin README files for more details.
View usage instructions for each service input by running
telegraf --usage <service-input-name>.
Supported input plugins
The Aerospike (aerospike) input plugin queries Aerospike servers and gets node statistics and statistics for all configured namespaces.
The AMQP Consumer (amqp_consumer) input plugin provides a consumer for use with AMQP 0-9-1, a prominent implementation of this protocol being RabbitMQ.
The Apache (apache) input plugin collects server performance information using the
mod_status module of the Apache HTTP Server.
mod_status module is configured to expose a page at the
/server-status?auto location of the Apache
server. The ExtendedStatus option must be enabled in order
to collect all available fields. For information about how to configure your server reference the
The Bcache (bcache) input plugin gets bcache statistics from the
stats_total directory and
Bond (bond) – NEW in v.1.5
The Bond (bond) input plugin collects network bond interface status, bond’s slaves interfaces status and failures count of
bond’s slaves interfaces. The plugin collects these metrics from
The Cassandra (cassandra) input plugin collects Cassandra 3 / JVM metrics exposed as MBean attributes through the jolokia REST endpoint. All metrics are collected for each server configured.
The Ceph Storage (ceph) input plugin collects performance metrics from the MON and OSD nodes in a Ceph storage cluster.
The CGroup (cgroup) input plugin captures specific statistics per cgroup.
The Chrony (chrony) input plugin gets standard chrony metrics, requires chronyc executable.
The CloudWatch (cloudwatch) input plugin pulls metric statistics from Amazon CloudWatch.
The Conntrack (conntrack) input plugin collects stats from Netfilter’s conntrack-tools.
The conntrack-tools provide a mechanism for tracking various aspects of network connections as they are processed by netfilter. 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 either ip_ or nf. This plugin reads the files specified in its configuration and publishes each one as a field, with the prefix normalized to ip.
The Consul (consul) input plugin will collect statistics about all health checks registered in the Consul. It uses Consul API to query the data. It will not report the telemetry but Consul can report those stats already using StatsD protocol, if needed.
The Couchbase (couchbase) input plugin reads per-node and per-bucket metrics from Couchbase.
The CouchDB (couchdb) input plugin gathers metrics of CouchDB using
Mesosphere DC/OS (dcos) – NEW in v.1.5
The DMCache (dmcache) input plugin provides a native collection for dmsetup-based statistics for dm-cache.
The Docker (docker) input plugin uses the Docker Engine API to gather metrics on running Docker containers. The Docker plugin uses the Official Docker Client to gather stats from the Engine API library documentation.
The Exec (exec) input plugin parses supported Telegraf input data formats (InfluxDB Line Protocol, JSON, Graphite, Value, Nagios, Collectd, and Dropwizard into metrics. Each Telegraf metric includes the measurement name, tags, fields, and timesamp. See Telegraf input data formats for details on the supported data formats.
The Filestat (filestat) input plugin gathers metrics about file existence, size, and other stats.
The Fluentd (fluentd) input plugin gathers metrics from plugin endpoint provided by in_monitor plugin. This plugin understands
data provided by
/api/plugin.json resource (
/api/config.json is not covered).
The Graylog (graylog_input) input plugin can collect data from remote Graylog service URLs. This plugin currently supports two types of endpoints:
- multiple (e.g.,
- namespace (e.g.,
The HAproxy (haproxy) input plugin gathers metrics directly from any running HAproxy instance. It can do so by using CSV generated by HAproxy status page or from admin sockets.
The Hddtemp (hddtemp) input plugin reads data from
The HTTP Listener (http_listener) input plugin listens for messages sent via HTTP POST. Messages are expected in the InfluxDB
line protocol format ONLY (other Telegraf input data formats are not supported). The plugin allows Telegraf to serve
as a proxy/router for the
/write endpoint of the InfluxDB HTTP API.
The HTTP Response (http_response) input plugin gathers metrics for HTTP responses. The measurements and fields include
result_type. Tags for measurements include
The InfluxDB (influxdb) gathers metrics from the exposed
/debug/vars endpoint. Using Telegraf to extract these metrics to create a “monitor of monitors” is a best practice and allows you to reduce the overhead associated with
capturing and storing these metrics locally within the
_internal database for production deployments.
Read more about this approach here.
Jolokia2 (jolokia2) – NEW in v.1.5
The Kafka Consumer (kafka_consumer) input plugin polls a specified Kafka topic and adds messages to InfluxDB. Messages are expected in the line protocol format. Consumer Group is used to talk to the Kafka cluster so multiple instances of Telegraf can read from the same topic in parallel.
The Kapacitor (kapacitor) input plugin will collect metrics from the given Kapacitor instances.
Note: The Kubernetes input plugin is experimental and may cause high cardinality issues with moderate to large Kubernetes deployments.
The Kubernetes (kubernetes) input plugin talks to the kubelet API using the
/stats/summary endpoint to gather metrics about the running pods
and containers for a single host. It is assumed that this plugin is running as part of a daemonset within a
Kubernetes installation. This means that Telegraf is running on every node within the cluster. Therefore, you
should configure this plugin to talk to its locally running kubelet.
Lustre Jobstats allows for RPCs to be tagged with a value, such as a job’s ID. This allows for per job statistics.
The Lustre2 (lustre2) input plugin collects statistics and tags the data with the
The Logparser (logparser) input plugin streams and parses the given logfiles. Currently, it has the capability of parsing “grok” patterns from logfiles, which also supports regex patterns.
The Memcached (memcached) input plugin gathers statistics data from a Memcached server.
The Minecraft (minecraft) input plugin uses the RCON protocol to collect statistics from a scoreboard on a Minecraft server.
The MongoDB (mongodb) input plugin collects mongodb stats exposed by serverStatus and few more and create a single measurement containing values.
The MQTT Consumer (mqtt_consumer) input plugin reads from specified MQTT topics and adds messages to InfluxDB. Messages are in the Telegraf Input Data Formats.
The MySQL (mysql) input plugin gathers the statistics data from MySQL servers.
The NATS Consumer (nats_consumer) input plugin reads from specified NATS subjects and adds messages to InfluxDB. Messages are expected in the Telegraf Input Data Formats. A Queue Group is used when subscribing to subjects so multiple instances of Telegraf can read from a NATS cluster in parallel.
The Network Response (net_response) input plugin tests UDP and TCP connection response time. It can also check response text.
The NGINX (nginx) input plugin reads NGINX basic status information (
NGINX Plus (nginx_plus) – NEW in v.1.5
The NGINX Plus (nginx_plus) input plugin is for NGINX Plus, the commercial version of the open source web server NGINX. To use this plugin you will need a license. For more information, see What’s the Difference between Open Source NGINX and NGINX Plus?.
Structures for NGINX Plus have been built based on history of status module documentation.
The NSQ Consumer (nsq_consumer) input plugin polls a specified NSQD topic and adds messages to InfluxDB. This plugin allows a message to be in any of the supported data_format types.
The Nstat (nstat) input plugin collects network metrics from
The NTPq (ntpq) input plugin gets standard NTP query metrics, requires ntpq executable.
The OpenLDAP (openldap) input plugin gathers metrics from OpenLDAP’s
OpenSMTPD (opensmtpd) – NEW in v1.5
The OpenSMTPD (opensmtpd) input plugin gathers stats from OpenSMTPD, a free implementation of the server-side SMTP protocol.
Particle.io Webhooks (particle) – NEW in v1.5
The Passenger (passenger) input plugin gets phusion passenger statistics using their command line utility
PF (pf) – NEW in v1.5
The PF (pf) input plugin gathers information from the FreeBSD/OpenBSD pf firewall. Currently it can retrive information about
the state table: the number of current entries in the table, and counters for the number of searches, inserts, and
removals to the table. The pf plugin retrieves this information by invoking the
The PHP FPM (phpfpm) input plugin gets phpfpm statistics using either HTTP status page or fpm socket.
The Ping (ping) input plugin measures the round-trip for ping commands, response time, and other packet statistics.
Postfix (postfix) – NEW in v1.5
The Postfix (postfix) input plugin reports metrics on the postfix queues. For each of the active, hold, incoming, maildrop, and deferred queues, it will report the queue length (number of items), size (bytes used by items), and age (age of oldest item in seconds).
The PostgreSQL (postgresql) input plugin provides metrics for your PostgreSQL database. It currently works with PostgreSQL versions 8.1+.
It uses data from the built in
pg_stat_bgwriter views. The metrics recorded depend on your
version of postgres.
This PostgreSQL Extensible (postgresql_extensible) input plugin provides metrics for your postgres database. It has been designed to parse
SQL queries in the plugin section of
The PowerDNS (powerdns) input plugin gathers metrics about PowerDNS using UNIX sockets.
The Procstat (procstat) input plugin can be used to monitor system resource usage by an individual process using their
Processes can be specified either by
pid file, by executable name, by command line pattern matching, by username,
by systemd unit name, or by cgroup name/path (in this order or priority). This plugin uses
pgrep when an executable
name is provided to obtain the
pid. The Procstat plugin transmits IO, memory, cpu, file descriptor-related
measurements for every process specified. A prefix can be set to isolate individual process specific measurements.
The plugin will tag processes according to how they are specified in the configuration. If a pid file is used, a “pidfile” tag will be generated. On the other hand, if an executable is used an “exe” tag will be generated.
The Prometheus (prometheus) input plugin input plugin gathers metrics from HTTP servers exposing metrics in Prometheus format.
The PuppetAgent (puppetagent) input plugin collects variables outputted from the
last_run_summary.yaml file usually
/var/lib/puppet/state/ PuppetAgent Runs.
The Redis (redis) input plugin gathers the results of the INFO Redis command. There are two separate measurements:
redis_keyspace, the latter is used for gathering database-related statistics.
Additionally the plugin also calculates the hit/miss ratio (
keyspace_hitrate) and the elapsed time since the last RDB
The RethinkDB (rethinkdb) input plugin works with RethinkDB 2.3.5+ databases that requires username, password authorization, and Handshake protocol v1.0.
The Riak (riak) input plugin gathers metrics from one or more Riak instances.
The Salesforce (salesforce) input plugin gathers metrics about the limits in your Salesforce organization and the remaining usage. It fetches its data from the limits endpoint of the Salesforce REST API.
The Sensors (sensors) input plugin collects collects sensor metrics with the sensors executable from the
SMART (smart) – NEW in v1.5
The SMART (smart) input plugin gets metrics using the command line utility
smartctl for S.M.A.R.T. (Self-Monitoring, Analysis
and Reporting Technology) storage devices. SMART is a monitoring system included in computer hard disk drives (HDDs)
and solid-state drives (SSDs), which include most modern ATA/SATA, SCSI/SAS and NVMe disks. The plugin detects and
reports on various indicators of drive reliability, with the intent of enabling the anticipation of hardware failures.
The SNMP (snmp) input plugin gathers metrics from SNMP agents.
The SNMP Legacy input plugin gathers metrics from SNMP agents.
Solr (solr) – NEW in v1.5
The Solr (solr) input plugin collects stats using the MBean Request Handler.
The SQL Server (sqlserver) input plugin provides metrics for your Microsoft SQL Server instance. It currently works with SQL Server versions 2008+. Recorded metrics are lightweight and use Dynamic Management Views supplied by SQL Server.
The StatsD (statsd) input plugin is a special type of plugin which runs a backgrounded
statsd listener service while Telegraf is running.
StatsD messages are formatted as described in the original etsy statsd implementation.
The Tail (tail) input plugin “tails” a logfile and parses each log message.
Teamspeak 3 (teamspeak) – NEW in v1.5
The Teamspeak 3 (teamspeak) input plugin uses the Teamspeak 3 ServerQuery interface of the Teamspeak server to collect statistics of one or more virtual servers.
The Tomcat (tomcat) input plugin collects statistics available from the tomcat manager status page from
http://<host>/manager/status/all?XML=true URL. (
XML=true will return only XML data).
See the Tomcat documentation for
details of these statistics.
Unbound (unbound) – NEW in v1.5
The Webhooks (webhooks) input plugin starts an HTTPS server and registers multiple webhook listeners.
The way the Win_perf_counters (win_perf_counters) input plugin works is that on load of Telegraf, the plugin will be handed configuration
from Telegraf. This configuration is parsed and then tested for validity such as if the Object, Instance and Counter
existing. If it does not match at startup, it will not be fetched. Exceptions to this are in cases where you query for
all instances “”. By default the plugin does not return
_Total when it is querying for all () as this is redundant.
The Win_services (win_services) input plugin reports Windows services info.
The ZFS (zfs) input plugin provides metrics from your ZFS filesystems. It supports ZFS on Linux and FreeBSD.
It gets ZFS statistics from
/proc/spl/kstat/zfs on Linux and from
zpool on FreeBSD.
The Zipkin (zipkin) input plugin implements the Zipkin HTTP server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures.
Note: This plugin is experimental. Its data schema may be subject to change based on its main usage cases and the evolution of the OpenTracing standard.
Deprecated input plugins
The HTTP JSON (httpjson) input pluginn collects data from HTTP URLs which respond with JSON. It flattens the JSON and finds all numeric values, treating them as floats. Deprecated (1.6): use the [http input]().
Deprecated in version 1.5: Please use the Jolokia2 plugin.
DEPRECATED: As of version 1.3, the TCP listener plugin has been deprecated in favor of the Socket Listener plugin.
DEPRECATED: As of version 1.3, the UDP listener plugin has been deprecated in favor of the Socket Listener plugin.