2015-08-04 21:04:34 +00:00
# Telegraf - A native agent for InfluxDB [![Circle CI](https://circleci.com/gh/influxdb/telegraf.svg?style=svg)](https://circleci.com/gh/influxdb/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
2015-09-09 17:00:19 +00:00
running on, or from other services, and writing them into InfluxDB.
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
2015-08-06 20:00:14 +00:00
We'll eagerly accept pull requests for new plugins and will manage the set of
2015-09-09 17:00:19 +00:00
plugins that Telegraf supports. See the
[contributing guide ](CONTRIBUTING.md ) for instructions on
2015-08-06 20:00:14 +00:00
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
2015-09-09 17:00:19 +00:00
### Linux deb and rpm packages:
2015-08-20 21:18:45 +00:00
Latest:
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:
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.
* Or run `telegraf -sample-config -filter cpu:mem -outputfilter 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.
2015-10-19 21:26:08 +00:00
* Run `telegraf -config telegraf.conf -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
2015-08-13 19:44:41 +00:00
## Supported Plugins
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
2015-10-16 22:13:32 +00:00
## Supported 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.
2015-08-28 16:18:46 +00:00
## Supported Outputs
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.