<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>InfluxData Blog - Cameron Sparr</title>
    <description>Posts by Cameron Sparr on the InfluxData Blog</description>
    <link>https://www.influxdata.com/blog/author/camerons/</link>
    <language>en-us</language>
    <lastBuildDate>Thu, 08 Sep 2016 03:00:14 -0700</lastBuildDate>
    <pubDate>Thu, 08 Sep 2016 03:00:14 -0700</pubDate>
    <ttl>1800</ttl>
    <item>
      <title>Announcing Telegraf 1.0 - The Plugin-Driven Agent for Collecting Metrics</title>
      <description>&lt;p&gt;&lt;span style="font-weight: 400;"&gt;Telegraf 1.0 GA is &lt;/span&gt;&lt;a href="https://www.influxdata.com/downloads/"&gt;&lt;span style="font-weight: 400;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;. Telegraf is InfluxDB’s native data collector, the first step of the TICK stack. You can use Telegraf to collect metrics from a &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf#supported-input-plugins"&gt;&lt;span style="font-weight: 400;"&gt;wide range of inputs&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; and write those metrics into InfluxDB or &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf#supported-output-plugins"&gt;&lt;span style="font-weight: 400;"&gt;other supported outputs&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: 400;"&gt;1.0 is a big date in Telegraf’s journey, and as an open-source project it has come a very long way. I took over as the maintainer of the project just over a year ago (my first commit was &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/commit/03c5207"&gt;&lt;span style="font-weight: 400;"&gt;August 3rd&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;), when there were 18 input plugins and only 1 output plugin (InfluxDB). Today, there are over 80 input plugins and 18 output plugins, and &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/pulls"&gt;&lt;span style="font-weight: 400;"&gt;it’s still growing&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: 400;"&gt;Since the release of 0.13.1 we’ve had nearly &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/blob/master/CHANGELOG.md"&gt;&lt;span style="font-weight: 400;"&gt;40 features or enhancements added and more than 45 bugfixes&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;. Many of the features and PRs came from the community, thank you to everyone who contributed!&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;New in this release&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-weight: 400;"&gt;Of the new features in 1.0 there are three we want to highlight, all of which are community contributions…&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;span style="font-weight: 400;"&gt;&lt;strong&gt;New SNMP Plugin:&lt;/strong&gt; The previous SNMP plugin was difficult to use and configure, and was quite limited in it's output schema. Thanks to &lt;/span&gt;&lt;a href="https://github.com/phemmer"&gt;&lt;span style="font-weight: 400;"&gt;@phemmer&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; for writing a &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/snmp"&gt;&lt;span style="font-weight: 400;"&gt;brand new one.&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;span style="font-weight: 400;"&gt;&lt;strong&gt;New Webhooks Plugin:&lt;/strong&gt; There is a new webhooks plugin that allows for multiple webhooks services to run on a single port. Thanks to &lt;/span&gt;&lt;a href="https://github.com/francois2metz"&gt;&lt;span style="font-weight: 400;"&gt;@francois2metz&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; and &lt;/span&gt;&lt;a href="https://github.com/cduez"&gt;&lt;span style="font-weight: 400;"&gt;@cduez&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;. More can be read about it &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/webhooks"&gt;&lt;span style="font-weight: 400;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;.&lt;/span&gt;&lt;/li&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;span style="font-weight: 400;"&gt;&lt;strong&gt;Windows Service:&lt;/strong&gt; Telegraf now supports being installed as a real Windows Service, much thanks to &lt;/span&gt;&lt;a href="https://github.com/butitsnotme"&gt;&lt;span style="font-weight: 400;"&gt;@butitsnotme&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; for this &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/1543"&gt;&lt;span style="font-weight: 400;"&gt;PR&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;. You can read more &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/blob/master/docs/WINDOWS_SERVICE.md"&gt;&lt;span style="font-weight: 400;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!--more--&gt;

&lt;h2&gt;Beyond 1.0&lt;/h2&gt;

&lt;p&gt;&lt;span style="font-weight: 400;"&gt;On the roadmap are an HTTP input listener (a Telegraf clone of the InfluxDB http endpoint), NATS output plugin, Histogram (aggregation) support, and improvements to the existing documentation and handling of external plugins. For more details on what we are planning check out the planned &lt;/span&gt;&lt;a href="https://github.com/influxdata/telegraf/milestones"&gt;&lt;span style="font-weight: 400;"&gt;milestones&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;h2&gt;What's next&lt;/h2&gt;

&lt;ul&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;b&gt;Download:&lt;/b&gt;&lt;span style="font-weight: 400;"&gt; 1.0 GA &lt;/span&gt;&lt;a href="https://www.influxdata.com/downloads/"&gt;&lt;span style="font-weight: 400;"&gt;downloads&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; for the TICK-stack are live on our "downloads" page&lt;/span&gt;&lt;/li&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;b&gt;Deploy on the Cloud: &lt;/b&gt;&lt;span style="font-weight: 400;"&gt;Get started with a FREE trial of &lt;/span&gt;&lt;a href="https://cloud.influxdata.com/"&gt;&lt;span style="font-weight: 400;"&gt;InfluxDB Cloud&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; featuring fully-managed clusters, Kapacitor and Grafana.&lt;/span&gt;&lt;/li&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;b&gt;Deploy on Your Servers: &lt;/b&gt;&lt;span style="font-weight: 400;"&gt;Want to run InfluxDB clusters on your servers? Try a FREE 14-day trial of &lt;/span&gt;&lt;a href="https://portal.influxdata.com/"&gt;&lt;span style="font-weight: 400;"&gt;InfluxDB Enterprise&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; featuring an intuitive UI for deploying, monitoring and rebalancing clusters, plus managing backups and restores. &lt;/span&gt;&lt;/li&gt;
 	&lt;li style="font-weight: 400;"&gt;&lt;b&gt;Tell Your Story:&lt;/b&gt; &lt;a href="/customers/"&gt;&lt;span style="font-weight: 400;"&gt;Over 100 companies&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: 400;"&gt; have shared their story on how InfluxDB is helping them succeed. Submit your testimonial and get a limited edition InfluxDB hoodie as a thank you.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Thu, 08 Sep 2016 03:00:14 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-1-0-the-plugin-driven-agent-for-collecting-metrics/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-1-0-the-plugin-driven-agent-for-collecting-metrics/</guid>
      <category>Use Cases</category>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Parsing Logs into InfluxDB Using Telegraf's Logparser Plugin</title>
      <description>&lt;div class="old-version"&gt;&lt;strong&gt;Warning!&lt;/strong&gt; This post is a little old. Please review the latest &lt;a href="https://docs.influxdata.com/telegraf/latest/"&gt;Telegraf documentation&lt;/a&gt; for complete updates.&lt;/div&gt;
&lt;p&gt;InfluxData is excited to announce that it now supports the ability to stream log event data to &lt;a href="https://w2.influxdata.com/time-series-platform/influxdb/"&gt;InfluxDB&lt;/a&gt; with out-of-the-box patterns for popular servers like Nginx and Apache. Log monitoring support is the latest addition to &lt;a href="https://w2.influxdata.com/time-series-platform/telegraf/"&gt;Telegraf’s&lt;/a&gt; already impressive list of &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins"&gt;90+ input and output data plug-ins&lt;/a&gt;. In addition to standard format logs, Telegraf logparser, custom log parsing and patterns based on the popular “grok” patterns are also supported.&lt;/p&gt;
&lt;blockquote&gt;What is Telegraf? Telegraf is a metric collection daemon that can collect metrics from a wide array of inputs and write them into a wide array of outputs. It is plugin-driven for both collection and output of data so it is easily extendable. It is also written in Go, which means that it is a compiled and standalone binary that can be executed on any system with no need for external dependencies, no npm, pip, gem, or other package management tools required.&lt;/blockquote&gt;
&lt;p&gt;With Telegraf you can not only parse logs to create metrics and store them as time series data—InfluxDB also has the ability to store raw log lines alongside the metrics. We should caution that this new capability is not intended to be a replacement for full-text search tools, rather for aiding in root cause analysis during specific windows of triage. So, if you are investigating performance metrics within a band of time, you can search via regex for any log errors that occurred in that same band. All the data is conveniently in one place, making it fast to lookup and correlate data.&lt;!--more--&gt;&lt;/p&gt;

