Telegraf plugins
This page documents an earlier version of Telegraf. Telegraf v1.26 is the latest stable version.
Telegraf is a plugin-driven agent that collects, processes, aggregates, and writes metrics. It supports four categories of plugins including input, output, aggregator, and processor.
Plugin type
Plugin category
Operating system
Status
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.
AMQP Consumer
The AMQP Consumer input plugin provides a consumer for use with AMQP 0-9-1, a prominent implementation of this protocol being RabbitMQ.
ActiveMQ
The ActiveMQ input plugin gathers queues, topics, and subscriber metrics using the ActiveMQ Console API.
Aerospike
The Aerospike input plugin queries Aerospike servers and gets node statistics and statistics for all configured namespaces.
Amazon ECS
Amazon ECS input plugin (AWS Fargate compatible) uses the Amazon ECS v2 metadata and stats API endpoints to gather stats on running containers in a task. The Telegraf container and the workload that Telegraf is inspecting must be run in the same task. This is similar to (and reuses pieces of) the Docker input plugin, with some ECS-specific modifications for AWS metadata and stats formats.
Amazon Kinesis Consumer
The Amazon Kinesis Consumer input plugin reads from a Kinesis data stream and creates metrics using one of the supported input data formats.
Apache Aurora
The Aurora input plugin gathers metrics from Apache Aurora schedulers. For monitoring recommendations, see Monitoring your Aurora cluster.
Apache HTTP Server
The Apache HTTP Server 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, see the
module documentation.
Apache Kafka Consumer
The Apache 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.
Apache Mesos
The Apache Mesos input plugin gathers metrics from Mesos. For more information, please check the Mesos Observability Metrics page.
Apache Solr
The Apache Solr input plugin collects stats using the MBean Request Handler.
Apache Tomcat
The Apache Tomcat input plugin collects statistics available from the Apache
Tomcat manager status page (http://<host>/manager/status/all?XML=true
).
Using XML=true
returns XML data.
See the Apache Tomcat documentation
for details on these statistics.
Apache Zipkin
The Apache Zipkin input plugin implements the Zipkin HTTP server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures.
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.
Apache Zookeeper
The Apache Zookeeper input plugin collects variables output from the mntr
command Zookeeper Admin.
Bcache
The Bcache input plugin gets bcache statistics from the stats_total
directory and dirty_data
file.
Beanstalkd
The Beanstalkd input plugin collects server stats as well as tube stats
(reported by stats
and stats-tube
commands respectively).
BIND 9 Nameserver Statistics
plugin decodes the JSON or XML statistics provided by BIND 9 nameservers.
Bond
The 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.
Burrow
The Burrow input plugin collects Apache Kafka topic, consumer, and partition status using the Burrow HTTP Endpoint.
CGroup
The CGroup input plugin captures specific statistics per cgroup.
Cisco GNMI Telemetry
The
inputs.cisco_telementry_gnmi
plugin was renamed toinputs.gmni
in Telegraf 1.15.0 to better reflect its general support for gNMI devices. See the gNMI plugin.
Cisco GNMI Telemetry input plugin consumes telemetry data similar to the GNMI specification. This GRPC-based protocol can utilize TLS for authentication and encryption. This plugin has been developed to support GNMI telemetry as produced by Cisco IOS XR (64-bit) version 6.5.1 and later.
Cisco Model-driven Telemetry (MDT)
Cisco model-driven telemetry (MDT) is an input plugin that consumes telemetry data from Cisco IOS XR, IOS XE and NX-OS platforms. It supports TCP & GRPC dialout transports. GRPC-based transport can utilize TLS for authentication and encryption. Telemetry data is expected to be GPB-KV (self-describing-gpb) encoded.
Conntrack
The 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
The 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.
CouchDB
The CouchDB input plugin gathers metrics of CouchDB using _stats
endpoint.
CPU
The CPU input plugin gathers metrics about cpu usage.
Disk
The Disk input plugin gathers metrics about disk usage by mount point.
DiskIO
The DiskIO input plugin gathers metrics about disk IO by device.
DMCache
The DMCache input plugin provides a native collection for dmsetup-based statistics for dm-cache.
Docker
The 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
The Dovecot input plugin uses the dovecot Stats protocol to gather metrics on configured domains. For more information, see the Dovecot documentation.
Elasticsearch
The Elasticsearch input plugin queries endpoints to obtain node and optionally cluster-health or cluster-stats metrics.
Exec
The Exec input plugin parses supported Telegraf input data formats (line protocol, JSON, Graphite, Value, Nagios, Collectd, and Dropwizard) into metrics. Each Telegraf metric includes the measurement name, tags, fields, and timestamp.
Fail2ban
The Fail2ban input plugin gathers the count of failed and banned IP addresses using fail2ban.
Fibaro
The Fibaro input plugin makes HTTP calls to the Fibaro controller API to gather values of hooked devices.
Those values could be true (1
) or false (0
) for switches, percentage for dimmers, temperature, etc.
File
The File input plugin updates a list of files every interval and parses the contents using the selected input data format.
Files will always be read in their entirety. If you wish to tail or follow a file, then use the Tail input plugin.
To parse metrics from multiple files that are formatted in one of the supported input data formats, use the Multifile input plugin.
Filecount
The Filecount input plugin reports the number and total size of files in directories that match certain criteria.
Fluentd
The Fluentd input plugin gathers Fluentd server 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).
GitHub
Gathers repository information from GitHub-hosted repositories.
Google Cloud PubSub
The Google Cloud PubSub input plugin ingests metrics from Google Cloud PubSub and creates metrics using one of the supported input data formats.
Google Cloud PubSub Push
The Google Cloud PubSub Push (cloud_pubsub_push
) input plugin listens for
messages sent using HTTP POST requests from Google Cloud PubSub.
The plugin expects messages in Google’s Pub/Sub JSON Format ONLY.
The intent of the plugin is to allow Telegraf to serve as an endpoint of the
Google Pub/Sub ‘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.
Graylog
The Graylog 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
The 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
The Hddtemp input plugin reads data from hddtemp
daemons.
HTTP
The HTTP input plugin collects metrics from one or more HTTP (or HTTPS) endpoints. The endpoint should have metrics formatted in one of the supported input data formats. Each data format has its own unique set of configuration options which can be added to the input configuration.
HTTP JSON
Deprecated in Telegraf 1.6.0. Use the HTTP input plugin.
The HTTP JSON input plugin collects data from HTTP URLs which respond with JSON. It flattens the JSON and finds all numeric values, treating them as floats.
HTTP Listener
The http_listener
input plugin was renamed to influxdb_listener
.
The new name better describes the intended use of the plugin as a InfluxDB relay.
For general purpose transfer of metrics in any format via HTTP, use http_listener_v2
instead.
HTTP Listener v2
The HTTP Listener v2 input plugin listens for metrics sent via HTTP.
Metrics may be sent in any supported Telegraf input data format.
Note the plugin previously known as http_listener
has been renamed influxdb_listener
.
To use Telegraf as a proxy/relay for InfluxDB, we recommend using influxdb_listener
.
Icinga 2
The Icinga 2 input plugin gather status on running services and hosts using the Icinga 2 API.
InfluxDB v1.x
The InfluxDB v1.x input plugin gathers metrics from the exposed InfluxDB v1.x /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.
InfluxDB v2
InfluxDB 2.x exposes its metrics using the Prometheus Exposition Format — there is no InfluxDB v2 input plugin.
To collect data on an InfluxDB 2.x instance running on localhost, the configuration for the Prometheus input plugin would be:
[[inputs.prometheus]]
## An array of urls to scrape metrics from.
urls = ["http://localhost:8086/metrics"]
InfluxDB Listener
The InfluxDB Listener input plugin listens for requests sent
according to the InfluxDB HTTP API.
The intent of the plugin is to allow Telegraf to serve as a proxy, or router,
for the HTTP /write
endpoint of the InfluxDB HTTP API.
This plugin was previously known as
http_listener
. To send general metrics via HTTP, use the HTTP Listener v2 input plugin instead.This plugin is compatible with InfluxDB 1.x only.
The /write
endpoint supports the precision
query parameter and can be
set to ns
, u
, ms
, s
, m
, h
. 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 output configuration of the Telegraf instance which ultimately
submits data to InfluxDB determines the destination database.
Interrupts
The Interrupts input plugin gathers metrics about IRQs, including interrupts
(from /proc/interrupts
) and soft_interrupts
(from /proc/softirqs
).
Ipset
The Ipset input plugin gathers packets and bytes counters from Linux ipset
.
It uses the output of the command ipset save
. Ipsets created without the counters
option are ignored.
IPtables
The IPtables input plugin gathers packets and bytes counters for rules within a set of table and chain from the Linux iptables firewall.
IPVS
The IPVS input plugin uses the Linux kernel netlink socket interface to gather metrics about IPVS virtual and real servers.
Jenkins
The Jenkins input plugin gathers information about the nodes and jobs running in a jenkins instance.
This plugin does not require a plugin on Jenkins and it makes use of Jenkins API to retrieve all the information needed.
Jolokia
Deprecated in Telegraf 1.5.0. Use the Jolokia2 input plugin.
Jolokia2 Agent
The Jolokia2 Agent input plugin reads JMX metrics from one or more Jolokia agent REST endpoints using the JSON-over-HTTP protocol.
Jolokia2 Proxy
The Jolokia2 Proxy input plugin reads JMX metrics from one or more targets by interacting with a Jolokia proxy REST endpoint using the Jolokia JSON-over-HTTP protocol.
JTI OpenConfig Telemetry
The JTI OpenConfig Telemetry input plugin reads Juniper Networks implementation of OpenConfig telemetry data from listed sensors using the Junos Telemetry Interface. Refer to openconfig.net for more details about OpenConfig and Junos Telemetry Interface (JTI).
Kapacitor
The Kapacitor input plugin will collect metrics from the given Kapacitor instances.
Kernel
The Kernel input plugin gathers kernel statistics from /proc/stat
.
Kernel VMStat
The Kernel VMStat input plugin gathers kernel statistics from /proc/vmstat
.
Kibana
The Kibana input plugin queries the Kibana status API to obtain the health status of Kibana and some useful metrics.
Kubernetes
The Kubernetes input plugin is experimental and may cause high cardinality issues with moderate to large Kubernetes deployments.
The 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.
Kubernetes Inventory
The Kubernetes Inventory input plugin generates metrics derived from the state of the following Kubernetes resources:
- daemonsets
- deployments
- nodes
- persistentvolumes
- persistentvolumeclaims
- pods (containers)
- statefulsets
LeoFS
The LeoFS input plugin gathers metrics of LeoGateway, LeoManager, and LeoStorage using SNMP. See System monitoring in the LeoFS documentation for more information.
Linux Sysctl FS
The Linux Sysctl FS input plugin provides Linux system level file (sysctl fs
) metrics.
The documentation on these fields can be found here.
Logparser
The Logparser input plugin streams and parses the given log files. Currently, it has the capability of parsing “grok” patterns from log files, which also supports regular expression (regex) patterns.
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 input plugin collects statistics and tags the data with the jobid
.
Mailchimp
The Mailchimp input plugin gathers metrics from the /3.0/reports
MailChimp API.
Mcrouter
The Mcrouter input plugin gathers statistics data from a mcrouter instance. Mcrouter is a memcached protocol router, developed and maintained by Facebook, for scaling memcached (http://memcached.org/) deployments. It’s a core component of cache infrastructure at Facebook and Instagram where mcrouter handles almost 5 billion requests per second at peak.
Mem
The Mem input plugin collects system memory metrics. For a more complete explanation of the difference between used and actual_used RAM, see Linux ate my ram.
Memcached
The Memcached input plugin gathers statistics data from a Memcached server.
Mesosphere DC/OS
The Mesosphere DC/OS input plugin gathers metrics from a DC/OS cluster’s metrics component.
Microsoft SQL Server
The Microsoft SQL Server 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.
Minecraft
The Minecraft input plugin uses the RCON protocol to collect statistics from a scoreboard on a Minecraft server.
MongoDB
The MongoDB input plugin collects MongoDB stats exposed by serverStatus
and
few more and create a single measurement containing values.
MQTT Consumer
The MQTT Consumer input plugin reads from specified MQTT topics and adds messages to InfluxDB. Messages are in the Telegraf input data formats.
Multifile
The Multifile input plugin allows Telegraf to combine 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 formatted in one of the supported input data formats, use the file input plugin.
MySQL
The MySQL input plugin gathers the statistics data from MySQL, MariaDB, and Percona servers.
NATS Consumer
The 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.
NATS Server Monitoring
The NATS Server Monitoring input plugin gathers metrics when using the NATS Server monitoring server.
Neptune Apex
The Neptune Apex input plugin collects real-time data from the Apex status.xml
page.
The Neptune Apex controller family allows an aquarium hobbyist to monitor and
control their tanks based on various probes.
The data is taken directly from the /cgi-bin/status.xml
at the interval specified
in the telegraf.conf
configuration file.
Net
The Net input plugin gathers metrics about network interface usage (Linux only).
Netstat
The Netstat input plugin gathers TCP metrics such as established, time-wait
and sockets counts by using lsof
.
Network Response
The Network Response input plugin tests UDP and TCP connection response time. It can also check response text.
NGINX
The NGINX input plugin reads NGINX basic status information (ngx_http_stub_status_module
).
NGINX VTS
The NGINX VTS input plugin gathers NGINX status using external virtual host traffic status module - https://github.com/vozlt/nginx-module-vts. This is an NGINX module that provides access to virtual host status information. It contains the current status such as servers, upstreams, caches. This is similar to the live activity monitoring of NGINX Plus. For module configuration details, see the NGINX VTS module documentation.
NGINX Plus
The 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.
NGINX Plus API
The NGINX Plus API input plugin gathers advanced status information for NGINX Plus servers.
NGINX Upstream Check
The NGINX Upstream Check input plugin reads the status output of the
nginx_upstream_check.
This module can periodically check the NGINX upstream servers using the configured
request and interval to determine if the server is still available.
If checks are failed, then the server is marked as down
and will not receive
any requests until the check passes and the server will be marked as up
again.
The status page displays the current status of all upstreams and servers as well as number of the failed and successful checks. This information can be exported in JSON format and parsed by this input.
NSQ Consumer
The 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.
NTPq
The NTPq input plugin gets standard NTP query metrics, requires ntpq executable.
NVIDIA SMI
The NVIDIA SMI input plugin uses a query on the NVIDIA System Management Interface
(nvidia-smi
)
binary to pull GPU stats including memory and GPU usage, temp and other.
OpenLDAP
The OpenLDAP input plugin gathers metrics from OpenLDAP’s cn=Monitor
backend.
OpenSMTPD
The OpenSMTPD input plugin gathers stats from OpenSMTPD, a free implementation of the server-side SMTP protocol.
OpenWeatherMap
Collect current weather and forecast data from OpenWeatherMap.
PF
The 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.
PgBouncer
The PgBouncer input plugin provides metrics for your PgBouncer load balancer. For information about the metrics, see the PgBouncer documentation.
Phusion Passenger
The Phusion Passenger input plugin gets Phusion Passenger statistics using
their command line utility passenger-status
.
PHP-FPM
The PHP-FPM input plugin gets phpfpm statistics using either HTTP status page or fpm socket.
Ping
The Ping input plugin measures the round-trip for ping commands, response time, and other packet statistics.
Postfix
The 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
The 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 PostgreSQL.
PowerDNS
The PowerDNS input plugin gathers metrics about PowerDNS using UNIX sockets.
PowerDNS Recursor
The PowerDNS Recursor input plugin gathers metrics about PowerDNS Recursor using UNIX sockets.
Processes
The Processes input 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,
it requires access to execute ps
.
Procstat
The Procstat input plugin monitors system resource usage of an individual
processes 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 Procstat input 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 Format
The Prometheus Format input plugin gathers metrics from HTTP servers exposing metrics in Prometheus format.
Puppet Agent
The Puppet Agent input plugin collects variables outputted from the last_run_summary.yaml
file usually located in /var/lib/puppet/state/
Puppet Agent Runs. For more information, see
Puppet Monitoring: How to Monitor the Success or Failure of Puppet Runs
RabbitMQ
The RabbitMQ input plugin reads metrics from RabbitMQ servers via the Management Plugin.
Raindrops Middleware
The Raindrops Middleware input plugin reads from the specified Raindrops middleware URI and adds the statistics to InfluxDB.
Redis
The 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
The RethinkDB input plugin works with RethinkDB 2.3.5+ databases that requires username, password authorization, and Handshake protocol v1.0.
Riak
The Riak input plugin gathers metrics from one or more Riak instances.
Salesforce
The 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
The Sensors input plugin collects collects sensor metrics with the sensors
executable from the lm-sensor
package.
S.M.A.R.T.
The SMART input plugin gets metrics using the command line utility smartctl
for SMART (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
The SNMP input plugin gathers metrics from SNMP agents.
SNMP Legacy
The SNMP Legacy input plugin gathers metrics from SNMP agents. Deprecated in Telegraf 1.0.0. Use the SNMP input plugin.
Socket Listener
The Socket Listener input plugin listens for messages from streaming (TCP, UNIX) or datagram (UDP, unixgram) protocols. Messages are expected in the Telegraf Input Data Formats.
Stackdriver
The Stackdriver input plugin gathers metrics from the Stackdriver Monitoring API.
This plugin accesses APIs that are chargeable. You may incur costs.
StatsD
The 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.
Swap
Supports: Linux only.
The Swap input plugin gathers metrics about swap memory usage. For more information about Linux swap spaces, see All about Linux swap space
Syslog
The Syslog input plugin listens for syslog messages transmitted over UDP or TCP. Syslog messages should be formatted according to RFC 5424.
System
The System input plugin gathers general stats on system load, uptime, and
number of users logged in. It is basically equivalent to the UNIX uptime
command.
Tail
The Tail input plugin “tails” a log file and parses each log message.
TCP Listener
Deprecated in Telegraf 1.3.0. Use the Socket Listener input plugin.
Teamspeak 3
The Teamspeak 3 input plugin uses the Teamspeak 3 ServerQuery interface of the Teamspeak server to collect statistics of one or more virtual servers.
Telegraf v1.x
The Telegraf v1.x input plugin collects metrics about the Telegraf v1.x agent itself. Note that some metrics are aggregates across all instances of one type of plugin.
Temp
The Temp input plugin collects temperature data from sensors.
Tengine Web Server
The Tengine Web Server input plugin gathers status metrics from the Tengine Web Server using the Reqstat module.
Trig
The Trig input plugin inserts sine and cosine waves for demonstration purposes.
Twemproxy
The Twemproxy input plugin gathers data from Twemproxy instances, processes Twemproxy server statistics, processes pool data, and processes backend server (Redis/Memcached) statistics.
UDP Listener
Deprecated in Telegraf 1.3.0. use the Socket Listener input plugin.
Unbound
The Unbound input plugin gathers statistics from Unbound, a validating, recursive, and caching DNS resolver.
VMware vSphere
The VMware vSphere input plugin uses the vSphere API to gather metrics from multiple vCenter servers (clusters, hosts, VMs, and data stores). For more information on the available performance metrics, see Common vSphere Performance Metrics
Webhooks
The Webhooks input plugin starts an HTTPS server and registers multiple webhook listeners.
Available webhooks
Add new webhooks
If you need a webhook that is not supported, consider adding a new webhook
Windows Performance Counters
The Windows Performance Counters input plugin reads Performance Counters on the Windows operating sytem. Windows only.
Windows Services
The Windows Services input plugin reports Windows services info. Windows only.
Wireless
The Wireless input plugin gathers metrics about wireless link quality by
reading the /proc/net/wireless
file. This plugin currently supports Linux only.
X.509 Certificate
The X.509 Certificate input plugin provides information about X.509 certificate accessible using the local file or network connection.
ZFS
Supports: FreeBSD, Linux
The 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.
Output plugins
Telegraf processor plugins write metrics to various destinations.
Amazon CloudWatch
The Amazon CloudWatch output plugin send metrics to Amazon CloudWatch.
Amazon Kinesis
The Amazon Kinesis output plugin is an experimental plugin that is still
in the early stages of development. It will batch up all of the points into
one PUT
request to Kinesis. This should save the number of API requests
by a considerable level.
Amon
The Amon output plugin writes metrics to an Amon server.
For details on the Amon Agent, see Monitoring Agent
and requires a apikey
and amoninstance
URL.
If the point value being sent cannot be converted to a float64 value, the metric is skipped.
Metrics are grouped by converting any _
characters to .
in the Point Name.
AMQP
The AMQP output plugin writes to an AMQP 0-9-1 exchange, a prominent implementation of the Advanced Message Queuing Protocol (AMQP) protocol being RabbitMQ.
Metrics are written to a topic exchange using tag
, defined in configuration
file as RoutingTag
, as a routing key.
Apache Kafka
The Apache Kafka output plugin writes to a Kafka Broker acting a Kafka Producer.
CrateDB
The CrateDB output plugin writes to CrateDB, a real-time SQL database for machine data and IoT, using its PostgreSQL protocol.
Datadog
The Datadog output plugin writes to the Datadog Metrics API
and requires an apikey
which can be obtained here
for the account.
Discard
The Discard output plugin simply drops all metrics that are sent to it. It is only meant to be used for testing purposes.
Elasticsearch
The Elasticsearch output plugin writes to Elasticsearch via HTTP using Elastic. It supports Elasticsearch releases from 5.x up to 7.x.
File
The File output plugin writes Telegraf metrics to files.
Google Cloud PubSub
The Google PubSub output plugin publishes metrics to a Google Cloud PubSub topic as one of the supported output data formats.
Graylog
The Graylog output plugin writes to a Graylog instance using the gelf
format.
HTTP
The HTTP output plugin sends metrics in a HTTP message encoded using one of the output data formats.
For data_formats
that support batching, metrics are sent in batch format.
Health
The health plugin provides a HTTP health check resource that can be configured to return a failure status code 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.
InfluxDB v1.x
The InfluxDB v1.x output plugin writes to InfluxDB using HTTP or UDP.
InfluxDB v2
The InfluxDB v2 output plugin writes metrics to InfluxDB 2.x OSS or Cloud.
Librato
The Librato output plugin writes to the Librato Metrics API
and requires an api_user
and api_token
which can be obtained
here for the account.
Microsoft Azure Application Insights
The Microsoft Azure Application Insights output plugin writes Telegraf metrics to Application Insights (Microsoft Azure).
Microsoft Azure Monitor
The Azure Monitor custom metrics service is currently in preview and not available in a subset of Azure regions.
The Microsoft Azure Monitor output plugin sends custom metrics to Microsoft Azure Monitor. Azure Monitor has a metric resolution of one minute. To handle this in Telegraf, the Azure Monitor output plugin automatically aggregates metrics into one minute buckets, which are then sent to Azure Monitor on every flush interval.
For a Microsoft blog posting on using Telegraf with Microsoft Azure Monitor, see Collect custom metrics for a Linux VM with the InfluxData Telegraf Agent.
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
, and count
. Tags are written as a dimension
on each Azure Monitor metric.
MQTT Producer
The MQTT Producer output plugin writes to the MQTT server using supported output data formats.
NATS Output
The NATS Output output plugin writes to a (list of) specified NATS instance(s).
NSQ
The NSQ output plugin writes to a specified NSQD instance, usually local to the producer. It requires a server name and a topic name.
OpenTSDB
The OpenTSDB output plugin writes to an OpenTSDB instance using either the telnet or HTTP mode.
Using the HTTP API is the recommended way of writing metrics since OpenTSDB 2.0.
To use HTTP mode, set useHttp
to true in config. You can also control how many
metrics are sent in each HTTP request by setting batchSize
in config.
See the OpenTSDB documentation for details.
Prometheus Client
The Prometheus Client output plugin starts a Prometheus Client,
it exposes all metrics on /metrics
(default) to be polled by a Prometheus server.
Riemann Legacy
The Riemann Legacy output plugin will be deprecated in a future release, see #1878 for more details & discussion.
Socket Writer
The Socket Writer output plugin writes to a UDP, TCP, or UNIX socket. It can output data in any of the supported output formats.
Stackdriver
The Stackdriver output plugin writes to the Google Cloud Stackdriver API and requires Google Cloud authentication with Google Cloud using either a service account or user credentials. For details on pricing, see the Stackdriver documentation.
Requires project
to specify where Stackdriver metrics will be delivered to.
Metrics are grouped by the namespace
variable and metric key, for example
custom.googleapis.com/telegraf/system/load5
.
Syslog
The syslog output plugin sends syslog messages transmitted over UDP or TCP or TLS, with or without the octet counting framing. Syslog messages are formatted according to RFC 5424.
Wavefront
The Wavefront output plugin writes to a Wavefront proxy, in Wavefront data format over TCP.
Aggregator plugins
Telegraf aggregator plugins create aggregate metrics (for example, mean, min, max, quantiles, etc.)
BasicStats
The BasicStats aggregator plugin gives count
, max
, min
, mean
, s2
(variance),
and stdev
for a set of values, emitting the aggregate every period seconds.
Final
The final aggregator emits the last metric of a contiguous series. A contiguous series is 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. This is useful for getting the final value for data sources that produce discrete time series, such as procstat, cgroup, kubernetes, etc.
Histogram
The Histogram aggregator plugin creates histograms containing the counts of field values within a range.
Values added to a bucket are also added to the larger buckets in the distribution. This creates a cumulative histogram.
Like other Telegraf aggregator plugins, the metric is emitted every period seconds. Bucket counts, however, are not reset between periods and will be non-strictly increasing while Telegraf is running.
MinMax
The MinMax aggregator plugin aggregates min
and max
values of each field it sees,
emitting the aggregrate every period seconds.
ValueCounter
The ValueCounter aggregator plugin counts the occurrence of values in fields and emits the counter once every ‘period’ seconds.
A use case for the ValueCounter aggregator plugin is when you are processing an HTTP access log with the Logparser input plugin and want to count the HTTP status codes.
The fields which will be counted must be configured with the fields configuration directive.
When no fields are provided, the plugin will not count any fields.
The results are emitted in fields, formatted as originalfieldname_fieldvalue = count
.
ValueCounter only works on fields of the type int
, bool
, or string
.
Float fields are being dropped to prevent the creating of too many fields.
Processor plugins
Telegraf output plugins transform, decorate, and filter metrics.
Converter
The Converter processor plugin is used to change the type of tag or field values. In addition to changing field types, it can convert between fields and tags. Values that cannot be converted are dropped.
Enum
The Enum processor plugin allows the configuration of value mappings for metric fields.
The main use case for this is to rewrite status codes such as red
, amber
, and green
by numeric values such as 0
, 1
, 2
. The plugin supports string and bool types for the field values.
Multiple Fields can be configured with separate value mappings for each field.
Default mapping values can be configured to be used for all values, which are
not contained in the value_mappings.
The processor supports explicit configuration of a destination field.
By default the source field is overwritten.
Override
The Override processor plugin allows overriding all modifications that are supported by input plugins and aggregator plugins:
name_override
name_prefix
name_suffix
- tags
All metrics passing through this processor will be modified accordingly. Select the metrics to modify using the standard measurement filtering options.
Values of name_override
, name_prefix
, name_suffix
, and already present
tags with conflicting keys will be overwritten. Absent tags will be created.
Use case of this plugin encompass ensuring certain tags or naming conventions
are adhered to irrespective of input plugin configurations, e.g., by taginclude
.
Parser
The Parser processor plugin parses defined fields containing the specified data format and creates new metrics based on the contents of the field.
Printer
The Printer processor plugin simply prints every metric passing through it.
Regex
The Regex processor plugin transforms tag and field values using a regular expression (regex) pattern.
If result_key
parameter is present, it can produce new tags and fields from existing ones.
Rename
The Rename processor plugin renames InfluxDB measurements, fields, and tags.
Strings
The Strings processor plugin maps certain Go string functions onto InfluxDB measurement, tag, and field values. Values can be modified in place or stored in another key.
Implemented functions are:
lowercase
uppercase
trim
trim_left
trim_right
trim_prefix
trim_suffix
Note that in this implementation these are processed in the order that they appear above.
You can specify the measurement
, tag
or field
that you want processed in each
section and optionally a dest
if you want the result stored in a new tag or field.
You can specify lots of transformations on data with a single strings processor.
TopK
The TopK processor plugin is a filter designed to get the top series over a period of time.
It can be tweaked to do its top K
computation over a period of time, so spikes
can be smoothed out.
This processor goes through the following steps when processing a batch of metrics:
- Groups metrics in buckets using their tags and name as key.
- Aggregates each of the selected fields for each bucket by the selected aggregation function (sum, mean, etc.).
- Orders the buckets by one of the generated aggregations, returns all metrics in the top
K
buckets, then reorders the buckets by the next of the generated aggregations, returns all metrics in the topK
buckets, etc, etc, etc, until it runs out of fields.
The plugin makes sure not to duplicate metrics.
Note that depending on the amount of metrics on each computed bucket, more
than K
metrics may be returned.
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:
InfluxDB Cloud customers can contact InfluxData Support.