Wavefront, as a TSDB utilizes a wide range of Collectors to gather time series data from various devices. Most of these collectors utilize a, currently forked, version of the popular Telegraf Agent. A preview of this out-of-box functionality is shown below.
This forked agent includes and Output Plugin for the Wavefront Protocol and the changes can be seen in the Github Pull Request which is currently in version 1.5 RC1 of the native Telegraf Agent! Once Telegraf 1.5 releases, there will no longer be a need to use the custom fork.
Ok, that said, the installation is straightforward:
- Configure PackageCloud.io Repo or download file
- Install via package manager
- Configure /etc/telegraf/telegraf.conf
- Enable and Start Agent
Let’s focus our attention on the configuration for this article. If you find the 1.5 Release branch of Telegraf you can view to Wavefront documentation directly. It’s relatively straight-forward. First, we need to do the basic agent configuration, specify our input plugins and configure the Wavefront Output Plugin. Here’s a simplistic agent configuration that collects CPU, Memory and Disk information and forwards it to Wavefront.
─ [global_tags] # Configuration for telegraf agent [agent] interval = "10s" round_interval = true metric_batch_size = 1000 metric_buffer_limit = 10000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s" precision = "" debug = false quiet = false logfile = "" hostname = "" omit_hostname = false ### - This is our INPUT section - ### [[inputs.cpu]] percpu = true totalcpu = true [[inputs.disk]] # mount_points = ["/"] ignore_fs = ["tmpfs", "devtmpfs", "devfs"] [[inputs.mem]] # no configuration ### - This is our OUTPUT section - ### [[outputs.wavefront]] host = "<wavefront_proxy_url>" port = <wavefront_proxy_port> metric_separator = "." source_override = ["hostname", "snmp_host", "node_host", "server"] convert_paths = true
All of these options are explained in the Output Plugin’s documentation. Note: if you are reading this after version 1.5 of Telegraf is released, just use the current version of the documentation.