2016-01-07 22:21:10 +00:00
|
|
|
# Telegraf [![Circle CI](https://circleci.com/gh/influxdata/telegraf.svg?style=svg)](https://circleci.com/gh/influxdata/telegraf)
|
2015-05-20 05:26:13 +00:00
|
|
|
|
2015-08-06 20:00:14 +00:00
|
|
|
Telegraf is an agent written in Go for collecting metrics from the system it's
|
2016-01-07 22:21:10 +00:00
|
|
|
running on, or from other services, and writing them into InfluxDB or other
|
|
|
|
[outputs](https://github.com/influxdata/telegraf#supported-output-plugins).
|
2015-06-19 16:34:27 +00:00
|
|
|
|
2015-08-06 20:00:14 +00:00
|
|
|
Design goals are to have a minimal memory footprint with a plugin system so
|
|
|
|
that developers in the community can easily add support for collecting metrics
|
2015-09-09 17:00:19 +00:00
|
|
|
from well known services (like Hadoop, Postgres, or Redis) and third party
|
2015-08-06 20:00:14 +00:00
|
|
|
APIs (like Mailchimp, AWS CloudWatch, or Google Analytics).
|
2015-06-19 16:34:27 +00:00
|
|
|
|
2016-01-07 22:21:10 +00:00
|
|
|
New input and output plugins are designed to be easy to contribute,
|
|
|
|
we'll eagerly accept pull
|
|
|
|
requests and will manage the set of plugins that Telegraf supports.
|
|
|
|
See the [contributing guide](CONTRIBUTING.md) for instructions on writing
|
|
|
|
new plugins.
|
2015-06-19 16:34:27 +00:00
|
|
|
|
2015-09-09 17:00:19 +00:00
|
|
|
## Installation:
|
2015-05-20 05:26:13 +00:00
|
|
|
|
2016-01-07 22:21:10 +00:00
|
|
|
NOTE: Telegraf 0.3.x is **not** backwards-compatible with previous versions of
|
|
|
|
telegraf, both in the database layout and the configuration file. 0.2.x will
|
|
|
|
continue to be supported, see below for download links.
|
|
|
|
|
|
|
|
TODO: link to blog post about 0.3.x changes.
|
|
|
|
|
2015-09-09 17:00:19 +00:00
|
|
|
### Linux deb and rpm packages:
|
|
|
|
|
2015-08-20 21:18:45 +00:00
|
|
|
Latest:
|
2016-01-07 22:21:10 +00:00
|
|
|
* http://get.influxdb.org/telegraf/telegraf_0.3.0_amd64.deb
|
|
|
|
* http://get.influxdb.org/telegraf/telegraf-0.3.0-1.x86_64.rpm
|
|
|
|
|
|
|
|
0.2.x:
|
2015-12-07 19:22:52 +00:00
|
|
|
* http://get.influxdb.org/telegraf/telegraf_0.2.4_amd64.deb
|
|
|
|
* http://get.influxdb.org/telegraf/telegraf-0.2.4-1.x86_64.rpm
|
2015-09-09 17:00:19 +00:00
|
|
|
|
|
|
|
##### Package instructions:
|
|
|
|
|
|
|
|
* Telegraf binary is installed in `/opt/telegraf/telegraf`
|
|
|
|
* Telegraf daemon configuration file is in `/etc/opt/telegraf/telegraf.conf`
|
|
|
|
* On sysv systems, the telegraf daemon can be controlled via
|
|
|
|
`service telegraf [action]`
|
|
|
|
* On systemd systems (such as Ubuntu 15+), the telegraf daemon can be
|
|
|
|
controlled via `systemctl [action] telegraf`
|
|
|
|
|
|
|
|
### Linux binaries:
|
|
|
|
|
|
|
|
Latest:
|
2016-01-07 22:21:10 +00:00
|
|
|
* http://get.influxdb.org/telegraf/telegraf_linux_amd64_0.3.0.tar.gz
|
|
|
|
* http://get.influxdb.org/telegraf/telegraf_linux_386_0.3.0.tar.gz
|
|
|
|
* http://get.influxdb.org/telegraf/telegraf_linux_arm_0.3.0.tar.gz
|
|
|
|
|
|
|
|
0.2.x:
|
2015-12-07 19:22:52 +00:00
|
|
|
* http://get.influxdb.org/telegraf/telegraf_linux_amd64_0.2.4.tar.gz
|
|
|
|
* http://get.influxdb.org/telegraf/telegraf_linux_386_0.2.4.tar.gz
|
|
|
|
* http://get.influxdb.org/telegraf/telegraf_linux_arm_0.2.4.tar.gz
|
2015-09-04 20:12:50 +00:00
|
|
|
|
2015-09-09 17:00:19 +00:00
|
|
|
##### Binary instructions:
|
|
|
|
|
|
|
|
These are standalone binaries that can be unpacked and executed on any linux
|
|
|
|
system. They can be unpacked and renamed in a location such as
|
|
|
|
`/usr/local/bin` for convenience. A config file will need to be generated,
|
|
|
|
see "How to use it" below.
|
2015-06-19 16:34:27 +00:00
|
|
|
|
2015-06-20 01:53:35 +00:00
|
|
|
### OSX via Homebrew:
|
|
|
|
|
|
|
|
```
|
|
|
|
brew update
|
|
|
|
brew install telegraf
|
|
|
|
```
|
|
|
|
|
2015-08-18 16:16:59 +00:00
|
|
|
### From Source:
|
|
|
|
|
2015-12-08 23:18:23 +00:00
|
|
|
Telegraf manages dependencies via [gdm](https://github.com/sparrc/gdm),
|
|
|
|
which gets installed via the Makefile
|
2015-10-19 21:26:08 +00:00
|
|
|
if you don't have it already. You also must build with golang version 1.4+.
|
2015-08-26 00:16:01 +00:00
|
|
|
|
|
|
|
1. [Install Go](https://golang.org/doc/install)
|
|
|
|
2. [Setup your GOPATH](https://golang.org/doc/code.html#GOPATH)
|
2015-10-19 21:26:08 +00:00
|
|
|
3. Run `go get github.com/influxdb/telegraf`
|
|
|
|
4. Run `cd $GOPATH/src/github.com/influxdb/telegraf`
|
|
|
|
5. Run `make`
|
2015-08-18 16:16:59 +00:00
|
|
|
|
2015-06-20 01:53:35 +00:00
|
|
|
### How to use it:
|
|
|
|
|
2015-10-19 21:26:08 +00:00
|
|
|
* Run `telegraf -sample-config > telegraf.conf` to create an initial configuration.
|
2016-01-07 20:39:43 +00:00
|
|
|
* Or run `telegraf -sample-config -input-filter cpu:mem -output-filter influxdb > telegraf.conf`.
|
2015-11-03 18:18:57 +00:00
|
|
|
to create a config file with only CPU and memory plugins defined, and InfluxDB
|
|
|
|
output defined.
|
2015-10-19 21:26:08 +00:00
|
|
|
* Edit the configuration to match your needs.
|
2015-11-03 18:18:57 +00:00
|
|
|
* Run `telegraf -config telegraf.conf -test` to output one full measurement
|
|
|
|
sample to STDOUT. NOTE: you may want to run as the telegraf user if you are using
|
|
|
|
the linux packages `sudo -u telegraf telegraf -config telegraf.conf -test`
|
2015-09-09 17:00:19 +00:00
|
|
|
* Run `telegraf -config telegraf.conf` to gather and send metrics to configured outputs.
|
2016-01-07 20:39:43 +00:00
|
|
|
* Run `telegraf -config telegraf.conf -input-filter system:swap`.
|
2015-09-22 01:38:57 +00:00
|
|
|
to run telegraf with only the system & swap plugins defined in the config.
|
2015-08-13 19:44:41 +00:00
|
|
|
|
2015-05-22 23:45:14 +00:00
|
|
|
## Telegraf Options
|
2015-05-20 05:26:13 +00:00
|
|
|
|
2015-08-06 20:00:14 +00:00
|
|
|
Telegraf has a few options you can configure under the `agent` section of the
|
2015-09-09 17:00:19 +00:00
|
|
|
config.
|
2015-05-20 05:26:13 +00:00
|
|
|
|
2015-08-06 20:00:14 +00:00
|
|
|
* **hostname**: The hostname is passed as a tag. By default this will be
|
2015-10-15 22:17:34 +00:00
|
|
|
the value returned by `hostname` on the machine running Telegraf.
|
2015-08-06 20:00:14 +00:00
|
|
|
You can override that value here.
|
2015-10-15 22:17:34 +00:00
|
|
|
* **interval**: How often to gather metrics. Uses a simple number +
|
|
|
|
unit parser, e.g. "10s" for 10 seconds or "5m" for 5 minutes.
|
2015-08-06 20:00:14 +00:00
|
|
|
* **debug**: Set to true to gather and send metrics to STDOUT as well as
|
|
|
|
InfluxDB.
|
2015-05-20 05:26:13 +00:00
|
|
|
|
2015-12-11 20:07:32 +00:00
|
|
|
## Configuration
|
2015-12-01 14:15:28 +00:00
|
|
|
|
2015-12-11 20:07:32 +00:00
|
|
|
See the [configuration guide](CONFIGURATION.md) for a rundown of the more advanced
|
|
|
|
configuration options.
|
2015-11-24 21:22:11 +00:00
|
|
|
|
2016-01-07 22:21:10 +00:00
|
|
|
## Supported Input Plugins
|
2015-08-13 19:44:41 +00:00
|
|
|
|
2015-08-24 20:08:47 +00:00
|
|
|
**You can view usage instructions for each plugin by running**
|
2015-10-19 21:26:08 +00:00
|
|
|
`telegraf -usage <pluginname>`.
|
2015-08-24 20:08:47 +00:00
|
|
|
|
2015-10-19 21:26:08 +00:00
|
|
|
Telegraf currently has support for collecting metrics from:
|
2015-08-13 19:44:41 +00:00
|
|
|
|
2015-10-22 00:08:43 +00:00
|
|
|
* aerospike
|
2015-09-04 23:05:50 +00:00
|
|
|
* apache
|
2015-10-19 17:38:16 +00:00
|
|
|
* bcache
|
2015-08-20 20:40:23 +00:00
|
|
|
* disque
|
|
|
|
* elasticsearch
|
2015-08-24 20:08:47 +00:00
|
|
|
* exec (generic JSON-emitting executable plugin)
|
2015-08-20 20:40:23 +00:00
|
|
|
* haproxy
|
|
|
|
* httpjson (generic JSON-emitting http service plugin)
|
2015-12-18 23:21:39 +00:00
|
|
|
* influxdb
|
2015-12-11 20:07:32 +00:00
|
|
|
* jolokia
|
2015-08-20 20:40:23 +00:00
|
|
|
* leofs
|
|
|
|
* lustre2
|
2015-12-01 21:05:24 +00:00
|
|
|
* mailchimp
|
2015-08-20 20:40:23 +00:00
|
|
|
* memcached
|
|
|
|
* mongodb
|
|
|
|
* mysql
|
|
|
|
* nginx
|
2015-10-16 12:13:09 +00:00
|
|
|
* phpfpm
|
2015-09-04 23:05:50 +00:00
|
|
|
* ping
|
2015-08-20 20:40:23 +00:00
|
|
|
* postgresql
|
2015-10-07 18:31:49 +00:00
|
|
|
* procstat
|
2015-08-20 20:40:23 +00:00
|
|
|
* prometheus
|
2015-10-16 17:48:33 +00:00
|
|
|
* puppetagent
|
2015-08-20 20:40:23 +00:00
|
|
|
* rabbitmq
|
|
|
|
* redis
|
|
|
|
* rethinkdb
|
2015-11-12 16:25:42 +00:00
|
|
|
* twemproxy
|
2015-11-09 12:37:00 +00:00
|
|
|
* zfs
|
2015-10-14 23:53:47 +00:00
|
|
|
* zookeeper
|
2015-09-04 23:05:50 +00:00
|
|
|
* system
|
|
|
|
* cpu
|
|
|
|
* mem
|
|
|
|
* net
|
2015-10-14 23:53:47 +00:00
|
|
|
* netstat
|
2015-09-04 23:05:50 +00:00
|
|
|
* disk
|
2015-12-11 20:07:32 +00:00
|
|
|
* diskio
|
2015-09-04 23:05:50 +00:00
|
|
|
* swap
|
2015-08-13 19:44:41 +00:00
|
|
|
|
2016-01-07 22:21:10 +00:00
|
|
|
## Supported Input Service Plugins
|
2015-10-07 22:11:52 +00:00
|
|
|
|
2015-10-19 21:26:08 +00:00
|
|
|
Telegraf can collect metrics via the following services:
|
2015-10-07 22:11:52 +00:00
|
|
|
|
|
|
|
* statsd
|
2015-11-16 20:12:45 +00:00
|
|
|
* kafka_consumer
|
2015-10-07 22:11:52 +00:00
|
|
|
|
2015-08-13 19:44:41 +00:00
|
|
|
We'll be adding support for many more over the coming months. Read on if you
|
|
|
|
want to add support for another service or third-party API.
|
|
|
|
|
2016-01-07 22:21:10 +00:00
|
|
|
## Supported Output Plugins
|
2015-06-19 16:38:31 +00:00
|
|
|
|
2015-08-28 16:18:46 +00:00
|
|
|
* influxdb
|
2015-10-27 21:47:27 +00:00
|
|
|
* nsq
|
2015-08-28 16:18:46 +00:00
|
|
|
* kafka
|
|
|
|
* datadog
|
2015-09-10 18:42:53 +00:00
|
|
|
* opentsdb
|
2015-09-17 00:30:10 +00:00
|
|
|
* amqp (rabbitmq)
|
2015-10-07 18:31:49 +00:00
|
|
|
* mqtt
|
2015-10-26 18:31:21 +00:00
|
|
|
* librato
|
2015-10-28 22:19:13 +00:00
|
|
|
* prometheus
|
2015-11-06 09:27:17 +00:00
|
|
|
* amon
|
2015-10-22 21:50:19 +00:00
|
|
|
* riemann
|
2015-06-19 16:38:31 +00:00
|
|
|
|
2015-08-28 16:18:46 +00:00
|
|
|
## Contributing
|
2015-06-19 16:38:31 +00:00
|
|
|
|
2015-08-28 16:18:46 +00:00
|
|
|
Please see the
|
2015-09-09 17:00:19 +00:00
|
|
|
[contributing guide](CONTRIBUTING.md)
|
2015-10-19 21:26:08 +00:00
|
|
|
for details on contributing a plugin or output to Telegraf.
|