&lt;p&gt;The logparser plugin can be utilized in Telegraf to structure any log data into queryable and searchable metrics. In this guide we will use one of Telegraf’s built-in patterns to parse logs that are in the “Combined Log Format”, which is a common setup in Apache and Nginx access logs. It is an extension of the Common Log Format with the addition of two quoted strings for “Referrer” and “User-Agent”:&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-markup"&gt;lang:default decode:true"&amp;gt;127.0.0.1 ident auth [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://localhost:8083/" "Chrome/51.0.2704.84"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In Nginx, configuring your server to output logs like this would look something like this in &lt;code class="language-markup"&gt;/etc/nginx/nginx.conf&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;log_format vhosts '$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

access_log /var/log/nginx/access.log vhosts;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And like this in Apache (see here for more details):&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;"%h %l %u %t \"%r\" %&amp;gt;s %b \"%{Referer}i\" \"%{User-agent}i\""&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Step 1 -- Install Telegraf&lt;/h2&gt;
&lt;p&gt;Telegraf packages are available for many different platforms from the InfluxData &lt;a href="https://w2.influxdata.com/downloads/#telegraf"&gt;downloads page&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Install on Ubuntu:
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.0.0_amd64.deb
sudo dpkg -i telegraf_1.0.0_amd64.deb
service telegraf stop&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Step 2 -- Running Through a Test Metric&lt;/h2&gt;
&lt;p&gt;First create a temp log file:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;touch /tmp/test.log&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, setup a simplified &lt;code class="language-markup"&gt;telegraf.conf&lt;/code&gt; file by running the following &lt;code class="language-markup"&gt;echo&lt;/code&gt; command.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;echo '
[[inputs.logparser]]
  ## file(s) to tail:
  files = ["/tmp/test.log"]
  from_beginning = false
  name_override = "test_metric"
  ## For parsing logstash-style "grok" patterns:
  [inputs.logparser.grok]
    patterns = ["%{COMBINED_LOG_FORMAT}"]

[[outputs.file]]
  ## Files to write to, "stdout" is a specially handled file.
  files = ["stdout"]' &amp;gt;&amp;gt; /tmp/telegraf.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The file tells Telegraf to run using the &lt;code class="language-markup"&gt;logparser&lt;/code&gt; input plugin and the &lt;code class="language-markup"&gt;file&lt;/code&gt; output plugin. The &lt;code class="language-markup"&gt;logparser&lt;/code&gt; input will tail the &lt;code class="language-markup"&gt;/tmp/test.log&lt;/code&gt; file, parsing and outputting metrics with the name &lt;code class="language-markup"&gt;test_metric&lt;/code&gt;. The output will be written using the &lt;code class="language-markup"&gt;file&lt;/code&gt; output plugin to &lt;code class="language-markup"&gt;stdout&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now we will use that config file to run Telegraf:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;telegraf --config /tmp/telegraf.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While Telegraf is running, we will echo the example log line to the &lt;code class="language-markup"&gt;/tmp/test.log&lt;/code&gt; file.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;bash
echo '127.0.0.1 ident auth [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://localhost:8083/" "Chrome/51.0.2704.84"' &amp;gt;&amp;gt; /tmp/test.log&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the Telegraf output, you should see the above log line get parsed into an &lt;a href="https://archive.docs.influxdata.com/influxdb/v1.0/write_protocols/" target="_blank" rel="noopener noreferrer"&gt;InfluxDB line-protocol&lt;/a&gt; metric and printed to &lt;code&gt;STDOUT&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;test_metric,host=localhost,http_method=GET agent="Chrome/51.0.2704.84",auth="auth",client_ip="127.0.0.1",http_status_code=200i,http_version=1,ident="ident",referrer="http://localhost:8083/",request="/apache_pb.gif",response_bytes=2326i 971211336000000000&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Parsing Access Logs and Writing Real Data into InfluxDB&lt;/h2&gt;
&lt;p&gt;The next steps will build on the previous test data and parse real access log data into InfluxDB.&lt;/p&gt;

&lt;p&gt;These steps will deal with parsing an Nginx log file. If you don’t have one handy, you can download an example &lt;a href="https://gist.github.com/sparrc/3d356f0a7c894ab080389b32ad34c022"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Step 3 -- Install InfluxDB&lt;/h2&gt;
&lt;p&gt;InfluxDB packages are available for many different platforms from the &lt;a href="https://w2.influxdata.com/downloads/#influxdb"&gt;downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Install on Ubuntu:
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.0.0_amd64.deb
sudo dpkg -i influxdb_1.0.0_amd64.deb
service influxdb start&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Step 4 -- Configure Telegraf&lt;/h2&gt;
&lt;p&gt;First we will rename the default Telegraf config file:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.orig&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now write a new config file:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;echo '
[[inputs.logparser]]
  ## files to tail.
  files = ["/var/log/nginx/access.log"]
  ## Read file from beginning.
  from_beginning = true
  ## Override the default measurement name, which would be "logparser_grok"
  name_override = "nginx_access_log"
  ## For parsing logstash-style "grok" patterns:
  [inputs.logparser.grok]
    patterns = ["%{COMBINED_LOG_FORMAT}"]

[[outputs.influxdb]]
  ## The full HTTP or UDP endpoint URL for your InfluxDB instance.
  urls = ["http://localhost:8086"] # required
  ## The target database for metrics (telegraf will create it if not exists).
  database = "telegraf" # required
  ## Write timeout (for the InfluxDB client), formatted as a string.
  timeout = "5s"
' &amp;gt;&amp;gt; /etc/telegraf/telegraf.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This time our config file will assume that you are running an InfluxDB instance locally. We will also be tailing an nginx log file at &lt;code class="language-markup"&gt;/var/log/nginx/access.log&lt;/code&gt;. If you don’t have an Nginx access log handy, you can download an example &lt;a href="https://gist.github.com/sparrc/3d356f0a7c894ab080389b32ad34c022"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Step 5 -- Parsing the Nginx Access Log&lt;/h2&gt;
&lt;p&gt;Now we can start the Telegraf service daemon:&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-markup"&gt;service telegraf start&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We won’t see metrics getting written to &lt;code class="language-markup"&gt;STDOUT&lt;/code&gt;, but we should see log lines indicating that metrics are getting written to InfluxDB.&lt;/p&gt;

&lt;p&gt;The Telegraf service log is located at &lt;code class="language-markup"&gt;/var/log/telegraf/telegraf.log&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;2016/06/16 15:32:50 Output [influxdb] buffer fullness: 600 / 10000 metrics. Total gathered metrics: 600. Total dropped metrics: 0.
2016/06/16 15:32:50 Output [influxdb] wrote batch of 600 metrics in 5.809µs&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Step 6 -- Exploring the Data in InfluxDB&lt;/h2&gt;
&lt;p&gt;When we installed InfluxDB, we also installed the Influx CLI client for connecting to and querying the database. We can launch this by simply running &lt;code class="language-markup"&gt;influx&lt;/code&gt; and using the &lt;code class="language-markup"&gt;telegraf&lt;/code&gt; database.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;$ influx
Connected to http://localhost:8086 version 1.0.0
InfluxDB shell version: 1.0.0
&amp;gt; USE telegraf
Using database telegraf
&amp;gt; precision rfc3339
&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First let’s query our parsed data and see how many metrics we’ve got:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT count(resp_code) FROM nginx_access_log
name: nginx_access_log
----------------------
time			           count
1970-01-01T00:00:00Z	           600&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Perfect! This is the number of parsable metrics in the &lt;a href="https://gist.github.com/sparrc/3d356f0a7c894ab080389b32ad34c022"&gt;example log file&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now let’s see how many errors we’ve returned using the &lt;code class="language-markup"&gt;count()&lt;/code&gt; function:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT count(resp_code) FROM nginx_access_log WHERE resp_code &amp;gt;= 400
name: nginx_access_log
----------------------
time			           count
1970-01-01T00:00:00Z	           71&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;71 errors is quite a bit for only 600 requests in total! Let’s take a peek at a few of those errors using &lt;code class="language-markup"&gt;*&lt;/code&gt; to grab all fields and &lt;code class="language-markup"&gt;LIMIT&lt;/code&gt; to limit the number returned.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT * FROM nginx_access_log WHERE resp_code &amp;gt;= 400 LIMIT 5
name: nginx_access_log
----------------------
time				agent			auth	client_ip	host	http_version	ident	referrer	request	resp_bytes	resp_code	verb
2011-08-22T01:02:01.005Z	okhttp/2.4.0		-	192.168.1.2	tars	1.1		-	-		/huh	0		404	GET
2011-08-22T01:02:01.008Z	Python-urllib/2.7	-	127.0.0.1	tars	1.1		-	-		/huh	0		404	GET
2011-08-22T01:02:02.005Z	Firefox/5.0		-	127.0.0.1	tars	1.1		-	-		/huh	0		404	GET
2011-08-22T01:02:03.006Z	Firefox/5.0		-	127.0.0.1	tars	1.1		-	-		/huh	0		404	GET
2011-08-22T01:02:04.009Z	Firefox/5.0		-	127.0.0.1	tars	1.1		-	-		/huh	0		404	GET&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looks like we’ve got some 404s. If we look closely, we can see that each of the 404s are coming from requests on the &lt;code class="language-markup"&gt;/huh&lt;/code&gt; endpoint. Let’s see if &lt;em&gt;every&lt;/em&gt; 404 is on that endpoint—for this we will use the &lt;code class="language-markup"&gt;distinct()&lt;/code&gt; function.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT distinct(request) FROM nginx_access_log WHERE resp_code &amp;gt;= 400
name: nginx_access_log
----------------------
time			          distinct
1970-01-01T00:00:00Z	          /huh
1970-01-01T00:00:00Z	          /foo&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looks like there might be a few people getting 404 from the &lt;code class="language-markup"&gt;/foo&lt;/code&gt; endpoint as well, so let’s see how many:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT count(resp_code) FROM nginx_access_log WHERE resp_code &amp;gt;= 400 AND request = '/foo'
name: nginx_access_log
----------------------
time			           count
1970-01-01T00:00:00Z	           1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Great! Since there’s only one, this means that the main issue is users querying the &lt;code class="language-markup"&gt;/huh&lt;/code&gt; endpoint, and now we can deal with finding out where that errant endpoint is coming from.&lt;/p&gt;
&lt;h2&gt;Customizing the Logparser Plugin&lt;/h2&gt;
&lt;p&gt;Now that we’ve covered how to parse data from standard “Combined Log Format”, let’s look into parsing logs that might have additional fields. &lt;a href="http://httpd.apache.org/docs/current/mod/mod_log_config.html"&gt;Apache&lt;/a&gt; and &lt;a href="https://www.nginx.com/resources/admin-guide/logging-and-monitoring/"&gt;Nginx&lt;/a&gt; allow for a high level of customization to their log output, and likewise so does the Logparser.&lt;/p&gt;

&lt;p&gt;Let’s say that our Apache admin added 2 fields on to the end of each log line:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;the ID of the request and&lt;/li&gt;
 	&lt;li&gt;the response time in microseconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While the response time is likely &lt;em&gt;very&lt;/em&gt; useful from an analytics perspective, the &lt;code class="language-markup"&gt;ID&lt;/code&gt; is probably not as useful, so let’s come up with a &lt;code class="language-markup"&gt;grok&lt;/code&gt; pattern to deal with this.&lt;/p&gt;

&lt;p&gt;Say the log lines look like this (see the full file &lt;a href="https://gist.github.com/sparrc/3d356f0a7c894ab080389b32ad34c022#file-combined_log_format_w_resp_time-log"&gt;here&lt;/a&gt;):&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;127.0.0.1 - - [22/Aug/2011:10:02:59 +0900] "GET /huh HTTP/1.1" 404 0 "-" "Firefox/5.0" f18064bf-a4c5-4fd9-9cf8-37aff27382c5 3648&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Which is the Combined Log Format with the addition of a UUID and integer at the end. So, how do we go about parsing this?&lt;/p&gt;
&lt;h2&gt;The Telegraf Grok Logparser&lt;/h2&gt;
&lt;p&gt;In order to parse a custom log file we must create a custom “grok” pattern for Telegraf. The logparser plugin uses a slightly modified version of logstash ”grok” patterns, with the format:&lt;/p&gt;
&lt;pre class="line-numbers"&gt;&lt;code class="language-markup"&gt;%{&amp;lt;capture_syntax&amp;gt;[:&amp;lt;semantic_name&amp;gt;][:&amp;lt;modifier&amp;gt;]}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Telegraf has many of its own built-in patterns, as well as supporting Logstash’s &lt;a href="https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/legacy/grok-patterns" target="_blank" rel="noopener noreferrer"&gt;built-in patterns&lt;/a&gt;. The best way to get acquainted with grok patterns is to read the Logstash docs, which are available &lt;a href="https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Setting Up a Custom Log Pattern&lt;/h2&gt;
&lt;p&gt;Telegraf allows for specifying custom patterns in a separate file, or directly in the config file. Let’s change our config file to include our custom pattern.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;service telegraf stop
vim /etc/telegraf/telegraf.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;telegraf.conf:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;[[inputs.logparser]]
  ## files to tail.
  files = ["/var/log/myapp/access.log"]
  ## Read file from beginning.
  from_beginning = true
  ## Override the default measurement name, which would be "logparser_grok"
  name_override = "my_log"
  ## For parsing logstash-style "grok" patterns:
  [inputs.logparser.grok]
    patterns = ["%{CUSTOM_LOG}"]
    custom_patterns = '''
      CUSTOM_LOG %{COMBINED_LOG_FORMAT} %{UUID} %{NUMBER:response_time_us:int}
    '''

[[outputs.influxdb]]
  ## The full HTTP or UDP endpoint URL for your InfluxDB instance.
  urls = ["http://localhost:8086"] # required
  ## The target database for metrics (telegraf will create it if not exists).
  database = "telegraf" # required
  ## Write timeout (for the InfluxDB client), formatted as a string.
  timeout = "5s"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice that we need to add the &lt;code class="language-markup"&gt;CUSTOM_LOG&lt;/code&gt; pattern, as well as telling Telegraf to use the &lt;code class="language-markup"&gt;%{CUSTOM_LOG}&lt;/code&gt; pattern when parsing.&lt;/p&gt;

&lt;p&gt;Let’s go over the fields in this pattern:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li class="line-numbers"&gt;&lt;code class="language-markup"&gt;CUSTOM_LOG&lt;/code&gt; is the name of the pattern.&lt;/li&gt;
 	&lt;li&gt;
&lt;p class="line-numbers"&gt;&lt;code class="language-markup"&gt;%{COMBINED_LOG_FORMAT}&lt;/code&gt; is the name of the built-in pattern.&lt;/p&gt;
&lt;/li&gt;
 	&lt;li class="line-numbers"&gt;&lt;code class="language-markup"&gt;%{UUID}&lt;/code&gt; uses the Logstash built-in UUID pattern to recognize this portion of the log file, but does not store it.&lt;/li&gt;
 	&lt;li class="line-numbers"&gt;&lt;code class="language-markup"&gt;%{NUMBER:response_time_us:int}&lt;/code&gt; uses the Logstash built-in NUMBER pattern. It names this field &lt;code class="language-markup"&gt;response_time_us&lt;/code&gt; and casts it to an &lt;code class="language-markup"&gt;int&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Parsing the Log &amp;amp; Analyzing the Data&lt;/h2&gt;
&lt;p&gt;Now that our config file is setup, we can run the Telegraf service again (but first make sure that you have a file at &lt;code class="language-markup"&gt;/var/log/myapp/access.log&lt;/code&gt;, you can grab the example &lt;a href="https://gist.github.com/sparrc/3d356f0a7c894ab080389b32ad34c022#file-combined_log_format_w_resp_time-log"&gt;here&lt;/a&gt;.)&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;service telegraf start&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And once the metrics are written we can enter the &lt;code&gt;influx&lt;/code&gt; CLI again:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;$ influx
Connected to http://localhost:8086 version 1.0.0
InfluxDB shell version: 1.0.0
&amp;gt; USE telegraf
Using database telegraf
&amp;gt; precision rfc3339&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And now that we have access to the response times, let’s see what our average &amp;amp; 95th percentile response times are:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT mean(response_time_us),percentile(response_time_us,95) FROM my_log
name: my_log
------------
time				mean		percentile
1970-01-01T00:00:00Z	        912411.36	10078023&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Yikes, seems a bit high, so let’s peek at some of the metrics that have a very large response time:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT * FROM my_log WHERE response_time_us &amp;gt; 10078023 LIMIT 5
name: my_log
------------
time				agent			auth	client_ip	host	http_version	ident	referrer	request		resp_bytes	resp_code	response_time_us	verb
2011-08-22T01:02:01.008Z	Firefox/5.0		userb	127.0.0.1	tars	1.1		-	-		/large.jpg	10485760	200		10181259		GET
2011-08-22T01:02:04.004Z	Firefox/5.0		usera	127.0.0.1	tars	1.1		-	-		/large.jpg	10485760	200		10110514		GET
2011-08-22T01:02:06.004Z	Python-urllib/2.7	-	127.0.0.1	tars	1.1		-	-		/large.jpg	10485760	200		10132756		GET
2011-08-22T01:02:10.002Z	Firefox/5.0		userb	192.168.1.2	tars	1.1		-	-		/large.jpg	10485760	200		10101485		GET
2011-08-22T01:02:11.006Z	Firefox/5.0		-	127.0.0.1	tars	1.1		-	-		/large.jpg	10485760	200		10144209		GET&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aha! These are serving up a very large image file. Let’s ignore these and view what our response time is in cases with smaller requests:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;&amp;gt; SELECT mean(response_time_us),percentile(response_time_us,95) FROM my_log WHERE resp_bytes &amp;lt; 4096
name: my_log
------------
time				mean				percentile
1970-01-01T00:00:00Z	4003.456043956044	7633

&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Great! That looks a bit better.&lt;/p&gt;
&lt;h2&gt;What's Next?&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://w2.influxdata.com/downloads/" target="_blank" rel="noopener noreferrer"&gt;Download&lt;/a&gt; and &lt;a href="https://docs.influxdata.com/influxdb/v2.0/get-started/" target="_blank" rel="noopener noreferrer"&gt;get started&lt;/a&gt; with InfluxDB 1.3.1.&lt;/li&gt;
 	&lt;li&gt;Looking for InfluxDB clustering on your infrastructure? &lt;a href="https://portal.influxdata.com/" target="_blank" rel="noopener noreferrer"&gt;Get started&lt;/a&gt; with InfluxDB Enterprise, now available for evaluation.&lt;/li&gt;
 	&lt;li&gt;Schedule a &lt;a href="https://w2.influxdata.com/contact-us/contact-sales/" target="_blank" rel="noopener noreferrer"&gt;FREE 20 minute consultation&lt;/a&gt; with a Solutions Architect to review your InfluxDB project.&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Thu, 23 Jun 2016 06:15:34 -0700</pubDate>
      <link>https://www.influxdata.com/blog/telegraf-correlate-log-metrics-data-performance-bottlenecks/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/telegraf-correlate-log-metrics-data-performance-bottlenecks/</guid>
      <category>Product</category>
      <category>Company</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.11 with UDP &amp; TCP Input Plugins Plus NTP Query &amp; Processes Inputs</title>
      <description>&lt;p&gt;We are excited to announce the immediate availability of  &lt;a href="/downloads/"&gt;Telegraf 0.11&lt;/a&gt;, which includes support for &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/tcp_listener"&gt;TCP&lt;/a&gt; and &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/udp_listener"&gt;UDP&lt;/a&gt; input plugins. These plugins are able to parse multiple data formats (including InfluxDB line protocol and graphite) and write them to any configured output.&lt;/p&gt;

&lt;p&gt;We are also releasing three new plugins for gathering additional system metrics:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/dns_query"&gt;NTP Query&lt;/a&gt;
runs the &lt;code&gt;ntpq&lt;/code&gt; command and returns NTP query metrics such as offset, delay, jitter, etc.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/blob/master/plugins/inputs/system/README.md" target="_blank" rel="noopener noreferrer"&gt;Processes&lt;/a&gt;
gathers information on the overall processes running on the system. It counts total
processes, as well as processes in states such as zombie, sleeping, running, etc.
On Linux it will also gather thread information.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/blob/master/plugins/inputs/system/README.md" target="_blank" rel="noopener noreferrer"&gt;Kernel&lt;/a&gt;
gathers generic kernel metrics available in &lt;code&gt;/proc/stat&lt;/code&gt;, this plugin is only
available on Linux.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional features and bugfixes in this release below…&lt;/p&gt;

&lt;h2&gt;Features&lt;/h2&gt;

&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/770"&gt;#692&lt;/a&gt;: Support InfluxDB retention policies&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/771"&gt;#771&lt;/a&gt;: Default timeouts for input plugns. Thanks @PierreF!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/758"&gt;#758&lt;/a&gt;: UDP Listener input plugin, thanks @whatyouhide!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/769"&gt;#769&lt;/a&gt;: httpjson plugin: allow specifying SSL configuration.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/735"&gt;#735&lt;/a&gt;: SNMP Table feature. Thanks @titilambert!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/754"&gt;#754&lt;/a&gt;: docker plugin: adding &lt;code&gt;docker info&lt;/code&gt; metrics to output. Thanks @titilambert!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/788"&gt;#788&lt;/a&gt;: -input-list and -output-list command-line options. Thanks @ebookbug!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/778"&gt;#778&lt;/a&gt;: Adding a TCP input listener.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/797"&gt;#797&lt;/a&gt;: Provide option for persistent MQTT consumer client sessions.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/799"&gt;#799&lt;/a&gt;: Add number of threads for procstat input plugin. Thanks @titilambert!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/776"&gt;#776&lt;/a&gt;: Add Zookeeper chroot option to kafka_consumer. Thanks @prune998!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/811"&gt;#811&lt;/a&gt;: Add processes plugin for classifying total procs on system. Thanks @titilambert!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/235"&gt;#235&lt;/a&gt;: Add number of users to the &lt;code&gt;system&lt;/code&gt; input plugin.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/826"&gt;#826&lt;/a&gt;: "kernel" linux plugin for /proc/stat metrics (context switches, interrupts, etc.)&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/847"&gt;#847&lt;/a&gt;: &lt;code&gt;ntpq&lt;/code&gt;: Input plugin for running ntp query executable and gathering metrics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Bugfixes&lt;/h2&gt;

&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/748"&gt;#748&lt;/a&gt;: Fix sensor plugin split on ":"&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/722"&gt;#722&lt;/a&gt;: Librato output plugin fixes. Thanks @chrusty!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/745"&gt;#745&lt;/a&gt;: Fix Telegraf toml parse panic on large config files. Thanks @titilambert!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/781"&gt;#781&lt;/a&gt;: Fix mqtt_consumer username not being set. Thanks @chaton78!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/pull/786"&gt;#786&lt;/a&gt;: Fix mqtt output username not being set. Thanks @msangoi!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/773"&gt;#773&lt;/a&gt;: Fix duplicate measurements in snmp plugin. Thanks @titilambert!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/708"&gt;#708&lt;/a&gt;: packaging: build ARM package&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/713"&gt;#713&lt;/a&gt;: packaging: insecure permissions error on log directory&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/816"&gt;#816&lt;/a&gt;: Fix phpfpm panic if fcgi endpoint unreachable.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/828"&gt;#828&lt;/a&gt;: fix net_response plugin overwriting host tag.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/issues/821"&gt;#821&lt;/a&gt;: Remove postgres password from server tag. Thanks @menardorama!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What's next&lt;/h2&gt;

&lt;ul&gt;
 	&lt;li&gt;Get started with Telegraf &lt;a href="https://docs.influxdata.com/telegraf/v1/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Tue, 15 Mar 2016 13:30:24 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-11-with-udp-tcp-input-plugins-plus-ntp-query-processes-inputs/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-11-with-udp-tcp-input-plugins-plus-ntp-query-processes-inputs/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.10.3 with Support for more Message Brokers and Arbitrary Data Formats</title>
      <description>&lt;p&gt;Here’s what’s new in the Telegraf 0.10.3 release…&lt;/p&gt;

&lt;h2&gt;New Message Brokers&lt;/h2&gt;

&lt;p&gt;Telegraf now supports consuming metrics from &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/mqtt_consumer"&gt;MQTT&lt;/a&gt; and &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/nats_consumer"&gt;NATS&lt;/a&gt; message brokers (in addition to the existing Kafka consumer). In addition to these new message brokers, Telegraf can now also consume data that is in a variety of formats, rather than only line-protocol. Read on to learn more…&lt;/p&gt;

&lt;h2&gt;Arbitrary Data Formats&lt;/h2&gt;

&lt;h2&gt;Input plugins&lt;/h2&gt;
&lt;p&gt;For incoming textual data, such as via the &lt;code&gt;exec&lt;/code&gt; or any of the &lt;code&gt;*_consumer&lt;/code&gt; input plugins, users can now specify the data format that they would like to parse, current option are:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;influx (line protocol)&lt;/li&gt;
 	&lt;li&gt;graphite&lt;/li&gt;
 	&lt;li&gt;JSON&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these options has a unique set of configuration options. More info on each of them can be found &lt;a href="https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md"&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Output Plugins&lt;/h2&gt;

&lt;p&gt;For outgoing textual data, such as via the &lt;code&gt;file&lt;/code&gt; or any message broker output (&lt;code&gt;NSQ&lt;/code&gt;, &lt;code&gt;MQTT&lt;/code&gt;, &lt;code&gt;Kafka&lt;/code&gt;, etc.), users can now specify the data format they would like to serialize metrics to, current options are:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;influx (line protocol)&lt;/li&gt;
 	&lt;li&gt;graphite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these options has a unique set of configuration options. More info on each of them can be found &lt;a href="https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md"&gt;here.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Future Work&lt;/h2&gt;

&lt;p&gt;We would like to support more data formats and more powerful parsing and serializing templates in the future. Members of the community are encouraged to submit PRs for new &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/parsers"&gt;parser (input)&lt;/a&gt; and &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/serializers"&gt;serializer (output)&lt;/a&gt; plugins.&lt;/p&gt;
&lt;h2&gt;flush_buffer_when_full Configuration Option&lt;/h2&gt;
&lt;p&gt;In order to better support message broker consumers, Telegraf now has the option to flush it’s internal buffer whenever it fills up, regardless of the specified flushing interval. This will allow users to guarantee that metrics will not be overwritten no matter how high the load gets.&lt;/p&gt;

&lt;p&gt;This option is available under the &lt;code&gt;[agent]&lt;/code&gt; configuration section.&lt;/p&gt;

&lt;h2&gt;New Plugins&lt;/h2&gt;

&lt;p&gt;The following is a list of new plugins added in 0.10.3:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;dovecot (input)&lt;/li&gt;
 	&lt;li&gt;raindrops (input)&lt;/li&gt;
 	&lt;li&gt;mqtt_consumer (input)&lt;/li&gt;
 	&lt;li&gt;nats_consumer (input)&lt;/li&gt;
 	&lt;li&gt;couchdb (input)&lt;/li&gt;
 	&lt;li&gt;mesos (input)&lt;/li&gt;
 	&lt;li&gt;file (output)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;View the &lt;a href="https://github.com/influxdata/telegraf/blob/master/CHANGELOG.md"&gt;changelog&lt;/a&gt; for a full list of changes.&lt;/p&gt;
</description>
      <pubDate>Fri, 19 Feb 2016 07:00:30 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-10-3-with-support-for-more-message-brokers-and-arbitrary-data-formats/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-10-3-with-support-for-more-message-brokers-and-arbitrary-data-formats/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.10.0</title>
      <description>&lt;p&gt;Today we are officially releasing Telegraf 0.10.0. Going forward, all InfluxData products under the same major release will be guaranteed compatible with one another, and thus Telegraf is jumping forward to 0.10.x to coincide with the upcoming 0.10.0 InfluxDB release (late-January).&lt;/p&gt;

&lt;p&gt;Release 0.10.0 brings a raft of new changes and improvements, many of which are breaking changes. There are a few reasons why we are making a breaking release, which I’ll go over below. See the end of this blog post for a guide on migrating from Telegraf 0.2.x to 0.10.0.&lt;/p&gt;

&lt;h2&gt;Fields instead of measurements&lt;/h2&gt;

&lt;p&gt;Telegraf previously put almost every metric it collected into a single measurement with a single field called &lt;code&gt;value&lt;/code&gt;, ie, &lt;code&gt;cpu_usage_idle value=100&lt;/code&gt;, &lt;code&gt;cpu_usage_guest value=0&lt;/code&gt;. Going forward, Telegraf will (for the most part) put all plugins into a single measurement with a field for each metric, ie, &lt;code&gt;cpu usage_guest=0,usage_idle=100&lt;/code&gt;. This has many benefits, one of which is that users can easily make math queries on relationships between different metrics within a plugin. For example, with the memory plugin, you can calculate the percent of total memory buffered like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SELECT buffered/total FROM mem&lt;/code&gt;
Another considerable benefit is that this will reduce the amount of network traffic that each Telegraf instance generates. The reason for this is primarily that timestamps and tags are now only sent once for each plugin, rather than once for each measurement. The reduction that you see will depend on which plugins you use, but most users can expect &lt;em&gt;at least&lt;/em&gt; a 50% reduction in network traffic.&lt;/p&gt;

&lt;h2&gt;Renaming plugins -&amp;gt; inputs&lt;/h2&gt;

&lt;p&gt;Telegraf began as an agent for collecting metrics from plugins and writing them into InfluxDB. Naturally, the input plugins were simply called “plugins”. Telegraf, however, has outgrown this name, since we now have “output plugins” in addition to “input plugins”. There are also plans for the future to have things like “aggregator plugins” and “filter plugins”. For this reason, we are renaming ”plugins” to “inputs”, and restructuring where they appear in the repo. Inputs and Outputs are now both under the plugins/ directory in the root repo. This also means that the config for each input has changed from &lt;code&gt;[[plugins.cpu]]&lt;/code&gt; to &lt;code&gt;[[inputs.cpu]]&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;Input Configuration&lt;/h2&gt;

&lt;p&gt;For 0.10.0 there are a few new input configuration options:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;name_override: Override the base name of the measurement. (Default is the name of the plugin).&lt;/li&gt;
 	&lt;li&gt;name_prefix: Specifies a prefix to attach to the measurement name.&lt;/li&gt;
 	&lt;li&gt;name_suffix: Specifies a suffix to attach to the measurement name.&lt;/li&gt;
 	&lt;li&gt;tags: A map of tags to apply to a specific input's measurements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Examples&lt;/h2&gt;
&lt;p&gt;This plugin will emit measurements with the name &lt;code&gt;cpu_total&lt;/code&gt; instead of only &lt;code&gt;cpu&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;[[inputs.cpu]]
  name_suffix = "_total"
  percpu = false
  totalcpu = true&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will emit measurements with the name &lt;code&gt;foobar&lt;/code&gt; instead of &lt;code&gt;cpu&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;[[inputs.cpu]]
  name_override = "foobar"
  percpu = false
  totalcpu = true&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This plugin will emit measurements with two additional tags: &lt;code&gt;tag1=foo&lt;/code&gt; and
&lt;code&gt;tag2=bar&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;[[inputs.cpu]]
  percpu = false
  totalcpu = true
  [inputs.cpu.tags]
    tag1 = "foo"
    tag2 = "bar"&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Plugin Parallelization&lt;/h2&gt;
&lt;p&gt;Over the past 9 months, Telegraf has added a lot of new functionality, and some of that didn’t really fit into the way that Telegraf was structured and organized. As time progressed, it became clear that we would need to create an avenue for multiple instances of the same plugin to run.&lt;/p&gt;

&lt;p&gt;Many contributors solved this problem by setting up internal configuration lists and threads. Take the exec plugin, which was originally configured like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# telegraf.conf

[inputs.exec]
  # specify commands via an array of tables
  [[inputs.exec.commands]]
    # the command to run
    command = "/usr/bin/mycollector --foo=bar"
    # name of the command (used as a prefix for measurements)
    name = "mycollector"
    # Only run this command if it has been at least this many
    # seconds since it last ran
    interval = 10

  [[inputs.exec.commands]]
    command = "/usr/bin/othercollector"
    name = "othercollector"
    interval = 15&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a good solution, and allows users of the &lt;code&gt;exec&lt;/code&gt; plugin to specify multiple binaries to be executed. But there are some problems here. Since each &lt;code&gt;exec.command&lt;/code&gt; is defined within the plugin, it does not have access to Telegraf’s general plugin configuration options. The &lt;code&gt;interval&lt;/code&gt; parameter that you see above is a custom implementation specific to the &lt;code&gt;exec&lt;/code&gt; plugin. Another problem is that it requires the plugin writer to internally handle threading and errors, when that
functionality is already builtin to the Telegraf agent.&lt;/p&gt;

&lt;p&gt;So going forward, this internal threading has largely been removed from inputs that were using it. Instead, users can now define inputs as lists, allowing the above configuration to change to this:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# telegraf.conf

[[inputs.exec]]
  # the command to run
  command = "/usr/bin/mycollector --foo=bar"
  # name_prefix is a new parameter in 0.10.0 available to all inputs
  name_prefix = "mycollector_"
  # This is the general interval parameter available to all inputs.
  interval = "10s"

[[inputs.exec]]
  command = "/usr/bin/othercollector"
  name_prefix = "othercollector_"
  interval = "15s"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This also means, unfortunately, that users of these inputs will need to rewrite their configuration to work with Telegraf 0.10.0. Use &lt;code&gt;telegraf -sample-config&lt;/code&gt; to see examples of the new config for your particular input.&lt;/p&gt;

&lt;p&gt;The following inputs are affected by this change:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;exec&lt;/li&gt;
 	&lt;li&gt;httpjson&lt;/li&gt;
 	&lt;li&gt;jolokia&lt;/li&gt;
 	&lt;li&gt;postgresql&lt;/li&gt;
 	&lt;li&gt;procstat&lt;/li&gt;
 	&lt;li&gt;rabbitmq&lt;/li&gt;
 	&lt;li&gt;twemproxy&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Linux package moving out of `/opt`&lt;/h2&gt;
&lt;p&gt;By popular demand, we are moving away from using the &lt;code&gt;opt&lt;/code&gt; directory for
Telegraf (as we’ve already done with InfluxDB and Kapacitor).&lt;/p&gt;

&lt;p&gt;Below is a summary of the linux package changes:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Binaries are now located at `/usr/bin/`&lt;/li&gt;
 	&lt;li&gt;Configuration is now located at `/etc/telegraf`&lt;/li&gt;
 	&lt;li&gt;A few fixes and updates to the `init.sh` script&lt;/li&gt;
 	&lt;li&gt;Minor update to the `telegraf.service` unit file to correct usage of variable&lt;/li&gt;
 	&lt;li&gt;Added a `post-install.sh` and `pre-install.sh` to handle upgrades and other housekeeping&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Migrating from Telegraf 0.2.x&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Config File&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are currently using Telegraf 0.2.x, you should start by installing version 0.10.0 and generating a new config file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ telegraf -sample-config &amp;amp;gt; /tmp/test.0.10.0.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Open the file in the editor of your choice and find the plugins that you wish to configure. Inspect the differences between the old and new configuration and merge the new config with yours. Make sure you rename &lt;code&gt;plugin&lt;/code&gt; -&amp;gt; &lt;code&gt;input&lt;/code&gt;. Most plugins will have identical configuration options, but some are substantially different. The following plugins have substantially different configurations.&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;exec&lt;/li&gt;
 	&lt;li&gt;httpjson&lt;/li&gt;
 	&lt;li&gt;jolokia&lt;/li&gt;
 	&lt;li&gt;postgresql&lt;/li&gt;
 	&lt;li&gt;procstat&lt;/li&gt;
 	&lt;li&gt;rabbitmq&lt;/li&gt;
 	&lt;li&gt;twemproxy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you need additional help configuring these, please refer to the Plugin Parallelization section above, and see the &lt;a href="https://github.com/influxdata/telegraf/blob/master/CHANGELOG.md"&gt;changelog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fields Instead of Measurements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you start using Telegraf 0.10.0, you will notice that your previous measurements will no longer be getting new metrics. This is because almost all plugins have changed to report metrics as multiple fields on a single measurement.&lt;/p&gt;

&lt;p&gt;To get an idea of the change, try running telegraf in test mode in both versions:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Telegraf 0.2.x
$ telegraf -config /etc/opt/telegraf/telegraf.conf -test&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Telegraf 0.10.0
$ telegraf -config /etc/telegraf/telegraf.conf -test&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And compare the output, you should see that there are less measurements but more fields. The &lt;code&gt;mem&lt;/code&gt; plugin, for example, used to report all metrics as their own measurements (ie, &lt;code&gt;mem_free&lt;/code&gt;, &lt;code&gt;mem_used&lt;/code&gt;, &lt;code&gt;mem_buffered&lt;/code&gt;). So querying your buffered memory from influxdb would look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Telegraf 0.2.x
SELECT value FROM mem_buffered&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As of Telegraf 0.10.0, the plugin will report a single measurement called &lt;code&gt;mem&lt;/code&gt;, with fields for each metric. So querying your buffered memory from influxdb now looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Telegraf 0.10.0
SELECT buffered FROM mem&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You will need to change these queries in your InfluxDB instrumentation and clients. For more information on the differences between fields, measurements, and tags, see the &lt;a href="https://docs.influxdata.com/influxdb/v0.9/concepts/"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Additional Changes&lt;/h2&gt;

&lt;p&gt;View the &lt;a href="https://github.com/influxdata/telegraf/blob/master/CHANGELOG.md"&gt;changelog&lt;/a&gt; for a rundown of all changes made.&lt;/p&gt;
</description>
      <pubDate>Tue, 12 Jan 2016 21:20:56 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-10-0/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-10-0/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.2.4 with MailChimp API Support</title>
      <description>&lt;p&gt;&lt;a href="http://mailchimp.com/"&gt;MailChimp&lt;/a&gt; is an email-marketing platform that provides a robust JSON API of metrics on email campaigns. Since Telegraf can make HTTP API calls and parse JSON, it was a natural step to allow Telegraf to parse data from services that provide metrics via an API key.&lt;/p&gt;

&lt;p&gt;The MailChimp API provides many metrics such as &lt;code&gt;emails_sent&lt;/code&gt;, &lt;code&gt;clicks_total&lt;/code&gt;, and &lt;code&gt;open_rate&lt;/code&gt; for all email campaigns via their &lt;code&gt;/reports&lt;/code&gt; API. More details on the available MailChimp metrics are documented on the &lt;a href="http://developer.mailchimp.com/documentation/mailchimp/reference/reports/#read-get_reports"&gt;MailChimp website.&lt;/a&gt;&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;With &lt;a href="https://github.com/influxdb/telegraf"&gt;Telegraf 0.2.4&lt;/a&gt;, you can now setup the &lt;code&gt;mailchimp&lt;/code&gt; plugin to gather metrics and forward those onto InfluxDB or any other configured output sink. Below is a full configuration example that will collect MailChimp metrics and send them to a local InfluxDB instance.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;# Configuration for telegraf agent
[agent]
  # Default data collection interval for all plugins
  interval = "30s"

###############################################################################
#                                  OUTPUTS                                    #
###############################################################################

[outputs]

# Configuration for influxdb server to send metrics to
[[outputs.influxdb]]
  # The full HTTP or UDP endpoint URL for your InfluxDB instance.
  urls = ["http://localhost:8086"] # required
  # The target database for metrics (telegraf will create it if not exists)
  database = "telegraf" # required
  # Precision of writes, valid values are n, u, ms, s, m, and h
  # note: using second precision greatly helps InfluxDB compression
  precision = "s"

###############################################################################
#                                  PLUGINS                                    #
###############################################################################

[plugins]

# Gathers metrics from the /3.0/reports MailChimp API
[[plugins.mailchimp]]
  # MailChimp API key
  # get from https://admin.mailchimp.com/account/api/
  api_key = "" # INSERT API KEY HERE
  # Reports for campaigns sent more than days_old ago will not be collected.
  # 0 means collect all.
  days_old = 14&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The configuration above is using the &lt;code&gt;days_old = 14&lt;/code&gt; argument to tell Telegraf to only collect metrics on email campaigns that were sent in the past 14 days. If you set this to 0, it will collect metrics for all email campaigns.&lt;/p&gt;

&lt;p&gt;Paste the above into a file of your choice (I’ll use &lt;code&gt;~/telegraf.conf&lt;/code&gt;) and insert your &lt;a href="https://admin.mailchimp.com/account/api/"&gt;MailChimp API Key&lt;/a&gt; and run a test output, which will output your MailChimp metrics converted into the &lt;a href="https://www.influxdata.com/influxcloud-trial/"&gt;InfluxDB line protocol format.&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;$ telegraf -config ~/telegraf.conf -test
* Plugin: mailchimp, Collection 1
&amp;gt; mailchimp_emails_sent,campaign_title=MyCampaign,id=1aa2bb34c5 value=7640i 1449103122757261374
&amp;gt; mailchimp_abuse_reports,campaign_title=MyCampaign,id=1aa2bb34c5 value=0i 1449103122757261374
&amp;gt; mailchimp_unsubscribed,campaign_title=MyCampaign,id=1aa2bb34c5 value=38i 1449103122757261374
&amp;gt; mailchimp_hard_bounces,campaign_title=MyCampaign,id=1aa2bb34c5 value=38i 1449103122757261374
&amp;gt; mailchimp_soft_bounces,campaign_title=MyCampaign,id=1aa2bb34c5 value=71i 1449103122757261374
&amp;gt; mailchimp_syntax_errors,campaign_title=MyCampaign,id=1aa2bb34c5 value=0i 1449103122757261374
[...]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can see from the output that the plugin will collect available metrics for each campaign, as well as collecting the industry and list stats metrics.&lt;/p&gt;

&lt;p&gt;Telegraf can now be run and start outputting it’s metrics to InfluxDB: &lt;code&gt;$ telegraf -config ~/telegraf.conf&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;Future Work&lt;/h2&gt;

&lt;p&gt;MailChimp is just the first of many 3rd-party APIs that we plan on supporting in Telegraf. Users are encouraged to try their hand at &lt;a href="https://github.com/influxdb/telegraf/blob/master/CONTRIBUTING.md#plugins"&gt;contributing a plugin&lt;/a&gt;, and we plan to support &lt;a href="https://github.com/influxdb/telegraf/issues/346"&gt;AWS Metrics&lt;/a&gt; soon. You can view the source for the MailChimp plugin &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/mailchimp"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Hosted InfluxDB + Grafana&lt;/h2&gt;

&lt;p style="text-align: left;"&gt;Get configured and into production in under a minute. Try it free for 14 days. &lt;a href="https://www.influxdata.com/get-influxdb/"&gt;Click to get started!&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img class="aligncenter size-full wp-image-8494" src="/images/legacy-uploads/grafana_preview.png" alt="grafana" width="807" height="260" /&gt;&lt;/p&gt;
</description>
      <pubDate>Mon, 07 Dec 2015 12:00:03 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-2-4-mailchimp-api/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-2-4-mailchimp-api/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.2.1 with Support for Writing UDP to InfluxDB and Multiple Outputs of the Same Type</title>
      <description>&lt;h2 style="text-align: left;"&gt;Release Notes&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;UDP InfluxDB output now supported&lt;/li&gt;
 	&lt;li&gt;Telegraf will now compile on FreeBSD&lt;/li&gt;
 	&lt;li&gt;Users can now specify outputs as lists, allowing multiple outputs of the same type.&lt;/li&gt;
 	&lt;li&gt;Telegraf will no longer use docker-compose for "long" unit test, it has been changed to run docker commands in the Makefile. See &lt;code&gt;make docker-run&lt;/code&gt; and &lt;code&gt;make docker-kill&lt;/code&gt;. &lt;code&gt;make test&lt;/code&gt; will still run all unit tests with docker.&lt;/li&gt;
 	&lt;li&gt;Long unit tests are now run in CircleCI, with docker &amp;amp; race detector&lt;/li&gt;
 	&lt;li&gt;Redis plugin tag has changed from &lt;code&gt;host&lt;/code&gt; to &lt;code&gt;server&lt;/code&gt;&lt;/li&gt;
 	&lt;li&gt;HAProxy plugin tag has changed from &lt;code&gt;host&lt;/code&gt; to &lt;code&gt;server&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 style="text-align: left;"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/325"&gt;#325&lt;/a&gt;: NSQ output. Thanks @&lt;a href="https://github.com/jrxFive"&gt;jrxFive&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/318"&gt;#318&lt;/a&gt;: Prometheus output. Thanks @&lt;a href="https://github.com/oldmantaiter"&gt;oldmantaiter&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/338"&gt;#338&lt;/a&gt;: Restart Telegraf on package upgrade. Thanks @&lt;a href="https://github.com/linsomniac"&gt;linsomniac&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/337"&gt;#337&lt;/a&gt;: Jolokia plugin, thanks @&lt;a href="https://github.com/saiello"&gt;saiello&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/350"&gt;#350&lt;/a&gt;: Amon output.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/365"&gt;#365&lt;/a&gt;: Twemproxy plugin by @&lt;a href="https://github.com/codeb2cc"&gt;codeb2cc&lt;/a&gt;&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/issues/317"&gt;#317&lt;/a&gt;: ZFS plugin, thanks @&lt;a href="https://github.com/cornerot"&gt;cornerot&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/364"&gt;#364&lt;/a&gt;: Support InfluxDB UDP output.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/370"&gt;#370&lt;/a&gt;: Support specifying multiple outputs, as lists.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/372"&gt;#372&lt;/a&gt;: Remove gosigar and update go-dockerclient for FreeBSD support. Thanks @&lt;a href="https://github.com/MerlinDMC"&gt;MerlinDMC&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 style="text-align: left;"&gt;Bugfixes&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/331"&gt;#331&lt;/a&gt;: Dont overwrite host tag in redis plugin.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/336"&gt;#336&lt;/a&gt;: Mongodb plugin should take 2 measurements.&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/issues/317"&gt;#351&lt;/a&gt;: Fix continual "CREATE DATABASE" in writes&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/360"&gt;#360&lt;/a&gt;: Apply prefix before ShouldPass check. Thanks @sotfo!&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Tue, 17 Nov 2015 08:00:58 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-2-1-with-support-for-writing-udp-to-influxdb-and-multiple-outputs-of-the-same-type/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-2-1-with-support-for-writing-udp-to-influxdb-and-multiple-outputs-of-the-same-type/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.2.0 with StatsD, MQTT, and Improved Scalability</title>
      <description>&lt;p&gt;We are excited to announce that &lt;a href="https://github.com/influxdb/telegraf"&gt;Telegraf 0.2.0&lt;/a&gt;, InfluxDB’s native, open source data collecting agent, is now available!&lt;/p&gt;
&lt;h2 style="text-align: left;"&gt;What's New&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/205"&gt;PR #205&lt;/a&gt;: Include per-db redis keyspace info&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/241"&gt;PR #241&lt;/a&gt;: MQTT Output. thanks &lt;a href="https://github.com/shirou"&gt;@shirou&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/240"&gt;PR #240&lt;/a&gt;: procstat plugin, thanks &lt;a href="https://github.com/ranjib"&gt;@ranjib&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/244"&gt;PR #244&lt;/a&gt;: netstat plugin, thanks &lt;a href="https://github.com/shirou"&gt;@shirou&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/262"&gt;PR #262&lt;/a&gt;: zookeeper plugin, thanks &lt;a href="https://github.com/jrxFive"&gt;@jrxFive&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/237"&gt;PR #237&lt;/a&gt;: statsd service plugin&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/273"&gt;PR #273&lt;/a&gt;: puppet agent plugin, thanks &lt;a href="https://github.com/jrxFive"&gt;@jrxFive&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/286"&gt;PR #286&lt;/a&gt;: bcache plugin, thanks &lt;a href="https://github.com/cornerot"&gt;@cornerot&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/287"&gt;PR #287&lt;/a&gt;: Batch AMQP output, thanks &lt;a href="https://github.com/ekini"&gt;@ekini&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/301"&gt;PR #301&lt;/a&gt;: Collect on even intervals&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/300"&gt;PR #300&lt;/a&gt;: aerospike plugin. thanks &lt;a href="https://github.com/oldmantaiter"&gt;@oldmantaiter&lt;/a&gt;!&lt;/li&gt;
 	&lt;li&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/322"&gt;PR #322&lt;/a&gt;: Librato output. thanks &lt;a href="https://github.com/jipperinbham"&gt;@jipperinbham&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;!--more--&gt;
&lt;h2 style="text-align: left;"&gt;Release Notes&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;The &lt;code&gt;-test&lt;/code&gt; flag will now only output 2 collections for plugins that need it.&lt;/li&gt;
 	&lt;li&gt;There is a new agent configuration option: &lt;code&gt;flush_interval&lt;/code&gt;. This option tells Telegraf how often to flush data to InfluxDB and other output sinks. For example, users can set &lt;code&gt;interval = "2s"&lt;/code&gt;and &lt;code&gt;flush_interval = "60s"&lt;/code&gt; for Telegraf to collect data every 2 seconds and flush every 60 seconds.&lt;/li&gt;
 	&lt;li&gt;&lt;code&gt;precision&lt;/code&gt; and &lt;code&gt;utc&lt;/code&gt; are no longer valid agent config values. &lt;code&gt;precision&lt;/code&gt; has moved to the InfluxDB output config, where it will continue to default to &lt;code&gt;s&lt;/code&gt;&lt;/li&gt;
 	&lt;li&gt;Debug and test output will now print the raw line-protocol string.&lt;/li&gt;
 	&lt;li&gt;Telegraf will now, by default, round the collection interval to the nearest even interval. This means that &lt;code&gt;interval="10s"&lt;/code&gt; will collect every :00, :10, etc.&lt;/li&gt;
 	&lt;li&gt;To address scaling concerns Telegraf now adds a small amount of "jitter" to the flush period. This ensures that if a large number of Telegraf instances are deployed, they do not all flush at the same instant. The amount of jitter can be controlled via the configuration file.&lt;/li&gt;
 	&lt;li&gt;Telegraf will now retry metric flushes twice.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 style="text-align: left;"&gt;Get your InfluxDB hoodie while they last!&lt;/h2&gt;
&lt;p&gt;Does your company have a cool app or product that uses InfluxDB in production? We’d love to feature it on influxdb.com and give you a shout out on social media. As a “thank you” gift, we’ll send you an InfluxDB hoodie and a pack of stickers. Just &lt;a href="https://influxdb.com/testimonials/"&gt;fill out this simple form&lt;/a&gt; and we’ll let you know when your entry is live and the hoodie is in the mail. Drop us a line at &lt;a href="mailto:contact@influxdb.com"&gt;contact@influxdb.com&lt;/a&gt; if you have any questions. Thanks for the support!&lt;/p&gt;
</description>
      <pubDate>Wed, 28 Oct 2015 08:00:03 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-2-0-with-statsd-mqtt-and-improved-scalability/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-2-0-with-statsd-mqtt-and-improved-scalability/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
    <item>
      <title>Announcing Telegraf 0.1.9 with Clustering, OpenTSDB and AMQP support</title>
      <description>&lt;p&gt;We are excited to announce that Telegraf 0.1.9, InfluxDB’s native, open source data collecting agent, is now available!&lt;/p&gt;

&lt;h2 style="text-align: left;"&gt;What's new&lt;/h2&gt;

&lt;h3 id="support-for-influxdb-clusters"&gt;Support for InfluxDB Clusters&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/issues/143"&gt;PR #143&lt;/a&gt;: Telegraf can now write data to InfluxDB clusters by listing out your instances in the URL parameter of the Telegraf config file. Telegraf will randomly select servers until it successfully makes a write.&lt;!--more--&gt;&lt;/p&gt;
&lt;h3 id="support-for-filtering-telegraf-outputs-on-the-cli"&gt;Support for filtering telegraf outputs on the CLI&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/217"&gt;PR #217&lt;/a&gt;: Telegraf will now allow filtering of output sinks on the command-line using the &lt;code&gt;-outputfilter&lt;/code&gt;flag, much like how the &lt;code&gt;-filter&lt;/code&gt; flag works for plugins.&lt;/p&gt;
&lt;h3 id="support-for-filtering-on-config-file-creation"&gt;Support for filtering on config-file creation&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/217"&gt;PR #217&lt;/a&gt;: Telegraf now supports filtering to -sample-config command. You can now run &lt;code&gt;telegraf -sample-config -filter cpu -outputfilter influxdb&lt;/code&gt; to get a config file with only the cpu plugin defined, and the influxdb output defined.&lt;/p&gt;
&lt;h3 id="makefile-gobin-support"&gt;Makefile GOBIN support&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/181"&gt;PR #181&lt;/a&gt;: &lt;code&gt;make&lt;/code&gt; will now work despite a custom bin directory, courtesy of @Vye.&lt;/p&gt;
&lt;h3 id="amqp-output-plugin"&gt;AMQP output plugin&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/200"&gt;PR #200&lt;/a&gt;: Telegraf now supports AMQP output, courtesy of @ekini.&lt;/p&gt;
&lt;h3 id="opentsdb-output-plugin"&gt;OpenTSDB output plugin&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/182"&gt;PR #182&lt;/a&gt;: Telegraf now supports output to OpenTSDB using telnet mode, courtesy of @rplessl.&lt;/p&gt;
&lt;h3 id="retry-failed-server-connections"&gt;Retry failed server connections&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/187"&gt;PR #187&lt;/a&gt;: Telegraf can now be configured to retry the connection to InfluxDB if the initial connection fails.&lt;/p&gt;
&lt;h3 id="add-a-port-tag-to-the-apache-plugin"&gt;Add a port tag to the Apache plugin&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/influxdb/telegraf/pull/220"&gt;PR #220&lt;/a&gt;: You can now select your Apache port number depending on the URL scheme, courtesy of @neezgee.&lt;/p&gt;
&lt;h2 style="text-align: left;"&gt;Release notes&lt;/h2&gt;
&lt;h3 id="config-change"&gt;Config change&lt;/h3&gt;
&lt;p&gt;InfluxDB output config change: &lt;code&gt;url&lt;/code&gt; is now &lt;code&gt;urls&lt;/code&gt;, and is a list. Config files will still be backwards compatible if only &lt;code&gt;url&lt;/code&gt; is specified.&lt;/p&gt;
&lt;h3 id="test-flag-output"&gt;&lt;code&gt;-test&lt;/code&gt; flag output&lt;/h3&gt;
&lt;p&gt;The -test flag will now output two metric collections&lt;/p&gt;
&lt;h3 id="breaking-change-cpu-collection-plugin"&gt;Breaking change: CPU collection plugin&lt;/h3&gt;
&lt;p&gt;The CPU collection plugin has been refactored to fix some bugs and outdated dependency issues. At the same time, I also decided to fix a naming consistency issue, so &lt;code&gt;cpu_percentageIdle&lt;/code&gt; will become&lt;code&gt;cpu_usage_idle&lt;/code&gt;. Also, all CPU time measurements now have it indicated in their name, so &lt;code&gt;cpu_idle&lt;/code&gt; will become &lt;code&gt;cpu_time_idle&lt;/code&gt;. Additionally, &lt;code&gt;cpu_time&lt;/code&gt; measurements are going to be dropped in the default config.&lt;/p&gt;
&lt;h3 id="breaking-change-memory-plugin"&gt;Breaking change: Memory plugin&lt;/h3&gt;
&lt;p&gt;The memory plugin has been refactored and some measurements have been renamed for consistency. Some measurements have also been removed from being outputted. They are still being collected by&lt;code&gt;gopsutil&lt;/code&gt;, and could easily be re-added in a “verbose” mode if there is demand for it.&lt;/p&gt;

&lt;p&gt;…plus 11 bug fixes! Get the full story by checking out the official &lt;a href="https://github.com/influxdb/telegraf/blob/master/CHANGELOG.md"&gt;0.1.9 changelog&lt;/a&gt; on GitHub.&lt;/p&gt;

&lt;h2&gt;Get your InfluxDB hoodie while they last!&lt;/h2&gt;

&lt;p&gt;Does your company have a cool app or product that uses InfluxDB in production? We’d love to feature it on influxdb.com and give you a shout out on social media. As a “thank you” gift, we’ll send you an InfluxDB hoodie and a pack of stickers. Just &lt;a href="/testimonials/"&gt;fill out this simple form&lt;/a&gt; and we’ll let you know when your entry is live and the hoodie is in the mail. Drop us a line at &lt;a href="mailto:contact@influxdb.com"&gt;contact@influxdb.com&lt;/a&gt; if you have any questions. Thanks for the support!&lt;/p&gt;
</description>
      <pubDate>Wed, 23 Sep 2015 08:00:32 -0700</pubDate>
      <link>https://www.influxdata.com/blog/announcing-telegraf-0-1-9-with-clustering-opentsdb-and-amqp-support/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/announcing-telegraf-0-1-9-with-clustering-opentsdb-and-amqp-support/</guid>
      <category>Product</category>
      <author>Cameron Sparr (InfluxData)</author>
    </item>
  </channel>
</rss>
