Telegraf input plugins

Warning! This page documents an earlier version of Telegraf, which is no longer actively developed. Telegraf v1.9 is the most recent stable version of Telegraf.

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.

Usage instructions

View usage instructions for each service input by running telegraf --usage <service-input-name>.

Supported input plugins

Aerospike (aerospike)

The Aerospike (aerospike) input plugin queries Aerospike servers and gets node statistics and statistics for all configured namespaces.

AMQP Consumer (amqp_consumer)

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.

Apache (apache)

The Apache (apache) input plugin collects server performance information using the mod_status module of the Apache HTTP Server.

Typically, the 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 module documenation.

Bcache (bcache)

The Bcache (bcache) input plugin gets bcache statistics from the stats_total directory and dirty_data file.

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 /proc/net/bonding/* files.

Cassandra (cassandra)

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.

Ceph Storage (ceph)

The Ceph Storage (ceph) input plugin collects performance metrics from the MON and OSD nodes in a Ceph storage cluster.

CGroup (cgroup)

The CGroup (cgroup) input plugin captures specific statistics per cgroup.

Chrony (chrony)

The Chrony (chrony) input plugin gets standard chrony metrics, requires chronyc executable.

CloudWatch (cloudwatch)

The CloudWatch (cloudwatch) input plugin pulls metric statistics from Amazon CloudWatch.

Conntrack (conntrack)

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.

Consul (consul)

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.

Couchbase (couchbase)

The Couchbase (couchbase) input plugin reads per-node and per-bucket metrics from Couchbase.

CouchDB (couchdb)

The CouchDB (couchdb) input plugin gathers metrics of CouchDB using _stats endpoint.

Mesosphere DC/OS (dcos) – NEW in v.1.5

The Mesosphere DC/OS (dcos) input plugin gathers metrics from a DC/OS cluster’s metrics component.

Disque (disque)

DMCache (dmcache)

The DMCache (dmcache) input plugin provides a native collection for dmsetup-based statistics for dm-cache.

DNS query time (dns_query_time)

The DNS query time (dns_query_time) input plugin gathers dns query times in milliseconds - like Dig.

Docker (docker)

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.

Dovecot (dovecot)

The Dovecot (dovecot) input plugin uses the dovecot Stats protocol to gather metrics on configured domains. For more information, see the Dovecot documentation.

Elasticsearch (elasticsearch)

The Elasticsearch input plugin queries endpoints to obtain node and optionally cluster-health or cluster-stats metrics.

Exec (exec)

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.

Fail2ban (fail2ban)

The Fail2ban (fail2ban) input plugin gathers the count of failed and banned ip addresses using fail2ban.

Filestat (filestat)

The Filestat (filestat) input plugin gathers metrics about file existence, size, and other stats.

Fluentd (fluentd)

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).

Graylog (graylog_input)

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., http://[graylog-server-ip]:12900/system/metrics/multiple)
  • namespace (e.g., http://[graylog-server-ip]:12900/system/metrics/namespace/{namespace})

HAproxy (haproxy)

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.

Hddtemp (hddtemp)

The Hddtemp (hddtemp) input plugin reads data from hddtemp daemons.

HTTP Listener (http_listener)

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.

HTTP Response (http_response)

The HTTP Response (http_response) input plugin gathers metrics for HTTP responses. The measurements and fields include response_time, http_response_code, and result_type. Tags for measurements include server and method.

InfluxDB (influxdb)

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.

Internal (internal)

Interrupts (interrupts)

IPMI Sensor (ipmi_sensor)

IPtables (iptables)

Jolokia2 (jolokia2) – NEW in v.1.5

The Jolokia2 (jolokia2) input plugin collect JMX metrics from an HTTP endpoint using the Jolokia JSON-over-HTTP protocol.

Kafka Consumer (kafka_consumer)

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.

Kapacitor (kapacitor)

The Kapacitor (kapacitor) input plugin will collect metrics from the given Kapacitor instances.

Kubernetes (kubernetes)

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.

Leofs (leofs)

Lustre2 (lustre2)

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 jobid.

Logparser (logparser)

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.

Mailchimp (mailchimp)

Memcached (memcached)

The Memcached (memcached) input plugin gathers statistics data from a Memcached server.

Mesos (mesos)

The Mesos (mesos) input plugin gathers metrics from Mesos. For more information, please check the Mesos Observability Metrics page.

Minecraft (minecraft)

The Minecraft (minecraft) input plugin uses the RCON protocol to collect statistics from a scoreboard on a Minecraft server.

MongoDB (mongodb)

The MongoDB (mongodb) input plugin collects mongodb stats exposed by serverStatus and few more and create a single measurement containing values.

MQTT Consumer (mqtt_consumer)

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.

MySQL (mysql)

The MySQL (mysql) input plugin gathers the statistics data from MySQL servers.

NATS Consumer (nats_consumer)

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.

Network Response (net_response)

The Network Response (net_response) input plugin tests UDP and TCP connection response time. It can also check response text.

NGINX (nginx)

The NGINX (nginx) input plugin reads NGINX basic status information (ngx_http_stub_status_module).

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.

NSQ (nsq)

NSQ Consumer (nsq_consumer)

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.

Nstat (nstat)

The Nstat (nstat) input plugin collects network metrics from /proc/net/netstat, /proc/net/snmp, and /proc/net/snmp6 files.

NTPq (ntpq)

The NTPq (ntpq) input plugin gets standard NTP query metrics, requires ntpq executable.

OpenLDAP (openldap)

The OpenLDAP (openldap) input plugin gathers metrics from OpenLDAP’s cn=Monitor backend.

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

Passenger (passenger)

The Passenger (passenger) input plugin gets phusion passenger statistics using their command line utility passenger-status.

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 pfstat command.

PHP FPM (phpfpm)

The PHP FPM (phpfpm) input plugin gets phpfpm statistics using either HTTP status page or fpm socket.

Ping (ping)

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).

PostgreSQL (postgresql)

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_database and pg_stat_bgwriter views. The metrics recorded depend on your version of postgres.

PostgreSQL Extensible (postgresql_extensible)

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 telegraf.conf files.

PowerDNS (powerdns)

The PowerDNS (powerdns) input plugin gathers metrics about PowerDNS using UNIX sockets.

Procstat (procstat)

The Procstat (procstat) input plugin can be used to monitor system resource usage by an individual process using their /proc data.

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.

Prometheus (prometheus)

The Prometheus (prometheus) input plugin input plugin gathers metrics from HTTP servers exposing metrics in Prometheus format.

PuppetAgent (puppetagent)

The PuppetAgent (puppetagent) input plugin collects variables outputted from the last_run_summary.yaml file usually located in /var/lib/puppet/state/ PuppetAgent Runs.

RabbitMQ (rabbitmq)

The RabbitMQ (rabbitmq) input plugin reads metrics from RabbitMQ servers via the Management Plugin.

Raindrops (raindrops)

The Raindrops (raindrops) input plugin reads from specified Raindops middleware URI and adds the statistics to InfluxDB.

Redis (redis)

The Redis (redis) input plugin gathers the results of the INFO Redis command. There are two separate measurements: redis and 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 save (rdb_last_save_time_elapsed).

RethinkDB (rethinkdb)

The RethinkDB (rethinkdb) input plugin works with RethinkDB 2.3.5+ databases that requires username, password authorization, and Handshake protocol v1.0.

Riak (riak)

The Riak (riak) input plugin gathers metrics from one or more Riak instances.

Salesforce (salesforce)

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.

Sensors (sensors)

The Sensors (sensors) input plugin collects collects sensor metrics with the sensors executable from the lm-sensor package.

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. See smartmontools.

SNMP (snmp)

The SNMP (snmp) input plugin gathers metrics from SNMP agents.

SNMP Legacy (snmp_legacy)

The SNMP Legacy input plugin gathers metrics from SNMP agents.

Socket Listener

The Socket Listener listens for messages from streaming (tcp, unix) or datagram (UDP, unixgram) protocols. Messages are expected in the Telegraf Input Data Formats.

Solr (solr) – NEW in v1.5

The Solr (solr) input plugin collects stats using the MBean Request Handler.

SQL Server (sqlserver)

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.

StatsD (statsd)

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.

Sysstat (sysstat)

The Sysstat (sysstat) input plugin collects sysstat system metrics with the sysstat collector utility sadc and parses the created binary data file with the sadf utility.

System (system)

Tail (tail)

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.

Tomcat (tomcat)

The Tomcat (tomcat) input plugin collects statistics available from the tomcat manager status page from the http://<host>/manager/status/all?XML=true URL. (XML=true will return only XML data). See the Tomcat documentation for details of these statistics.

Trig (trig)

Twemproxy (twemproxy)

Unbound (unbound) – NEW in v1.5

The Unbound (unbound) input plugin gathers stats from Unbound, a validating, recursive, and caching DNS resolver.

Varnish (varnish)

The Varnish (varnish) input plugin gathers stats from Varnish HTTP Cache.

Webhooks (webhooks)

The Webhooks (webhooks) input plugin starts an HTTPS server and registers multiple webhook listeners.

Win_perf_counters (win_perf_counters)

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.

Win_services (win_services)

The Win_services (win_services) input plugin reports Windows services info.

ZFS (zfs)

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 sysctl and zpool on FreeBSD.

Zipkin (zipkin)

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.

Zookeeper (zookeeper)

The Zookeeper (zookeeper) input plugin collects variables outputted from the mntr command Zookeeper Admin.

Deprecated input plugins

HTTP JSON (httpjson)

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]().

Jolokia (jolokia)

Deprecated in version 1.5: Please use the Jolokia2 plugin.

TCP Listener

DEPRECATED: As of version 1.3, the TCP listener plugin has been deprecated in favor of the Socket Listener plugin.

UDP Listener (udp_listener)

DEPRECATED: As of version 1.3, the UDP listener plugin has been deprecated in favor of the Socket Listener plugin.