Telegraf is an agent for collecting, processing, aggregating, and writing metrics.
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.
Telegraf is plugin-driven and has the concept of 4 distinct plugin types:
- Input Plugins collect metrics from the system, services, or 3rd party APIs
- Processor Plugins transform, decorate, and/or filter metrics
- Aggregator Plugins create aggregate metrics (e.g. mean, min, max, quantiles, etc.)
- Output Plugins write metrics to various destinations
This repository is a fork of Telegraf adding a DDS input plugin (dds_consumer).
It is synced up with the Telegraf v1.14 branch.
Minimum Requirements
Telegraf shares the same minimum requirements as Go:
- Linux kernel version 2.6.23 or later
- Windows 7 or later
- FreeBSD 11.2 or later
- MacOS 10.11 El Capitan or later
Minimum Requirements
Telegraf shares the same minimum requirements as Go:
- Linux kernel version 2.6.23 or later
- Windows 7 or later
- FreeBSD 11.2 or later
- MacOS 10.11 El Capitan or later
Installation:
From Source:
Telegraf requires Go version 1.12 or newer, the Makefile requires GNU make.
- Install Go >=1.12 (1.13 recommended)
- Clone the Telegraf repository:
git clone https://github.com/rticommunity/telegraf.git
- Run
make
from the source directory
cd telegraf
make
Changelog
View the changelog for the latest updates and changes by
version.
Nightly Builds
These builds are generated from the master branch:
How to use it:
Add RTI Connector C library to the library path
RTI Go Connector dynamically links to RTI Connector C library. The path for Connector C library should be included in the environment variable for library path (e.g. LD_LIBRARY_PATH
). After you build Telegraf, the RTI C Connector library is checked out under the vendor directory. You can include the path like the following.
$ cd ~/src
$ git clone https://github.com/rticommunity/rticonnextdds-connector-go.git
$ export LD_LIBRARY_PATH=~/src/rticonnextdds-connector-go/rticonnextdds-connector/lib/linux-x64:$LD_LIBRARY_PATH
See usage with:
./telegraf --help
Generate a telegraf config file:
./telegraf config > telegraf.conf
Run a single telegraf collection, outputing metrics to stdout:
./telegraf --config telegraf.conf --test
telegraf --section-filter agent:inputs:outputs --input-filter cpu --output-filter influxdb config
Generate config with DDS input & influxdb output plugins defined:
./telegraf --input-filter dds_consumer --output-filter influxdb config
Generate a config file with DDS input & file output plugins:
./telegraf --input-filter dds_consumer --output-filter file config > dds_to_file.conf
When you run with dds_consumer
plugin, please make sure an XML file for DDS configurations is located at the config_path
in your Telegraf TOML config.
Example XML files (e.g. ShapeExample.xml
) and Telegraf config files are given under example_configs
directory.
./telegraf --config ./example_configs/dds_to_file.conf
Telegraf with the example config will create a DDS DataReader with a "Square" topic. They are all defined in ShapeExample.xml
.
You can simply test with the RTI Shapes Demo with publishing data with "Square" topic.
Documentation
Latest Release Documentation.
For documentation on the latest development code see the documentation index.
Input Plugins
- activemq
- aerospike
- amqp_consumer (rabbitmq)
- apache
- apcupsd
- aurora
- aws cloudwatch (Amazon Cloudwatch)
- azure_storage_queue
- bcache
- beanstalkd
- bind
- bond
- burrow
- cassandra (deprecated, use jolokia2)
- ceph
- cgroup
- chrony
- cisco_telemetry_gnmi
- cisco_telemetry_mdt
- clickhouse
- cloud_pubsub Google Cloud Pub/Sub
- cloud_pubsub_push Google Cloud Pub/Sub push endpoint
- conntrack
- consul
- couchbase
- couchdb
- cpu
- DC/OS
- dds_consumer
- diskio
- disk
- disque
- dmcache
- dns query time
- docker
- docker_log
- dovecot
- aws ecs (Amazon Elastic Container Service, Fargate)
- elasticsearch
- ethtool
- eventhub_consumer (Azure Event Hubs \& Azure IoT Hub)
- exec (generic executable plugin, support JSON, influx, graphite and nagios)
- execd
- fail2ban
- fibaro
- file
- filestat
- filecount
- fireboard
- fluentd
- github
- graylog
- haproxy
- hddtemp
- httpjson (generic JSON-emitting http service plugin)
- http_listener (deprecated, renamed to influxdb_listener)
- http_listener_v2
- http (generic HTTP plugin, supports using input data formats)
- http_response
- icinga2
- infiniband
- influxdb
- influxdb_listener
- internal
- interrupts
- ipmi_sensor
- ipset
- iptables
- ipvs
- jenkins
- jolokia2 (java, cassandra, kafka)
- jolokia (deprecated, use jolokia2)
- jti_openconfig_telemetry
- kafka_consumer
- kapacitor
- aws kinesis (Amazon Kinesis)
- kernel
- kernel_vmstat
- kibana
- kubernetes
- kube_inventory
- lanz
- leofs
- linux_sysctl_fs
- logparser
- logstash
- lustre2
- mailchimp
- marklogic
- mcrouter
- memcached
- mem
- mesos
- minecraft
- modbus
- mongodb
- monit
- mqtt_consumer
- multifile
- mysql
- nats_consumer
- nats
- neptune_apex
- net
- net_response
- netstat
- nginx
- nginx_plus_api
- nginx_plus
- nginx_upstream_check
- nginx_vts
- nsq_consumer
- nsq
- nstat
- ntpq
- nvidia_smi
- openldap
- openntpd
- opensmtpd
- openweathermap
- pf
- pgbouncer
- phpfpm
- phusion passenger
- ping
- postfix
- postgresql_extensible
- postgresql
- powerdns
- powerdns_recursor
- processes
- procstat
- prometheus (can be used for Caddy server)
- puppetagent
- rabbitmq
- raindrops
- redis
- rethinkdb
- riak
- salesforce
- sensors
- sflow
- smart
- snmp_legacy
- snmp
- snmp_trap
- socket_listener
- solr
- sql server (microsoft)
- stackdriver (Google Cloud Monitoring)
- statsd
- suricata
- swap
- synproxy
- syslog
- sysstat
- systemd_units
- system
- tail
- temp
- tcp_listener
- teamspeak
- tengine
- tomcat
- twemproxy
- udp_listener
- unbound
- uwsgi
- varnish
- vsphere VMware vSphere
- webhooks
- win_perf_counters (windows performance counters)
- win_services
- wireguard
- wireless
- x509_cert
- zfs
- zipkin
- zookeeper
- dds_consumer
Parsers
Serializers
Processor Plugins
Aggregator Plugins
Output Plugins