From b2453e3ec319314d819a414b28c7ac124f4f6e1b Mon Sep 17 00:00:00 2001
From: "David G. Simmons" <davidgs@users.noreply.github.com>
Date: Fri, 29 Sep 2017 12:57:13 -0400
Subject: [PATCH] Revert "New Particle.io Plugin for Telegraf"

This reverts commit c3b11f9cfbfb6f2141cff9c6a4bae9fe50eab43d.
Accidentally pushed to master, instead of my fork. Backing it out.
---
 plugins/inputs/webhooks/particle/README.md    |   27 -
 .../webhooks/particle/particle_webhooks.go    |   46 -
 .../particle/particle_webhooks_events.go      |   21 -
 .../particle_webhooks_events_json_test.go     |   38 -
 .../particle/particle_webhooks_test.go        |   48 -
 plugins/inputs/webhooks/webhooks.go           |    5 -
 telegraf.config                               | 2352 -----------------
 7 files changed, 2537 deletions(-)
 delete mode 100644 plugins/inputs/webhooks/particle/README.md
 delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks.go
 delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks_events.go
 delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go
 delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks_test.go
 delete mode 100644 telegraf.config

diff --git a/plugins/inputs/webhooks/particle/README.md b/plugins/inputs/webhooks/particle/README.md
deleted file mode 100644
index 43b7e696..00000000
--- a/plugins/inputs/webhooks/particle/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# particle webhooks
-
-You should configure your Rollbar's Webhooks to point at the `webhooks` service. To do this go to `particle.com/` and click `Settings > Notifications > Webhook`. In the resulting page set `URL` to `http://<my_ip>:1619/particle`, and click on `Enable Webhook Integration`.
-
-## Events
-
-Your Particle device should publish an event that contains a JSON in the form of:
-```
-String data = String::format("{ \"tags\" : {
-	    \"tag_name\": \"tag_value\", 
-	    \"other_tag\": \"other_value\"
-    }, 
-	\"values\": {
-	    \"value_name\": %f, 
-		\"other_value\": %f, 
-    }
-    }",  value_value, other_value
-	);
-    Particle.publish("event_name", data, PRIVATE);
-```
-Escaping the "" is required in the source file.
-The number of tag values and field values is not restrictied so you can send as many values per webhook call as you'd like.
-
-You will need to enable JSON messages in the Webhooks setup of Particle.io
-
-See [webhook doc](https://docs.particle.io/reference/webhooks/)
-
diff --git a/plugins/inputs/webhooks/particle/particle_webhooks.go b/plugins/inputs/webhooks/particle/particle_webhooks.go
deleted file mode 100644
index b4a2470a..00000000
--- a/plugins/inputs/webhooks/particle/particle_webhooks.go
+++ /dev/null
@@ -1,46 +0,0 @@
-package particle
-
-import (
-	"encoding/json"
-	"github.com/gorilla/mux"
-	"github.com/influxdata/telegraf"
-	"io/ioutil"
-	"log"
-	"net/http"
-)
-
-type ParticleWebhook struct {
-	Path string
-	acc  telegraf.Accumulator
-}
-
-func (rb *ParticleWebhook) Register(router *mux.Router, acc telegraf.Accumulator) {
-	router.HandleFunc(rb.Path, rb.eventHandler).Methods("POST")
-	log.Printf("I! Started the webhooks_particle on %s\n", rb.Path)
-	rb.acc = acc
-}
-
-func (rb *ParticleWebhook) eventHandler(w http.ResponseWriter, r *http.Request) {
-	defer r.Body.Close()
-	data, err := ioutil.ReadAll(r.Body)
-	if err != nil {
-		w.WriteHeader(http.StatusBadRequest)
-		return
-	}
-	dummy := &DummyData{}
-	if err := json.Unmarshal(data, dummy); err != nil {
-		w.WriteHeader(http.StatusBadRequest)
-		return
-	}
-	pd := &ParticleData{}
-	if err := json.Unmarshal([]byte(dummy.Data), pd); err != nil {
-		w.WriteHeader(http.StatusBadRequest)
-		return
-	}
-	pTime, err := dummy.Time()
-	if err != nil {
-		log.Printf("Time Conversion Error")
-	}
-	rb.acc.AddFields("particle_webhooks", pd.Fields, pd.Tags, pTime)
-	w.WriteHeader(http.StatusOK)
-}
diff --git a/plugins/inputs/webhooks/particle/particle_webhooks_events.go b/plugins/inputs/webhooks/particle/particle_webhooks_events.go
deleted file mode 100644
index 93055285..00000000
--- a/plugins/inputs/webhooks/particle/particle_webhooks_events.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package particle
-
-import (
-	"time"
-)
-
-type DummyData struct {
-	Event       string `json:"event"`
-	Data        string `json:"data"`
-	Ttl         int    `json:"ttl"`
-	PublishedAt string `json:"published_at"`
-}
-type ParticleData struct {
-	Event  string                 `json:"event"`
-	Tags   map[string]string      `json:"tags"`
-	Fields map[string]interface{} `json:"values"`
-}
-
-func (d *DummyData) Time() (time.Time, error) {
-	return time.Parse("2006-01-02T15:04:05Z", d.PublishedAt)
-}
diff --git a/plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go b/plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go
deleted file mode 100644
index fbb84ac5..00000000
--- a/plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package particle
-
-func NewItemJSON() string {
-	return `
-	{ 
-	  "event": "temperature",
-	  "data": "{ 
-		  "tags": {
-			  "id": "230035001147343438323536", 
-			  "location\": \"TravelingWilbury"
-		  }, 
-		  "values": {
-			  "temp_c": 26.680000, 
-			  "temp_f": 80.024001, 
-			  "humidity": 44.937500, 
-			  "pressure": 998.998901, 
-			  "altitude": 119.331436, 
-			  "broadband": 1266, 
-			  "infrared": 528, 
-			  "lux": 0
-		  }
-	  }",
-	  "ttl": 60,
-	  "published_at": "2017-09-28T21:54:10.897Z",
-	  "coreid": "123456789938323536",
-	  "userid": "1234ee123ac8e5ec1231a123d",
-	  "version": 10,
-	  "public": false,
-	  "productID": 1234,
-	  "name": "sensor"
-  }`
-}
-func UnknowJSON() string {
-	return `
-    {
-      "event": "roger"
-    }`
-}
diff --git a/plugins/inputs/webhooks/particle/particle_webhooks_test.go b/plugins/inputs/webhooks/particle/particle_webhooks_test.go
deleted file mode 100644
index 9b016aaf..00000000
--- a/plugins/inputs/webhooks/particle/particle_webhooks_test.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package particle
-
-import (
-	"github.com/influxdata/telegraf/testutil"
-	"log"
-	"net/http"
-	"net/http/httptest"
-	"strings"
-	"testing"
-)
-
-func postWebhooks(rb *ParticleWebhook, eventBody string) *httptest.ResponseRecorder {
-	req, _ := http.NewRequest("POST", "/", strings.NewReader(eventBody))
-	log.Printf("eventBody: %s\n", eventBody)
-	w := httptest.NewRecorder()
-	w.Code = 500
-
-	rb.eventHandler(w, req)
-
-	return w
-}
-
-func TestNewItem(t *testing.T) {
-	var acc testutil.Accumulator
-	rb := &ParticleWebhook{Path: "/particle", acc: &acc}
-	resp := postWebhooks(rb, NewItemJSON())
-	if resp.Code != http.StatusOK {
-		t.Errorf("POST new_item returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusOK)
-	}
-
-	fields := map[string]interface{}{
-		"temp_c": 26.680000,
-	}
-
-	tags := map[string]string{
-		"id":       "230035001147343438323536",
-		"location": "TravelingWilbury",
-	}
-
-	acc.AssertContainsTaggedFields(t, "particle_webhooks", fields, tags)
-}
-func TestUnknowItem(t *testing.T) {
-	rb := &ParticleWebhook{Path: "/particle"}
-	resp := postWebhooks(rb, UnknowJSON())
-	if resp.Code != http.StatusOK {
-		t.Errorf("POST unknown returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusOK)
-	}
-}
diff --git a/plugins/inputs/webhooks/webhooks.go b/plugins/inputs/webhooks/webhooks.go
index 4420c5ab..698cde15 100644
--- a/plugins/inputs/webhooks/webhooks.go
+++ b/plugins/inputs/webhooks/webhooks.go
@@ -15,7 +15,6 @@ import (
 	"github.com/influxdata/telegraf/plugins/inputs/webhooks/github"
 	"github.com/influxdata/telegraf/plugins/inputs/webhooks/mandrill"
 	"github.com/influxdata/telegraf/plugins/inputs/webhooks/papertrail"
-	"github.com/influxdata/telegraf/plugins/inputs/webhooks/particle"
 	"github.com/influxdata/telegraf/plugins/inputs/webhooks/rollbar"
 )
 
@@ -35,7 +34,6 @@ type Webhooks struct {
 	Mandrill   *mandrill.MandrillWebhook
 	Rollbar    *rollbar.RollbarWebhook
 	Papertrail *papertrail.PapertrailWebhook
-	Particle   *particle.ParticleWebhook
 
 	srv *http.Server
 }
@@ -64,9 +62,6 @@ func (wb *Webhooks) SampleConfig() string {
 
   [inputs.webhooks.papertrail]
     path = "/papertrail"
-    
-  [inputs.webhooks.particle]
-      path = "/particle"
  `
 }
 
diff --git a/telegraf.config b/telegraf.config
deleted file mode 100644
index 669b6de2..00000000
--- a/telegraf.config
+++ /dev/null
@@ -1,2352 +0,0 @@
-# Telegraf Configuration
-#
-# Telegraf is entirely plugin driven. All metrics are gathered from the
-# declared inputs, and sent to the declared outputs.
-#
-# Plugins must be declared in here to be active.
-# To deactivate a plugin, comment out the name and any variables.
-#
-# Use 'telegraf -config telegraf.conf -test' to see what metrics a config
-# file would generate.
-#
-# Environment variables can be used anywhere in this config file, simply prepend
-# them with $. For strings the variable must be within quotes (ie, "$STR_VAR"),
-# for numbers and booleans they should be plain (ie, $INT_VAR, $BOOL_VAR)
-
-
-# Global tags can be specified here in key="value" format.
-[global_tags]
-  # dc = "us-east-1" # will tag all metrics with dc=us-east-1
-  # rack = "1a"
-  ## Environment variables can be used as tags, and throughout the config file
-  # user = "$USER"
-
-
-# Configuration for telegraf agent
-[agent]
-  ## Default data collection interval for all inputs
-  interval = "10s"
-  ## Rounds collection interval to 'interval'
-  ## ie, if interval="10s" then always collect on :00, :10, :20, etc.
-  round_interval = true
-
-  ## Telegraf will send metrics to outputs in batches of at most
-  ## metric_batch_size metrics.
-  ## This controls the size of writes that Telegraf sends to output plugins.
-  metric_batch_size = 1000
-
-  ## For failed writes, telegraf will cache metric_buffer_limit metrics for each
-  ## output, and will flush this buffer on a successful write. Oldest metrics
-  ## are dropped first when this buffer fills.
-  ## This buffer only fills when writes fail to output plugin(s).
-  metric_buffer_limit = 10000
-
-  ## Collection jitter is used to jitter the collection by a random amount.
-  ## Each plugin will sleep for a random time within jitter before collecting.
-  ## This can be used to avoid many plugins querying things like sysfs at the
-  ## same time, which can have a measurable effect on the system.
-  collection_jitter = "0s"
-
-  ## Default flushing interval for all outputs. You shouldn't set this below
-  ## interval. Maximum flush_interval will be flush_interval + flush_jitter
-  flush_interval = "10s"
-  ## Jitter the flush interval by a random amount. This is primarily to avoid
-  ## large write spikes for users running a large number of telegraf instances.
-  ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s
-  flush_jitter = "0s"
-
-  ## By default or when set to "0s", precision will be set to the same
-  ## timestamp order as the collection interval, with the maximum being 1s.
-  ##   ie, when interval = "10s", precision will be "1s"
-  ##       when interval = "250ms", precision will be "1ms"
-  ## Precision will NOT be used for service inputs. It is up to each individual
-  ## service input to set the timestamp at the appropriate precision.
-  ## Valid time units are "ns", "us" (or "µs"), "ms", "s".
-  precision = ""
-
-  ## Logging configuration:
-  ## Run telegraf with debug log messages.
-  debug = false
-  ## Run telegraf in quiet mode (error log messages only).
-  quiet = false
-  ## Specify the log file name. The empty string means to log to stderr.
-  logfile = ""
-
-  ## Override default hostname, if empty use os.Hostname()
-  hostname = ""
-  ## If set to true, do no set the "host" tag in the telegraf agent.
-  omit_hostname = false
-
-
-###############################################################################
-#                            OUTPUT PLUGINS                                   #
-###############################################################################
-
-# Configuration for influxdb server to send metrics to
-[[outputs.influxdb]]
-  ## The HTTP or UDP URL for your InfluxDB instance.  Each item should be
-  ## of the form:
-  ##   scheme "://" host [ ":" port]
-  ##
-  ## Multiple urls can be specified as part of the same cluster,
-  ## this means that only ONE of the urls will be written to each interval.
-  # urls = ["udp://localhost:8089"] # UDP endpoint example
-  urls = ["http://localhost:8086"] # required
-  ## The target database for metrics (telegraf will create it if not exists).
-  database = "telegraf" # required
-
-  ## Name of existing retention policy to write to.  Empty string writes to
-  ## the default retention policy.
-  retention_policy = ""
-  ## Write consistency (clusters only), can be: "any", "one", "quorum", "all"
-  write_consistency = "any"
-
-  ## Write timeout (for the InfluxDB client), formatted as a string.
-  ## If not provided, will default to 5s. 0s means no timeout (not recommended).
-  timeout = "5s"
-  # username = "telegraf"
-  # password = "metricsmetricsmetricsmetrics"
-  ## Set the user agent for HTTP POSTs (can be useful for log differentiation)
-  # user_agent = "telegraf"
-  ## Set UDP payload size, defaults to InfluxDB UDP Client default (512 bytes)
-  # udp_payload = 512
-
-  ## Optional SSL Config
-  # ssl_ca = "/etc/telegraf/ca.pem"
-  # ssl_cert = "/etc/telegraf/cert.pem"
-  # ssl_key = "/etc/telegraf/key.pem"
-  ## Use SSL but skip chain & host verification
-  # insecure_skip_verify = false
-
-
-# # Configuration for Amon Server to send metrics to.
-# [[outputs.amon]]
-#   ## Amon Server Key
-#   server_key = "my-server-key" # required.
-#
-#   ## Amon Instance URL
-#   amon_instance = "https://youramoninstance" # required
-#
-#   ## Connection timeout.
-#   # timeout = "5s"
-
-
-# # Configuration for the AMQP server to send metrics to
-# [[outputs.amqp]]
-#   ## AMQP url
-#   url = "amqp://localhost:5672/influxdb"
-#   ## AMQP exchange
-#   exchange = "telegraf"
-#   ## Auth method. PLAIN and EXTERNAL are supported
-#   ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as
-#   ## described here: https://www.rabbitmq.com/plugins.html
-#   # auth_method = "PLAIN"
-#   ## Telegraf tag to use as a routing key
-#   ##  ie, if this tag exists, its value will be used as the routing key
-#   routing_tag = "host"
-#
-#   ## InfluxDB retention policy
-#   # retention_policy = "default"
-#   ## InfluxDB database
-#   # database = "telegraf"
-#
-#   ## Write timeout, formatted as a string.  If not provided, will default
-#   ## to 5s. 0s means no timeout (not recommended).
-#   # timeout = "5s"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Configuration for AWS CloudWatch output.
-# [[outputs.cloudwatch]]
-#   ## Amazon REGION
-#   region = "us-east-1"
-#
-#   ## Amazon Credentials
-#   ## Credentials are loaded in the following order
-#   ## 1) Assumed credentials via STS if role_arn is specified
-#   ## 2) explicit credentials from 'access_key' and 'secret_key'
-#   ## 3) shared profile from 'profile'
-#   ## 4) environment variables
-#   ## 5) shared credentials file
-#   ## 6) EC2 Instance Profile
-#   #access_key = ""
-#   #secret_key = ""
-#   #token = ""
-#   #role_arn = ""
-#   #profile = ""
-#   #shared_credential_file = ""
-#
-#   ## Namespace for the CloudWatch MetricDatums
-#   namespace = "InfluxData/Telegraf"
-
-
-# # Configuration for DataDog API to send metrics to.
-# [[outputs.datadog]]
-#   ## Datadog API key
-#   apikey = "my-secret-key" # required.
-#
-#   ## Connection timeout.
-#   # timeout = "5s"
-
-
-# # Send metrics to nowhere at all
-# [[outputs.discard]]
-#   # no configuration
-
-
-# # Configuration for Elasticsearch to send metrics to.
-# [[outputs.elasticsearch]]
-#   ## The full HTTP endpoint URL for your Elasticsearch instance
-#   ## Multiple urls can be specified as part of the same cluster,
-#   ## this means that only ONE of the urls will be written to each interval.
-#   urls = [ "http://node1.es.example.com:9200" ] # required.
-#   ## Elasticsearch client timeout, defaults to "5s" if not set.
-#   timeout = "5s"
-#   ## Set to true to ask Elasticsearch a list of all cluster nodes,
-#   ## thus it is not necessary to list all nodes in the urls config option.
-#   enable_sniffer = false
-#   ## Set the interval to check if the Elasticsearch nodes are available
-#   ## Setting to "0s" will disable the health check (not recommended in production)
-#   health_check_interval = "10s"
-#   ## HTTP basic authentication details (eg. when using Shield)
-#   # username = "telegraf"
-#   # password = "mypassword"
-#
-#   ## Index Config
-#   ## The target index for metrics (Elasticsearch will create if it not exists).
-#   ## You can use the date specifiers below to create indexes per time frame.
-#   ## The metric timestamp will be used to decide the destination index name
-#   # %Y - year (2016)
-#   # %y - last two digits of year (00..99)
-#   # %m - month (01..12)
-#   # %d - day of month (e.g., 01)
-#   # %H - hour (00..23)
-#   index_name = "telegraf-%Y.%m.%d" # required.
-#
-#   ## Template Config
-#   ## Set to true if you want telegraf to manage its index template.
-#   ## If enabled it will create a recommended index template for telegraf indexes
-#   manage_template = true
-#   ## The template name used for telegraf indexes
-#   template_name = "telegraf"
-#   ## Set to true if you want telegraf to overwrite an existing template
-#   overwrite_template = false
-
-
-# # Send telegraf metrics to file(s)
-# [[outputs.file]]
-#   ## Files to write to, "stdout" is a specially handled file.
-#   files = ["stdout", "/tmp/metrics.out"]
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Configuration for Graphite server to send metrics to
-# [[outputs.graphite]]
-#   ## TCP endpoint for your graphite instance.
-#   ## If multiple endpoints are configured, output will be load balanced.
-#   ## Only one of the endpoints will be written to with each iteration.
-#   servers = ["localhost:2003"]
-#   ## Prefix metrics name
-#   prefix = ""
-#   ## Graphite output template
-#   ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   template = "host.tags.measurement.field"
-#   ## timeout in seconds for the write connection to graphite
-#   timeout = 2
-
-
-# # Send telegraf metrics to graylog(s)
-# [[outputs.graylog]]
-#   ## UDP endpoint for your graylog instance.
-#   servers = ["127.0.0.1:12201", "192.168.1.1:12201"]
-
-
-# # Configuration for sending metrics to an Instrumental project
-# [[outputs.instrumental]]
-#   ## Project API Token (required)
-#   api_token = "API Token" # required
-#   ## Prefix the metrics with a given name
-#   prefix = ""
-#   ## Stats output template (Graphite formatting)
-#   ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite
-#   template = "host.tags.measurement.field"
-#   ## Timeout in seconds to connect
-#   timeout = "2s"
-#   ## Display Communcation to Instrumental
-#   debug = false
-
-
-# # Configuration for the Kafka server to send metrics to
-# [[outputs.kafka]]
-#   ## URLs of kafka brokers
-#   brokers = ["localhost:9092"]
-#   ## Kafka topic for producer messages
-#   topic = "telegraf"
-#   ## Telegraf tag to use as a routing key
-#   ##  ie, if this tag exists, its value will be used as the routing key
-#   routing_tag = "host"
-#
-#   ## CompressionCodec represents the various compression codecs recognized by
-#   ## Kafka in messages.
-#   ##  0 : No compression
-#   ##  1 : Gzip compression
-#   ##  2 : Snappy compression
-#   compression_codec = 0
-#
-#   ##  RequiredAcks is used in Produce Requests to tell the broker how many
-#   ##  replica acknowledgements it must see before responding
-#   ##   0 : the producer never waits for an acknowledgement from the broker.
-#   ##       This option provides the lowest latency but the weakest durability
-#   ##       guarantees (some data will be lost when a server fails).
-#   ##   1 : the producer gets an acknowledgement after the leader replica has
-#   ##       received the data. This option provides better durability as the
-#   ##       client waits until the server acknowledges the request as successful
-#   ##       (only messages that were written to the now-dead leader but not yet
-#   ##       replicated will be lost).
-#   ##   -1: the producer gets an acknowledgement after all in-sync replicas have
-#   ##       received the data. This option provides the best durability, we
-#   ##       guarantee that no messages will be lost as long as at least one in
-#   ##       sync replica remains.
-#   required_acks = -1
-#
-#   ##  The total number of times to retry sending a message
-#   max_retry = 3
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Optional SASL Config
-#   # sasl_username = "kafka"
-#   # sasl_password = "secret"
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Configuration for the AWS Kinesis output.
-# [[outputs.kinesis]]
-#   ## Amazon REGION of kinesis endpoint.
-#   region = "ap-southeast-2"
-#
-#   ## Amazon Credentials
-#   ## Credentials are loaded in the following order
-#   ## 1) Assumed credentials via STS if role_arn is specified
-#   ## 2) explicit credentials from 'access_key' and 'secret_key'
-#   ## 3) shared profile from 'profile'
-#   ## 4) environment variables
-#   ## 5) shared credentials file
-#   ## 6) EC2 Instance Profile
-#   #access_key = ""
-#   #secret_key = ""
-#   #token = ""
-#   #role_arn = ""
-#   #profile = ""
-#   #shared_credential_file = ""
-#
-#   ## Kinesis StreamName must exist prior to starting telegraf.
-#   streamname = "StreamName"
-#   ## PartitionKey as used for sharding data.
-#   partitionkey = "PartitionKey"
-#   ## If set the paritionKey will be a random UUID on every put.
-#   ## This allows for scaling across multiple shards in a stream.
-#   ## This will cause issues with ordering.
-#   use_random_partitionkey = false
-#
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-#
-#   ## debug will show upstream aws messages.
-#   debug = false
-
-
-# # Configuration for Librato API to send metrics to.
-# [[outputs.librato]]
-#   ## Librator API Docs
-#   ## http://dev.librato.com/v1/metrics-authentication
-#   ## Librato API user
-#   api_user = "telegraf@influxdb.com" # required.
-#   ## Librato API token
-#   api_token = "my-secret-token" # required.
-#   ## Debug
-#   # debug = false
-#   ## Connection timeout.
-#   # timeout = "5s"
-#   ## Output source Template (same as graphite buckets)
-#   ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite
-#   ## This template is used in librato's source (not metric's name)
-#   template = "host"
-#
-
-
-# # Configuration for MQTT server to send metrics to
-# [[outputs.mqtt]]
-#   servers = ["localhost:1883"] # required.
-#
-#   ## MQTT outputs send metrics to this topic format
-#   ##    "<topic_prefix>/<hostname>/<pluginname>/"
-#   ##   ex: prefix/web01.example.com/mem
-#   topic_prefix = "telegraf"
-#
-#   ## username and password to connect MQTT server.
-#   # username = "telegraf"
-#   # password = "metricsmetricsmetricsmetrics"
-#
-#   ## client ID, if not set a random ID is generated
-#   # client_id = ""
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Send telegraf measurements to NATS
-# [[outputs.nats]]
-#   ## URLs of NATS servers
-#   servers = ["nats://localhost:4222"]
-#   ## Optional credentials
-#   # username = ""
-#   # password = ""
-#   ## NATS subject for producer messages
-#   subject = "telegraf"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Send telegraf measurements to NSQD
-# [[outputs.nsq]]
-#   ## Location of nsqd instance listening on TCP
-#   server = "localhost:4150"
-#   ## NSQ topic for producer messages
-#   topic = "telegraf"
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Configuration for OpenTSDB server to send metrics to
-# [[outputs.opentsdb]]
-#   ## prefix for metrics keys
-#   prefix = "my.specific.prefix."
-#
-#   ## DNS name of the OpenTSDB server
-#   ## Using "opentsdb.example.com" or "tcp://opentsdb.example.com" will use the
-#   ## telnet API. "http://opentsdb.example.com" will use the Http API.
-#   host = "opentsdb.example.com"
-#
-#   ## Port of the OpenTSDB server
-#   port = 4242
-#
-#   ## Number of data points to send to OpenTSDB in Http requests.
-#   ## Not used with telnet API.
-#   httpBatchSize = 50
-#
-#   ## Debug true - Prints OpenTSDB communication
-#   debug = false
-
-
-# # Configuration for the Prometheus client to spawn
-# [[outputs.prometheus_client]]
-#   ## Address to listen on
-#   # listen = ":9126"
-#
-#   ## Interval to expire metrics and not deliver to prometheus, 0 == no expiration
-#   # expiration_interval = "60s"
-
-
-# # Configuration for the Riemann server to send metrics to
-# [[outputs.riemann]]
-#   ## The full TCP or UDP URL of the Riemann server
-#   url = "tcp://localhost:5555"
-#
-#   ## Riemann event TTL, floating-point time in seconds.
-#   ## Defines how long that an event is considered valid for in Riemann
-#   # ttl = 30.0
-#
-#   ## Separator to use between measurement and field name in Riemann service name
-#   ## This does not have any effect if 'measurement_as_attribute' is set to 'true'
-#   separator = "/"
-#
-#   ## Set measurement name as Riemann attribute 'measurement', instead of prepending it to the Riemann service name
-#   # measurement_as_attribute = false
-#
-#   ## Send string metrics as Riemann event states.
-#   ## Unless enabled all string metrics will be ignored
-#   # string_as_state = false
-#
-#   ## A list of tag keys whose values get sent as Riemann tags.
-#   ## If empty, all Telegraf tag values will be sent as tags
-#   # tag_keys = ["telegraf","custom_tag"]
-#
-#   ## Additional Riemann tags to send.
-#   # tags = ["telegraf-output"]
-#
-#   ## Description for Riemann event
-#   # description_text = "metrics collected from telegraf"
-#
-#   ## Riemann client write timeout, defaults to "5s" if not set.
-#   # timeout = "5s"
-
-
-# # Configuration for the Riemann server to send metrics to
-# [[outputs.riemann_legacy]]
-#   ## URL of server
-#   url = "localhost:5555"
-#   ## transport protocol to use either tcp or udp
-#   transport = "tcp"
-#   ## separator to use between input name and field name in Riemann service name
-#   separator = " "
-
-
-# # Generic socket writer capable of handling multiple socket types.
-# [[outputs.socket_writer]]
-#   ## URL to connect to
-#   # address = "tcp://127.0.0.1:8094"
-#   # address = "tcp://example.com:http"
-#   # address = "tcp4://127.0.0.1:8094"
-#   # address = "tcp6://127.0.0.1:8094"
-#   # address = "tcp6://[2001:db8::1]:8094"
-#   # address = "udp://127.0.0.1:8094"
-#   # address = "udp4://127.0.0.1:8094"
-#   # address = "udp6://127.0.0.1:8094"
-#   # address = "unix:///tmp/telegraf.sock"
-#   # address = "unixgram:///tmp/telegraf.sock"
-#
-#   ## Period between keep alive probes.
-#   ## Only applies to TCP sockets.
-#   ## 0 disables keep alive probes.
-#   ## Defaults to the OS configuration.
-#   # keep_alive_period = "5m"
-#
-#   ## Data format to generate.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   # data_format = "influx"
-
-
-
-###############################################################################
-#                            PROCESSOR PLUGINS                                #
-###############################################################################
-
-# # Print all metrics that pass through this filter.
-# [[processors.printer]]
-
-
-
-###############################################################################
-#                            AGGREGATOR PLUGINS                               #
-###############################################################################
-
-# # Keep the aggregate min/max of each metric passing through.
-# [[aggregators.minmax]]
-#   ## General Aggregator Arguments:
-#   ## The period on which to flush & clear the aggregator.
-#   period = "30s"
-#   ## If true, the original metric will be dropped by the
-#   ## aggregator and will not get sent to the output plugins.
-#   drop_original = false
-
-
-
-###############################################################################
-#                            INPUT PLUGINS                                    #
-###############################################################################
-
-# Read metrics about cpu usage
-[[inputs.cpu]]
-  ## Whether to report per-cpu stats or not
-  percpu = true
-  ## Whether to report total system cpu stats or not
-  totalcpu = true
-  ## If true, collect raw CPU time metrics.
-  collect_cpu_time = false
-
-
-# Read metrics about disk usage by mount point
-[[inputs.disk]]
-  ## By default, telegraf gather stats for all mountpoints.
-  ## Setting mountpoints will restrict the stats to the specified mountpoints.
-  # mount_points = ["/"]
-
-  ## Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually
-  ## present on /run, /var/run, /dev/shm or /dev).
-  ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
-
-
-# Read metrics about disk IO by device
-[[inputs.diskio]]
-  ## By default, telegraf will gather stats for all devices including
-  ## disk partitions.
-  ## Setting devices will restrict the stats to the specified devices.
-  # devices = ["sda", "sdb"]
-  ## Uncomment the following line if you need disk serial numbers.
-  # skip_serial_number = false
-  #
-  ## On systems which support it, device metadata can be added in the form of
-  ## tags.
-  ## Currently only Linux is supported via udev properties. You can view
-  ## available properties for a device by running:
-  ## 'udevadm info -q property -n /dev/sda'
-  # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"]
-  #
-  ## Using the same metadata source as device_tags, you can also customize the
-  ## name of the device via templates.
-  ## The 'name_templates' parameter is a list of templates to try and apply to
-  ## the device. The template may contain variables in the form of '$PROPERTY' or
-  ## '${PROPERTY}'. The first template which does not contain any variables not
-  ## present for the device is used as the device name tag.
-  ## The typical use case is for LVM volumes, to get the VG/LV name instead of
-  ## the near-meaningless DM-0 name.
-  # name_templates = ["$ID_FS_LABEL","$DM_VG_NAME/$DM_LV_NAME"]
-
-
-# Get kernel statistics from /proc/stat
-[[inputs.kernel]]
-  # no configuration
-
-
-# Read metrics about memory usage
-[[inputs.mem]]
-  # no configuration
-
-
-# Get the number of processes and group them by status
-[[inputs.processes]]
-  # no configuration
-
-
-# Read metrics about swap memory usage
-[[inputs.swap]]
-  # no configuration
-
-
-# Read metrics about system load & uptime
-[[inputs.system]]
-  # no configuration
-
-
-# # Read stats from aerospike server(s)
-# [[inputs.aerospike]]
-#   ## Aerospike servers to connect to (with port)
-#   ## This plugin will query all namespaces the aerospike
-#   ## server has configured and get stats for them.
-#   servers = ["localhost:3000"]
-
-
-# # Read Apache status information (mod_status)
-# [[inputs.apache]]
-#   ## An array of Apache status URI to gather stats.
-#   ## Default is "http://localhost/server-status?auto".
-#   urls = ["http://localhost/server-status?auto"]
-#   ## user credentials for basic HTTP authentication
-#   username = "myuser"
-#   password = "mypassword"
-#
-#   ## Timeout to the complete conection and reponse time in seconds
-#   response_timeout = "25s" ## default to 5 seconds
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read metrics of bcache from stats_total and dirty_data
-# [[inputs.bcache]]
-#   ## Bcache sets path
-#   ## If not specified, then default is:
-#   bcachePath = "/sys/fs/bcache"
-#
-#   ## By default, telegraf gather stats for all bcache devices
-#   ## Setting devices will restrict the stats to the specified
-#   ## bcache devices.
-#   bcacheDevs = ["bcache0"]
-
-
-# # Read Cassandra metrics through Jolokia
-# [[inputs.cassandra]]
-#   # This is the context root used to compose the jolokia url
-#   context = "/jolokia/read"
-#   ## List of cassandra servers exposing jolokia read service
-#   servers = ["myuser:mypassword@10.10.10.1:8778","10.10.10.2:8778",":8778"]
-#   ## List of metrics collected on above servers
-#   ## Each metric consists of a jmx path.
-#   ## This will collect all heap memory usage metrics from the jvm and
-#   ## ReadLatency metrics for all keyspaces and tables.
-#   ## "type=Table" in the query works with Cassandra3.0. Older versions might
-#   ## need to use "type=ColumnFamily"
-#   metrics  = [
-#     "/java.lang:type=Memory/HeapMemoryUsage",
-#     "/org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=ReadLatency"
-#   ]
-
-
-# # Collects performance metrics from the MON and OSD nodes in a Ceph storage cluster.
-# [[inputs.ceph]]
-#   ## This is the recommended interval to poll.  Too frequent and you will lose
-#   ## data points due to timeouts during rebalancing and recovery
-#   interval = '1m'
-#
-#   ## All configuration values are optional, defaults are shown below
-#
-#   ## location of ceph binary
-#   ceph_binary = "/usr/bin/ceph"
-#
-#   ## directory in which to look for socket files
-#   socket_dir = "/var/run/ceph"
-#
-#   ## prefix of MON and OSD socket files, used to determine socket type
-#   mon_prefix = "ceph-mon"
-#   osd_prefix = "ceph-osd"
-#
-#   ## suffix used to identify socket files
-#   socket_suffix = "asok"
-#
-#   ## Ceph user to authenticate as
-#   ceph_user = "client.admin"
-#
-#   ## Ceph configuration to use to locate the cluster
-#   ceph_config = "/etc/ceph/ceph.conf"
-#
-#   ## Whether to gather statistics via the admin socket
-#   gather_admin_socket_stats = true
-#
-#   ## Whether to gather statistics via ceph commands
-#   gather_cluster_stats = false
-
-
-# # Read specific statistics per cgroup
-# [[inputs.cgroup]]
-#   ## Directories in which to look for files, globs are supported.
-#   ## Consider restricting paths to the set of cgroups you really
-#   ## want to monitor if you have a large number of cgroups, to avoid
-#   ## any cardinality issues.
-#   # paths = [
-#   #   "/cgroup/memory",
-#   #   "/cgroup/memory/child1",
-#   #   "/cgroup/memory/child2/*",
-#   # ]
-#   ## cgroup stat fields, as file names, globs are supported.
-#   ## these file names are appended to each path from above.
-#   # files = ["memory.*usage*", "memory.limit_in_bytes"]
-
-
-# # Pull Metric Statistics from Amazon CloudWatch
-# [[inputs.cloudwatch]]
-#   ## Amazon Region
-#   region = "us-east-1"
-#
-#   ## Amazon Credentials
-#   ## Credentials are loaded in the following order
-#   ## 1) Assumed credentials via STS if role_arn is specified
-#   ## 2) explicit credentials from 'access_key' and 'secret_key'
-#   ## 3) shared profile from 'profile'
-#   ## 4) environment variables
-#   ## 5) shared credentials file
-#   ## 6) EC2 Instance Profile
-#   #access_key = ""
-#   #secret_key = ""
-#   #token = ""
-#   #role_arn = ""
-#   #profile = ""
-#   #shared_credential_file = ""
-#
-#   # The minimum period for Cloudwatch metrics is 1 minute (60s). However not all
-#   # metrics are made available to the 1 minute period. Some are collected at
-#   # 3 minute and 5 minutes intervals. See https://aws.amazon.com/cloudwatch/faqs/#monitoring.
-#   # Note that if a period is configured that is smaller than the minimum for a
-#   # particular metric, that metric will not be returned by the Cloudwatch API
-#   # and will not be collected by Telegraf.
-#   #
-#   ## Requested CloudWatch aggregation Period (required - must be a multiple of 60s)
-#   period = "5m"
-#
-#   ## Collection Delay (required - must account for metrics availability via CloudWatch API)
-#   delay = "5m"
-#
-#   ## Recomended: use metric 'interval' that is a multiple of 'period' to avoid
-#   ## gaps or overlap in pulled data
-#   interval = "5m"
-#
-#   ## Configure the TTL for the internal cache of metrics.
-#   ## Defaults to 1 hr if not specified
-#   #cache_ttl = "10m"
-#
-#   ## Metric Statistic Namespace (required)
-#   namespace = "AWS/ELB"
-#
-#   ## Maximum requests per second. Note that the global default AWS rate limit is
-#   ## 400 reqs/sec, so if you define multiple namespaces, these should add up to a
-#   ## maximum of 400. Optional - default value is 200.
-#   ## See http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html
-#   ratelimit = 200
-#
-#   ## Metrics to Pull (optional)
-#   ## Defaults to all Metrics in Namespace if nothing is provided
-#   ## Refreshes Namespace available metrics every 1h
-#   #[[inputs.cloudwatch.metrics]]
-#   #  names = ["Latency", "RequestCount"]
-#   #
-#   #  ## Dimension filters for Metric (optional)
-#   #  [[inputs.cloudwatch.metrics.dimensions]]
-#   #    name = "LoadBalancerName"
-#   #    value = "p-example"
-
-
-# # Gather health check statuses from services registered in Consul
-# [[inputs.consul]]
-#   ## Most of these values defaults to the one configured on a Consul's agent level.
-#   ## Optional Consul server address (default: "localhost")
-#   # address = "localhost"
-#   ## Optional URI scheme for the Consul server (default: "http")
-#   # scheme = "http"
-#   ## Optional ACL token used in every request (default: "")
-#   # token = ""
-#   ## Optional username used for request HTTP Basic Authentication (default: "")
-#   # username = ""
-#   ## Optional password used for HTTP Basic Authentication (default: "")
-#   # password = ""
-#   ## Optional data centre to query the health checks from (default: "")
-#   # datacentre = ""
-
-
-# # Read metrics from one or many couchbase clusters
-# [[inputs.couchbase]]
-#   ## specify servers via a url matching:
-#   ##  [protocol://][:password]@address[:port]
-#   ##  e.g.
-#   ##    http://couchbase-0.example.com/
-#   ##    http://admin:secret@couchbase-0.example.com:8091/
-#   ##
-#   ## If no servers are specified, then localhost is used as the host.
-#   ## If no protocol is specifed, HTTP is used.
-#   ## If no port is specified, 8091 is used.
-#   servers = ["http://localhost:8091"]
-
-
-# # Read CouchDB Stats from one or more servers
-# [[inputs.couchdb]]
-#   ## Works with CouchDB stats endpoints out of the box
-#   ## Multiple HOSTs from which to read CouchDB stats:
-#   hosts = ["http://localhost:8086/_stats"]
-
-
-# # Read metrics from one or many disque servers
-# [[inputs.disque]]
-#   ## An array of URI to gather stats about. Specify an ip or hostname
-#   ## with optional port and password.
-#   ## ie disque://localhost, disque://10.10.3.33:18832, 10.0.0.1:10000, etc.
-#   ## If no servers are specified, then localhost is used as the host.
-#   servers = ["localhost"]
-
-
-# # Provide a native collection for dmsetup based statistics for dm-cache
-# [[inputs.dmcache]]
-#   ## Whether to report per-device stats or not
-#   per_device = true
-
-
-# # Query given DNS server and gives statistics
-# [[inputs.dns_query]]
-#   ## servers to query
-#   servers = ["8.8.8.8"] # required
-#
-#   ## Domains or subdomains to query. "."(root) is default
-#   domains = ["."] # optional
-#
-#   ## Query record type. Default is "A"
-#   ## Posible values: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, SRV.
-#   record_type = "A" # optional
-#
-#   ## Dns server port. 53 is default
-#   port = 53 # optional
-#
-#   ## Query timeout in seconds. Default is 2 seconds
-#   timeout = 2 # optional
-
-
-# # Read metrics about docker containers
-# [[inputs.docker]]
-#   ## Docker Endpoint
-#   ##   To use TCP, set endpoint = "tcp://[ip]:[port]"
-#   ##   To use environment variables (ie, docker-machine), set endpoint = "ENV"
-#   endpoint = "unix:///var/run/docker.sock"
-#   ## Only collect metrics for these containers, collect all if empty
-#   container_names = []
-#   ## Timeout for docker list, info, and stats commands
-#   timeout = "5s"
-#
-#   ## Whether to report for each container per-device blkio (8:0, 8:1...) and
-#   ## network (eth0, eth1, ...) stats or not
-#   perdevice = true
-#   ## Whether to report for each container total blkio and network stats or not
-#   total = false
-#
-#   ## docker labels to include and exclude as tags.  Globs accepted.
-#   ## Note that an empty array for both will include all labels as tags
-#   docker_label_include = []
-#   docker_label_exclude = []
-
-
-# # Read statistics from one or many dovecot servers
-# [[inputs.dovecot]]
-#   ## specify dovecot servers via an address:port list
-#   ##  e.g.
-#   ##    localhost:24242
-#   ##
-#   ## If no servers are specified, then localhost is used as the host.
-#   servers = ["localhost:24242"]
-#   ## Type is one of "user", "domain", "ip", or "global"
-#   type = "global"
-#   ## Wildcard matches like "*.com". An empty string "" is same as "*"
-#   ## If type = "ip" filters should be <IP/network>
-#   filters = [""]
-
-
-# # Read stats from one or more Elasticsearch servers or clusters
-# [[inputs.elasticsearch]]
-#   ## specify a list of one or more Elasticsearch servers
-#   # you can add username and password to your url to use basic authentication:
-#   # servers = ["http://user:pass@localhost:9200"]
-#   servers = ["http://localhost:9200"]
-#
-#   ## Timeout for HTTP requests to the elastic search server(s)
-#   http_timeout = "5s"
-#
-#   ## When local is true (the default), the node will read only its own stats.
-#   ## Set local to false when you want to read the node stats from all nodes
-#   ## of the cluster.
-#   local = true
-#
-#   ## Set cluster_health to true when you want to also obtain cluster health stats
-#   cluster_health = false
-#
-#   ## Set cluster_stats to true when you want to also obtain cluster stats from the
-#   ## Master node.
-#   cluster_stats = false
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read metrics from one or more commands that can output to stdout
-# [[inputs.exec]]
-#   ## Commands array
-#   commands = [
-#     "/tmp/test.sh",
-#     "/usr/bin/mycollector --foo=bar",
-#     "/tmp/collect_*.sh"
-#   ]
-#
-#   ## Timeout for each command to complete.
-#   timeout = "5s"
-#
-#   ## measurement name suffix (for separating different commands)
-#   name_suffix = "_mycollector"
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   data_format = "influx"
-
-
-# # Read stats about given file(s)
-# [[inputs.filestat]]
-#   ## Files to gather stats about.
-#   ## These accept standard unix glob matching rules, but with the addition of
-#   ## ** as a "super asterisk". ie:
-#   ##   "/var/log/**.log"  -> recursively find all .log files in /var/log
-#   ##   "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log
-#   ##   "/var/log/apache.log" -> just tail the apache log file
-#   ##
-#   ## See https://github.com/gobwas/glob for more examples
-#   ##
-#   files = ["/var/log/**.log"]
-#   ## If true, read the entire file and calculate an md5 checksum.
-#   md5 = false
-
-
-# # Read flattened metrics from one or more GrayLog HTTP endpoints
-# [[inputs.graylog]]
-#   ## API endpoint, currently supported API:
-#   ##
-#   ##   - multiple  (Ex http://<host>:12900/system/metrics/multiple)
-#   ##   - namespace (Ex http://<host>:12900/system/metrics/namespace/{namespace})
-#   ##
-#   ## For namespace endpoint, the metrics array will be ignored for that call.
-#   ## Endpoint can contain namespace and multiple type calls.
-#   ##
-#   ## Please check http://[graylog-server-ip]:12900/api-browser for full list
-#   ## of endpoints
-#   servers = [
-#     "http://[graylog-server-ip]:12900/system/metrics/multiple",
-#   ]
-#
-#   ## Metrics list
-#   ## List of metrics can be found on Graylog webservice documentation.
-#   ## Or by hitting the the web service api at:
-#   ##   http://[graylog-host]:12900/system/metrics
-#   metrics = [
-#     "jvm.cl.loaded",
-#     "jvm.memory.pools.Metaspace.committed"
-#   ]
-#
-#   ## Username and password
-#   username = ""
-#   password = ""
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read metrics of haproxy, via socket or csv stats page
-# [[inputs.haproxy]]
-#   ## An array of address to gather stats about. Specify an ip on hostname
-#   ## with optional port. ie localhost, 10.10.3.33:1936, etc.
-#   ## Make sure you specify the complete path to the stats endpoint
-#   ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats
-#
-#   ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats
-#   servers = ["http://myhaproxy.com:1936/haproxy?stats"]
-#
-#   ## You can also use local socket with standard wildcard globbing.
-#   ## Server address not starting with 'http' will be treated as a possible
-#   ## socket, so both examples below are valid.
-#   # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"]
-#
-#   ## By default, some of the fields are renamed from what haproxy calls them.
-#   ## Setting this option to true results in the plugin keeping the original
-#   ## field names.
-#   # keep_field_names = true
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # HTTP/HTTPS request given an address a method and a timeout
-# [[inputs.http_response]]
-#   ## Server address (default http://localhost)
-#   address = "http://github.com"
-#   ## Set response_timeout (default 5 seconds)
-#   response_timeout = "5s"
-#   ## HTTP Request Method
-#   method = "GET"
-#   ## Whether to follow redirects from the server (defaults to false)
-#   follow_redirects = true
-#   ## HTTP Request Headers (all values must be strings)
-#   # [inputs.http_response.headers]
-#   #   Host = "github.com"
-#   ## Optional HTTP Request Body
-#   # body = '''
-#   # {'fake':'data'}
-#   # '''
-#
-#   ## Optional substring or regex match in body of the response
-#   ## response_string_match = "\"service_status\": \"up\""
-#   ## response_string_match = "ok"
-#   ## response_string_match = "\".*_status\".?:.?\"up\""
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read flattened metrics from one or more JSON HTTP endpoints
-# [[inputs.httpjson]]
-#   ## NOTE This plugin only reads numerical measurements, strings and booleans
-#   ## will be ignored.
-#
-#   ## Name for the service being polled.  Will be appended to the name of the
-#   ## measurement e.g. httpjson_webserver_stats
-#   ##
-#   ## Deprecated (1.3.0): Use name_override, name_suffix, name_prefix instead.
-#   name = "webserver_stats"
-#
-#   ## URL of each server in the service's cluster
-#   servers = [
-#     "http://localhost:9999/stats/",
-#     "http://localhost:9998/stats/",
-#   ]
-#   ## Set response_timeout (default 5 seconds)
-#   response_timeout = "5s"
-#
-#   ## HTTP method to use: GET or POST (case-sensitive)
-#   method = "GET"
-#
-#   ## List of tag names to extract from top-level of JSON server response
-#   # tag_keys = [
-#   #   "my_tag_1",
-#   #   "my_tag_2"
-#   # ]
-#
-#   ## HTTP parameters (all values must be strings).  For "GET" requests, data
-#   ## will be included in the query.  For "POST" requests, data will be included
-#   ## in the request body as "x-www-form-urlencoded".
-#   # [inputs.httpjson.parameters]
-#   #   event_type = "cpu_spike"
-#   #   threshold = "0.75"
-#
-#   ## HTTP Headers (all values must be strings)
-#   # [inputs.httpjson.headers]
-#   #   X-Auth-Token = "my-xauth-token"
-#   #   apiVersion = "v1"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read InfluxDB-formatted JSON metrics from one or more HTTP endpoints
-# [[inputs.influxdb]]
-#   ## Works with InfluxDB debug endpoints out of the box,
-#   ## but other services can use this format too.
-#   ## See the influxdb plugin's README for more details.
-#
-#   ## Multiple URLs from which to read InfluxDB-formatted JSON
-#   ## Default is "http://localhost:8086/debug/vars".
-#   urls = [
-#     "http://localhost:8086/debug/vars"
-#   ]
-#
-#   ## http request & header timeout
-#   timeout = "5s"
-
-
-# # Collect statistics about itself
-# [[inputs.internal]]
-#   ## If true, collect telegraf memory stats.
-#   # collect_memstats = true
-
-
-# # This plugin gathers interrupts data from /proc/interrupts and /proc/softirqs.
-# [[inputs.interrupts]]
-#   ## To filter which IRQs to collect, make use of tagpass / tagdrop, i.e.
-#   # [inputs.interrupts.tagdrop]
-#     # irq = [ "NET_RX", "TASKLET" ]
-
-
-# # Read metrics from the bare metal servers via IPMI
-# [[inputs.ipmi_sensor]]
-#   ## optionally specify the path to the ipmitool executable
-#   # path = "/usr/bin/ipmitool"
-#   #
-#   ## optionally specify one or more servers via a url matching
-#   ##  [username[:password]@][protocol[(address)]]
-#   ##  e.g.
-#   ##    root:passwd@lan(127.0.0.1)
-#   ##
-#   ## if no servers are specified, local machine sensor stats will be queried
-#   ##
-#   # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"]
-
-
-# # Read JMX metrics through Jolokia
-# [[inputs.jolokia]]
-#   ## This is the context root used to compose the jolokia url
-#   ## NOTE that Jolokia requires a trailing slash at the end of the context root
-#   ## NOTE that your jolokia security policy must allow for POST requests.
-#   context = "/jolokia/"
-#
-#   ## This specifies the mode used
-#   # mode = "proxy"
-#   #
-#   ## When in proxy mode this section is used to specify further
-#   ## proxy address configurations.
-#   ## Remember to change host address to fit your environment.
-#   # [inputs.jolokia.proxy]
-#   #   host = "127.0.0.1"
-#   #   port = "8080"
-#
-#   ## Optional http timeouts
-#   ##
-#   ## response_header_timeout, if non-zero, specifies the amount of time to wait
-#   ## for a server's response headers after fully writing the request.
-#   # response_header_timeout = "3s"
-#   ##
-#   ## client_timeout specifies a time limit for requests made by this client.
-#   ## Includes connection time, any redirects, and reading the response body.
-#   # client_timeout = "4s"
-#
-#   ## Attribute delimiter
-#   ##
-#   ## When multiple attributes are returned for a single
-#   ## [inputs.jolokia.metrics], the field name is a concatenation of the metric
-#   ## name, and the attribute name, separated by the given delimiter.
-#   # delimiter = "_"
-#
-#   ## List of servers exposing jolokia read service
-#   [[inputs.jolokia.servers]]
-#     name = "as-server-01"
-#     host = "127.0.0.1"
-#     port = "8080"
-#     # username = "myuser"
-#     # password = "mypassword"
-#
-#   ## List of metrics collected on above servers
-#   ## Each metric consists in a name, a jmx path and either
-#   ## a pass or drop slice attribute.
-#   ## This collect all heap memory usage metrics.
-#   [[inputs.jolokia.metrics]]
-#     name = "heap_memory_usage"
-#     mbean  = "java.lang:type=Memory"
-#     attribute = "HeapMemoryUsage"
-#
-#   ## This collect thread counts metrics.
-#   [[inputs.jolokia.metrics]]
-#     name = "thread_count"
-#     mbean  = "java.lang:type=Threading"
-#     attribute = "TotalStartedThreadCount,ThreadCount,DaemonThreadCount,PeakThreadCount"
-#
-#   ## This collect number of class loaded/unloaded counts metrics.
-#   [[inputs.jolokia.metrics]]
-#     name = "class_count"
-#     mbean  = "java.lang:type=ClassLoading"
-#     attribute = "LoadedClassCount,UnloadedClassCount,TotalLoadedClassCount"
-
-
-# # Read Kapacitor-formatted JSON metrics from one or more HTTP endpoints
-# [[inputs.kapacitor]]
-#   ## Multiple URLs from which to read Kapacitor-formatted JSON
-#   ## Default is "http://localhost:9092/kapacitor/v1/debug/vars".
-#   urls = [
-#     "http://localhost:9092/kapacitor/v1/debug/vars"
-#   ]
-#
-#   ## Time limit for http requests
-#   timeout = "5s"
-
-
-# # Read metrics from the kubernetes kubelet api
-# [[inputs.kubernetes]]
-#   ## URL for the kubelet
-#   url = "http://1.1.1.1:10255"
-#
-#   ## Use bearer token for authorization
-#   # bearer_token = /path/to/bearer/token
-#
-#   ## Optional SSL Config
-#   # ssl_ca = /path/to/cafile
-#   # ssl_cert = /path/to/certfile
-#   # ssl_key = /path/to/keyfile
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read metrics from a LeoFS Server via SNMP
-# [[inputs.leofs]]
-#   ## An array of URLs of the form:
-#   ##   "udp://" host [ ":" port]
-#   servers = ["udp://127.0.0.1:4020"]
-
-
-# # Provides Linux sysctl fs metrics
-# [[inputs.linux_sysctl_fs]]
-#   # no configuration
-
-
-# # Read metrics from local Lustre service on OST, MDS
-# [[inputs.lustre2]]
-#   ## An array of /proc globs to search for Lustre stats
-#   ## If not specified, the default will work on Lustre 2.5.x
-#   ##
-#   # ost_procfiles = [
-#   #   "/proc/fs/lustre/obdfilter/*/stats",
-#   #   "/proc/fs/lustre/osd-ldiskfs/*/stats",
-#   #   "/proc/fs/lustre/obdfilter/*/job_stats",
-#   # ]
-#   # mds_procfiles = [
-#   #   "/proc/fs/lustre/mdt/*/md_stats",
-#   #   "/proc/fs/lustre/mdt/*/job_stats",
-#   # ]
-
-
-# # Gathers metrics from the /3.0/reports MailChimp API
-# [[inputs.mailchimp]]
-#   ## MailChimp API key
-#   ## get from https://admin.mailchimp.com/account/api/
-#   api_key = "" # required
-#   ## Reports for campaigns sent more than days_old ago will not be collected.
-#   ## 0 means collect all.
-#   days_old = 0
-#   ## Campaign ID to get, if empty gets all campaigns, this option overrides days_old
-#   # campaign_id = ""
-
-
-# # Read metrics from one or many memcached servers
-# [[inputs.memcached]]
-#   ## An array of address to gather stats about. Specify an ip on hostname
-#   ## with optional port. ie localhost, 10.0.0.1:11211, etc.
-#   servers = ["localhost:11211"]
-#   # unix_sockets = ["/var/run/memcached.sock"]
-
-
-# # Telegraf plugin for gathering metrics from N Mesos masters
-# [[inputs.mesos]]
-#   ## Timeout, in ms.
-#   timeout = 100
-#   ## A list of Mesos masters.
-#   masters = ["localhost:5050"]
-#   ## Master metrics groups to be collected, by default, all enabled.
-#   master_collections = [
-#     "resources",
-#     "master",
-#     "system",
-#     "agents",
-#     "frameworks",
-#     "tasks",
-#     "messages",
-#     "evqueue",
-#     "registrar",
-#   ]
-#   ## A list of Mesos slaves, default is []
-#   # slaves = []
-#   ## Slave metrics groups to be collected, by default, all enabled.
-#   # slave_collections = [
-#   #   "resources",
-#   #   "agent",
-#   #   "system",
-#   #   "executors",
-#   #   "tasks",
-#   #   "messages",
-#   # ]
-
-
-# # Read metrics from one or many MongoDB servers
-# [[inputs.mongodb]]
-#   ## An array of URLs of the form:
-#   ##   "mongodb://" [user ":" pass "@"] host [ ":" port]
-#   ## For example:
-#   ##   mongodb://user:auth_key@10.10.3.30:27017,
-#   ##   mongodb://10.10.3.33:18832,
-#   servers = ["mongodb://127.0.0.1:27017"]
-#   gather_perdb_stats = false
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Read metrics from one or many mysql servers
-# [[inputs.mysql]]
-#   ## specify servers via a url matching:
-#   ##  [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify]]
-#   ##  see https://github.com/go-sql-driver/mysql#dsn-data-source-name
-#   ##  e.g.
-#   ##    servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"]
-#   ##    servers = ["user@tcp(127.0.0.1:3306)/?tls=false"]
-#   #
-#   ## If no servers are specified, then localhost is used as the host.
-#   servers = ["tcp(127.0.0.1:3306)/"]
-#   ## the limits for metrics form perf_events_statements
-#   perf_events_statements_digest_text_limit  = 120
-#   perf_events_statements_limit              = 250
-#   perf_events_statements_time_limit         = 86400
-#   #
-#   ## if the list is empty, then metrics are gathered from all databasee tables
-#   table_schema_databases                    = []
-#   #
-#   ## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided above list
-#   gather_table_schema                       = false
-#   #
-#   ## gather thread state counts from INFORMATION_SCHEMA.PROCESSLIST
-#   gather_process_list                       = true
-#   #
-#   ## gather thread state counts from INFORMATION_SCHEMA.USER_STATISTICS
-#   gather_user_statistics                    = true
-#   #
-#   ## gather auto_increment columns and max values from information schema
-#   gather_info_schema_auto_inc               = true
-#   #
-#   ## gather metrics from INFORMATION_SCHEMA.INNODB_METRICS
-#   gather_innodb_metrics                     = true
-#   #
-#   ## gather metrics from SHOW SLAVE STATUS command output
-#   gather_slave_status                       = true
-#   #
-#   ## gather metrics from SHOW BINARY LOGS command output
-#   gather_binary_logs                        = false
-#   #
-#   ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_TABLE
-#   gather_table_io_waits                     = false
-#   #
-#   ## gather metrics from PERFORMANCE_SCHEMA.TABLE_LOCK_WAITS
-#   gather_table_lock_waits                   = false
-#   #
-#   ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_INDEX_USAGE
-#   gather_index_io_waits                     = false
-#   #
-#   ## gather metrics from PERFORMANCE_SCHEMA.EVENT_WAITS
-#   gather_event_waits                        = false
-#   #
-#   ## gather metrics from PERFORMANCE_SCHEMA.FILE_SUMMARY_BY_EVENT_NAME
-#   gather_file_events_stats                  = false
-#   #
-#   ## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST
-#   gather_perf_events_statements             = false
-#   #
-#   ## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES)
-#   interval_slow                   = "30m"
-
-
-# # Read metrics about network interface usage
-[[inputs.net]]
-#   ## By default, telegraf gathers stats from any up interface (excluding loopback)
-#   ## Setting interfaces will tell it to gather these explicit interfaces,
-#   ## regardless of status.
-#   ##
-#   # interfaces = ["eth0"]
-interfaces = ["en0"]
-
-# # TCP or UDP 'ping' given url and collect response time in seconds
-# [[inputs.net_response]]
-#   ## Protocol, must be "tcp" or "udp"
-#   ## NOTE: because the "udp" protocol does not respond to requests, it requires
-#   ## a send/expect string pair (see below).
-#   protocol = "tcp"
-#   ## Server address (default localhost)
-#   address = "localhost:80"
-#   ## Set timeout
-#   timeout = "1s"
-#
-#   ## Set read timeout (only used if expecting a response)
-#   read_timeout = "1s"
-#
-#   ## The following options are required for UDP checks. For TCP, they are
-#   ## optional. The plugin will send the given string to the server and then
-#   ## expect to receive the given 'expect' string back.
-#   ## string sent to the server
-#   # send = "ssh"
-#   ## expected string in answer
-#   # expect = "ssh"
-
-
-# # Read TCP metrics such as established, time wait and sockets counts.
-# [[inputs.netstat]]
-#   # no configuration
-
-
-# # Read Nginx's basic status information (ngx_http_stub_status_module)
-# [[inputs.nginx]]
-#   ## An array of Nginx stub_status URI to gather stats.
-#   urls = ["http://localhost/status"]
-
-
-# # Read NSQ topic and channel statistics.
-# [[inputs.nsq]]
-#   ## An array of NSQD HTTP API endpoints
-#   endpoints = ["http://localhost:4151"]
-
-
-# # Collect kernel snmp counters and network interface statistics
-# [[inputs.nstat]]
-#   ## file paths for proc files. If empty default paths will be used:
-#   ##    /proc/net/netstat, /proc/net/snmp, /proc/net/snmp6
-#   ## These can also be overridden with env variables, see README.
-#   proc_net_netstat = "/proc/net/netstat"
-#   proc_net_snmp = "/proc/net/snmp"
-#   proc_net_snmp6 = "/proc/net/snmp6"
-#   ## dump metrics with 0 values too
-#   dump_zeros       = true
-
-
-# # Get standard NTP query metrics, requires ntpq executable.
-# [[inputs.ntpq]]
-#   ## If false, set the -n ntpq flag. Can reduce metric gather time.
-#   dns_lookup = true
-
-
-# # Read metrics of passenger using passenger-status
-# [[inputs.passenger]]
-#   ## Path of passenger-status.
-#   ##
-#   ## Plugin gather metric via parsing XML output of passenger-status
-#   ## More information about the tool:
-#   ##   https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html
-#   ##
-#   ## If no path is specified, then the plugin simply execute passenger-status
-#   ## hopefully it can be found in your PATH
-#   command = "passenger-status -v --show=xml"
-
-
-# # Read metrics of phpfpm, via HTTP status page or socket
-# [[inputs.phpfpm]]
-#   ## An array of addresses to gather stats about. Specify an ip or hostname
-#   ## with optional port and path
-#   ##
-#   ## Plugin can be configured in three modes (either can be used):
-#   ##   - http: the URL must start with http:// or https://, ie:
-#   ##       "http://localhost/status"
-#   ##       "http://192.168.130.1/status?full"
-#   ##
-#   ##   - unixsocket: path to fpm socket, ie:
-#   ##       "/var/run/php5-fpm.sock"
-#   ##      or using a custom fpm status path:
-#   ##       "/var/run/php5-fpm.sock:fpm-custom-status-path"
-#   ##
-#   ##   - fcgi: the URL must start with fcgi:// or cgi://, and port must be present, ie:
-#   ##       "fcgi://10.0.0.12:9000/status"
-#   ##       "cgi://10.0.10.12:9001/status"
-#   ##
-#   ## Example of multiple gathering from local socket and remove host
-#   ## urls = ["http://192.168.1.20/status", "/tmp/fpm.sock"]
-#   urls = ["http://localhost/status"]
-
-
-# # Ping given url(s) and return statistics
-# [[inputs.ping]]
-#   ## NOTE: this plugin forks the ping command. You may need to set capabilities
-#   ## via setcap cap_net_raw+p /bin/ping
-#   #
-#   ## List of urls to ping
-#   urls = ["www.google.com"] # required
-#   ## number of pings to send per collection (ping -c <COUNT>)
-#   # count = 1
-#   ## interval, in s, at which to ping. 0 == default (ping -i <PING_INTERVAL>)
-#   # ping_interval = 1.0
-#   ## per-ping timeout, in s. 0 == no timeout (ping -W <TIMEOUT>)
-#   # timeout = 1.0
-#   ## interface to send ping from (ping -I <INTERFACE>)
-#   # interface = ""
-
-
-# # Read metrics from one or many postgresql servers
-# [[inputs.postgresql]]
-#   ## specify address via a url matching:
-#   ##   postgres://[pqgotest[:password]]@localhost[/dbname]\
-#   ##       ?sslmode=[disable|verify-ca|verify-full]
-#   ## or a simple string:
-#   ##   host=localhost user=pqotest password=... sslmode=... dbname=app_production
-#   ##
-#   ## All connection parameters are optional.
-#   ##
-#   ## Without the dbname parameter, the driver will default to a database
-#   ## with the same name as the user. This dbname is just for instantiating a
-#   ## connection with the server and doesn't restrict the databases we are trying
-#   ## to grab metrics for.
-#   ##
-#   address = "host=localhost user=postgres sslmode=disable"
-#
-#   ## A  list of databases to explicitly ignore.  If not specified, metrics for all
-#   ## databases are gathered.  Do NOT use with the 'databases' option.
-#   # ignored_databases = ["postgres", "template0", "template1"]
-#
-#   ## A list of databases to pull metrics about. If not specified, metrics for all
-#   ## databases are gathered.  Do NOT use with the 'ignored_databases' option.
-#   # databases = ["app_production", "testing"]
-
-
-# # Read metrics from one or many postgresql servers
-# [[inputs.postgresql_extensible]]
-#   ## specify address via a url matching:
-#   ##   postgres://[pqgotest[:password]]@localhost[/dbname]\
-#   ##       ?sslmode=[disable|verify-ca|verify-full]
-#   ## or a simple string:
-#   ##   host=localhost user=pqotest password=... sslmode=... dbname=app_production
-#   #
-#   ## All connection parameters are optional.  #
-#   ## Without the dbname parameter, the driver will default to a database
-#   ## with the same name as the user. This dbname is just for instantiating a
-#   ## connection with the server and doesn't restrict the databases we are trying
-#   ## to grab metrics for.
-#   #
-#   address = "host=localhost user=postgres sslmode=disable"
-#   ## A list of databases to pull metrics about. If not specified, metrics for all
-#   ## databases are gathered.
-#   ## databases = ["app_production", "testing"]
-#   #
-#   # outputaddress = "db01"
-#   ## A custom name for the database that will be used as the "server" tag in the
-#   ## measurement output. If not specified, a default one generated from
-#   ## the connection address is used.
-#   #
-#   ## Define the toml config where the sql queries are stored
-#   ## New queries can be added, if the withdbname is set to true and there is no
-#   ## databases defined in the 'databases field', the sql query is ended by a
-#   ## 'is not null' in order to make the query succeed.
-#   ## Example :
-#   ## The sqlquery : "SELECT * FROM pg_stat_database where datname" become
-#   ## "SELECT * FROM pg_stat_database where datname IN ('postgres', 'pgbench')"
-#   ## because the databases variable was set to ['postgres', 'pgbench' ] and the
-#   ## withdbname was true. Be careful that if the withdbname is set to false you
-#   ## don't have to define the where clause (aka with the dbname) the tagvalue
-#   ## field is used to define custom tags (separated by commas)
-#   ## The optional "measurement" value can be used to override the default
-#   ## output measurement name ("postgresql").
-#   #
-#   ## Structure :
-#   ## [[inputs.postgresql_extensible.query]]
-#   ##   sqlquery string
-#   ##   version string
-#   ##   withdbname boolean
-#   ##   tagvalue string (comma separated)
-#   ##   measurement string
-#   [[inputs.postgresql_extensible.query]]
-#     sqlquery="SELECT * FROM pg_stat_database"
-#     version=901
-#     withdbname=false
-#     tagvalue=""
-#     measurement=""
-#   [[inputs.postgresql_extensible.query]]
-#     sqlquery="SELECT * FROM pg_stat_bgwriter"
-#     version=901
-#     withdbname=false
-#     tagvalue="postgresql.stats"
-
-
-# # Read metrics from one or many PowerDNS servers
-# [[inputs.powerdns]]
-#   ## An array of sockets to gather stats about.
-#   ## Specify a path to unix socket.
-#   unix_sockets = ["/var/run/pdns.controlsocket"]
-
-
-# # Monitor process cpu and memory usage
-# [[inputs.procstat]]
-#   ## Must specify one of: pid_file, exe, or pattern
-#   ## PID file to monitor process
-#   pid_file = "/var/run/nginx.pid"
-#   ## executable name (ie, pgrep <exe>)
-#   # exe = "nginx"
-#   ## pattern as argument for pgrep (ie, pgrep -f <pattern>)
-#   # pattern = "nginx"
-#   ## user as argument for pgrep (ie, pgrep -u <user>)
-#   # user = "nginx"
-#
-#   ## override for process_name
-#   ## This is optional; default is sourced from /proc/<pid>/status
-#   # process_name = "bar"
-#   ## Field name prefix
-#   prefix = ""
-#   ## comment this out if you want raw cpu_time stats
-#   fielddrop = ["cpu_time_*"]
-#   ## This is optional; moves pid into a tag instead of a field
-#   pid_tag = false
-
-
-# # Read metrics from one or many prometheus clients
-# [[inputs.prometheus]]
-#   ## An array of urls to scrape metrics from.
-#   urls = ["http://localhost:9100/metrics"]
-#
-#   ## Use bearer token for authorization
-#   # bearer_token = /path/to/bearer/token
-#
-#   ## Specify timeout duration for slower prometheus clients (default is 3s)
-#   # response_timeout = "3s"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = /path/to/cafile
-#   # ssl_cert = /path/to/certfile
-#   # ssl_key = /path/to/keyfile
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-
-
-# # Reads last_run_summary.yaml file and converts to measurments
-# [[inputs.puppetagent]]
-#   ## Location of puppet last run summary file
-#   location = "/var/lib/puppet/state/last_run_summary.yaml"
-
-
-# # Reads metrics from RabbitMQ servers via the Management Plugin
-# [[inputs.rabbitmq]]
-#   ## Management Plugin url. (default: http://localhost:15672)
-#   # url = "http://localhost:15672"
-#   ## Tag added to rabbitmq_overview series; deprecated: use tags
-#   # name = "rmq-server-1"
-#   ## Credentials
-#   # username = "guest"
-#   # password = "guest"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Optional request timeouts
-#   ##
-#   ## ResponseHeaderTimeout, if non-zero, specifies the amount of time to wait
-#   ## for a server's response headers after fully writing the request.
-#   # header_timeout = "3s"
-#   ##
-#   ## client_timeout specifies a time limit for requests made by this client.
-#   ## Includes connection time, any redirects, and reading the response body.
-#   # client_timeout = "4s"
-#
-#   ## A list of nodes to pull metrics about. If not specified, metrics for
-#   ## all nodes are gathered.
-#   # nodes = ["rabbit@node1", "rabbit@node2"]
-
-
-# # Read raindrops stats (raindrops - real-time stats for preforking Rack servers)
-# [[inputs.raindrops]]
-#   ## An array of raindrops middleware URI to gather stats.
-#   urls = ["http://localhost:8080/_raindrops"]
-
-
-# # Read metrics from one or many redis servers
-# [[inputs.redis]]
-#   ## specify servers via a url matching:
-#   ##  [protocol://][:password]@address[:port]
-#   ##  e.g.
-#   ##    tcp://localhost:6379
-#   ##    tcp://:password@192.168.99.100
-#   ##    unix:///var/run/redis.sock
-#   ##
-#   ## If no servers are specified, then localhost is used as the host.
-#   ## If no port is specified, 6379 is used
-#   servers = ["tcp://localhost:6379"]
-
-
-# # Read metrics from one or many RethinkDB servers
-# [[inputs.rethinkdb]]
-#   ## An array of URI to gather stats about. Specify an ip or hostname
-#   ## with optional port add password. ie,
-#   ##   rethinkdb://user:auth_key@10.10.3.30:28105,
-#   ##   rethinkdb://10.10.3.33:18832,
-#   ##   10.0.0.1:10000, etc.
-#   servers = ["127.0.0.1:28015"]
-
-
-# # Read metrics one or many Riak servers
-# [[inputs.riak]]
-#   # Specify a list of one or more riak http servers
-#   servers = ["http://localhost:8098"]
-
-
-# # Retrieves SNMP values from remote agents
-# [[inputs.snmp]]
-#   agents = [ "127.0.0.1:161" ]
-#   ## Timeout for each SNMP query.
-#   timeout = "5s"
-#   ## Number of retries to attempt within timeout.
-#   retries = 3
-#   ## SNMP version, values can be 1, 2, or 3
-#   version = 2
-#
-#   ## SNMP community string.
-#   community = "public"
-#
-#   ## The GETBULK max-repetitions parameter
-#   max_repetitions = 10
-#
-#   ## SNMPv3 auth parameters
-#   #sec_name = "myuser"
-#   #auth_protocol = "md5"      # Values: "MD5", "SHA", ""
-#   #auth_password = "pass"
-#   #sec_level = "authNoPriv"   # Values: "noAuthNoPriv", "authNoPriv", "authPriv"
-#   #context_name = ""
-#   #priv_protocol = ""         # Values: "DES", "AES", ""
-#   #priv_password = ""
-#
-#   ## measurement name
-#   name = "system"
-#   [[inputs.snmp.field]]
-#     name = "hostname"
-#     oid = ".1.0.0.1.1"
-#   [[inputs.snmp.field]]
-#     name = "uptime"
-#     oid = ".1.0.0.1.2"
-#   [[inputs.snmp.field]]
-#     name = "load"
-#     oid = ".1.0.0.1.3"
-#   [[inputs.snmp.field]]
-#     oid = "HOST-RESOURCES-MIB::hrMemorySize"
-#
-#   [[inputs.snmp.table]]
-#     ## measurement name
-#     name = "remote_servers"
-#     inherit_tags = [ "hostname" ]
-#     [[inputs.snmp.table.field]]
-#       name = "server"
-#       oid = ".1.0.0.0.1.0"
-#       is_tag = true
-#     [[inputs.snmp.table.field]]
-#       name = "connections"
-#       oid = ".1.0.0.0.1.1"
-#     [[inputs.snmp.table.field]]
-#       name = "latency"
-#       oid = ".1.0.0.0.1.2"
-#
-#   [[inputs.snmp.table]]
-#     ## auto populate table's fields using the MIB
-#     oid = "HOST-RESOURCES-MIB::hrNetworkTable"
-
-
-# # DEPRECATED! PLEASE USE inputs.snmp INSTEAD.
-# [[inputs.snmp_legacy]]
-#   ## Use 'oids.txt' file to translate oids to names
-#   ## To generate 'oids.txt' you need to run:
-#   ##   snmptranslate -m all -Tz -On | sed -e 's/"//g' > /tmp/oids.txt
-#   ## Or if you have an other MIB folder with custom MIBs
-#   ##   snmptranslate -M /mycustommibfolder -Tz -On -m all | sed -e 's/"//g' > oids.txt
-#   snmptranslate_file = "/tmp/oids.txt"
-#   [[inputs.snmp.host]]
-#     address = "192.168.2.2:161"
-#     # SNMP community
-#     community = "public" # default public
-#     # SNMP version (1, 2 or 3)
-#     # Version 3 not supported yet
-#     version = 2 # default 2
-#     # SNMP response timeout
-#     timeout = 2.0 # default 2.0
-#     # SNMP request retries
-#     retries = 2 # default 2
-#     # Which get/bulk do you want to collect for this host
-#     collect = ["mybulk", "sysservices", "sysdescr"]
-#     # Simple list of OIDs to get, in addition to "collect"
-#     get_oids = []
-#
-#   [[inputs.snmp.host]]
-#     address = "192.168.2.3:161"
-#     community = "public"
-#     version = 2
-#     timeout = 2.0
-#     retries = 2
-#     collect = ["mybulk"]
-#     get_oids = [
-#         "ifNumber",
-#         ".1.3.6.1.2.1.1.3.0",
-#     ]
-#
-#   [[inputs.snmp.get]]
-#     name = "ifnumber"
-#     oid = "ifNumber"
-#
-#   [[inputs.snmp.get]]
-#     name = "interface_speed"
-#     oid = "ifSpeed"
-#     instance = "0"
-#
-#   [[inputs.snmp.get]]
-#     name = "sysuptime"
-#     oid = ".1.3.6.1.2.1.1.3.0"
-#     unit = "second"
-#
-#   [[inputs.snmp.bulk]]
-#     name = "mybulk"
-#     max_repetition = 127
-#     oid = ".1.3.6.1.2.1.1"
-#
-#   [[inputs.snmp.bulk]]
-#     name = "ifoutoctets"
-#     max_repetition = 127
-#     oid = "ifOutOctets"
-#
-#   [[inputs.snmp.host]]
-#     address = "192.168.2.13:161"
-#     #address = "127.0.0.1:161"
-#     community = "public"
-#     version = 2
-#     timeout = 2.0
-#     retries = 2
-#     #collect = ["mybulk", "sysservices", "sysdescr", "systype"]
-#     collect = ["sysuptime" ]
-#     [[inputs.snmp.host.table]]
-#       name = "iftable3"
-#       include_instances = ["enp5s0", "eth1"]
-#
-#   # SNMP TABLEs
-#   # table without mapping neither subtables
-#   [[inputs.snmp.table]]
-#     name = "iftable1"
-#     oid = ".1.3.6.1.2.1.31.1.1.1"
-#
-#   # table without mapping but with subtables
-#   [[inputs.snmp.table]]
-#     name = "iftable2"
-#     oid = ".1.3.6.1.2.1.31.1.1.1"
-#     sub_tables = [".1.3.6.1.2.1.2.2.1.13"]
-#
-#   # table with mapping but without subtables
-#   [[inputs.snmp.table]]
-#     name = "iftable3"
-#     oid = ".1.3.6.1.2.1.31.1.1.1"
-#     # if empty. get all instances
-#     mapping_table = ".1.3.6.1.2.1.31.1.1.1.1"
-#     # if empty, get all subtables
-#
-#   # table with both mapping and subtables
-#   [[inputs.snmp.table]]
-#     name = "iftable4"
-#     oid = ".1.3.6.1.2.1.31.1.1.1"
-#     # if empty get all instances
-#     mapping_table = ".1.3.6.1.2.1.31.1.1.1.1"
-#     # if empty get all subtables
-#     # sub_tables could be not "real subtables"
-#     sub_tables=[".1.3.6.1.2.1.2.2.1.13", "bytes_recv", "bytes_send"]
-
-
-# # Read metrics from Microsoft SQL Server
-# [[inputs.sqlserver]]
-#   ## Specify instances to monitor with a list of connection strings.
-#   ## All connection parameters are optional.
-#   ## By default, the host is localhost, listening on default port, TCP 1433.
-#   ##   for Windows, the user is the currently running AD user (SSO).
-#   ##   See https://github.com/denisenkom/go-mssqldb for detailed connection
-#   ##   parameters.
-#   # servers = [
-#   #  "Server=192.168.1.10;Port=1433;User Id=<user>;Password=<pw>;app name=telegraf;log=1;",
-#   # ]
-
-
-# # Inserts sine and cosine waves for demonstration purposes
-# [[inputs.trig]]
-#   ## Set the amplitude
-#   amplitude = 10.0
-
-
-# # Read Twemproxy stats data
-# [[inputs.twemproxy]]
-#   ## Twemproxy stats address and port (no scheme)
-#   addr = "localhost:22222"
-#   ## Monitor pool name
-#   pools = ["redis_pool", "mc_pool"]
-
-
-# # A plugin to collect stats from Varnish HTTP Cache
-# [[inputs.varnish]]
-#   ## The default location of the varnishstat binary can be overridden with:
-#   binary = "/usr/bin/varnishstat"
-#
-#   ## By default, telegraf gather stats for 3 metric points.
-#   ## Setting stats will override the defaults shown below.
-#   ## Glob matching can be used, ie, stats = ["MAIN.*"]
-#   ## stats may also be set to ["*"], which will collect all stats
-#   stats = ["MAIN.cache_hit", "MAIN.cache_miss", "MAIN.uptime"]
-
-
-# # Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, and pools
-# [[inputs.zfs]]
-#   ## ZFS kstat path. Ignored on FreeBSD
-#   ## If not specified, then default is:
-#   # kstatPath = "/proc/spl/kstat/zfs"
-#
-#   ## By default, telegraf gather all zfs stats
-#   ## If not specified, then default is:
-#   # kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"]
-#
-#   ## By default, don't gather zpool stats
-#   # poolMetrics = false
-
-
-# # Reads 'mntr' stats from one or many zookeeper servers
-# [[inputs.zookeeper]]
-#   ## An array of address to gather stats about. Specify an ip or hostname
-#   ## with port. ie localhost:2181, 10.0.0.1:2181, etc.
-#
-#   ## If no servers are specified, then localhost is used as the host.
-#   ## If no port is specified, 2181 is used
-#   servers = [":2181"]
-
-
-
-###############################################################################
-#                            SERVICE INPUT PLUGINS                            #
-###############################################################################
-
-# # AMQP consumer plugin
-# [[inputs.amqp_consumer]]
-#   ## AMQP url
-#   url = "amqp://localhost:5672/influxdb"
-#   ## AMQP exchange
-#   exchange = "telegraf"
-#   ## AMQP queue name
-#   queue = "telegraf"
-#   ## Binding Key
-#   binding_key = "#"
-#
-#   ## Maximum number of messages server should give to the worker.
-#   prefetch_count = 50
-#
-#   ## Auth method. PLAIN and EXTERNAL are supported
-#   ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as
-#   ## described here: https://www.rabbitmq.com/plugins.html
-#   # auth_method = "PLAIN"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Data format to output.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
-#   data_format = "influx"
-
-
-# # Influx HTTP write listener
-# [[inputs.http_listener]]
-#   ## Address and port to host HTTP listener on
-#   service_address = ":8186"
-#
-#   ## maximum duration before timing out read of the request
-#   read_timeout = "10s"
-#   ## maximum duration before timing out write of the response
-#   write_timeout = "10s"
-#
-#   ## Maximum allowed http request body size in bytes.
-#   ## 0 means to use the default of 536,870,912 bytes (500 mebibytes)
-#   max_body_size = 0
-#
-#   ## Maximum line size allowed to be sent in bytes.
-#   ## 0 means to use the default of 65536 bytes (64 kibibytes)
-#   max_line_size = 0
-
-
-# # Read metrics from Kafka topic(s)
-# [[inputs.kafka_consumer]]
-#   ## topic(s) to consume
-#   topics = ["telegraf"]
-#   ## an array of Zookeeper connection strings
-#   zookeeper_peers = ["localhost:2181"]
-#   ## Zookeeper Chroot
-#   zookeeper_chroot = ""
-#   ## the name of the consumer group
-#   consumer_group = "telegraf_metrics_consumers"
-#   ## Offset (must be either "oldest" or "newest")
-#   offset = "oldest"
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   data_format = "influx"
-#
-#   ## Maximum length of a message to consume, in bytes (default 0/unlimited);
-#   ## larger messages are dropped
-#   max_message_len = 65536
-
-
-# # Stream and parse log file(s).
-# [[inputs.logparser]]
-#   ## Log files to parse.
-#   ## These accept standard unix glob matching rules, but with the addition of
-#   ## ** as a "super asterisk". ie:
-#   ##   /var/log/**.log     -> recursively find all .log files in /var/log
-#   ##   /var/log/*/*.log    -> find all .log files with a parent dir in /var/log
-#   ##   /var/log/apache.log -> only tail the apache log file
-#   files = ["/var/log/apache/access.log"]
-#
-#   ## Read files that currently exist from the beginning. Files that are created
-#   ## while telegraf is running (and that match the "files" globs) will always
-#   ## be read from the beginning.
-#   from_beginning = false
-#
-#   ## Parse logstash-style "grok" patterns:
-#   ##   Telegraf built-in parsing patterns: https://goo.gl/dkay10
-#   [inputs.logparser.grok]
-#     ## This is a list of patterns to check the given log file(s) for.
-#     ## Note that adding patterns here increases processing time. The most
-#     ## efficient configuration is to have one pattern per logparser.
-#     ## Other common built-in patterns are:
-#     ##   %{COMMON_LOG_FORMAT}   (plain apache & nginx access logs)
-#     ##   %{COMBINED_LOG_FORMAT} (access logs + referrer & agent)
-#     patterns = ["%{COMBINED_LOG_FORMAT}"]
-#     ## Name of the outputted measurement name.
-#     measurement = "apache_access_log"
-#     ## Full path(s) to custom pattern files.
-#     custom_pattern_files = []
-#     ## Custom patterns can also be defined here. Put one pattern per line.
-#     custom_patterns = '''
-#     '''
-
-
-# # Read metrics from MQTT topic(s)
-# [[inputs.mqtt_consumer]]
-#   servers = ["localhost:1883"]
-#   ## MQTT QoS, must be 0, 1, or 2
-#   qos = 0
-#
-#   ## Topics to subscribe to
-#   topics = [
-#     "telegraf/host01/cpu",
-#     "telegraf/+/mem",
-#     "sensors/#",
-#   ]
-#
-#   # if true, messages that can't be delivered while the subscriber is offline
-#   # will be delivered when it comes back (such as on service restart).
-#   # NOTE: if true, client_id MUST be set
-#   persistent_session = false
-#   # If empty, a random client ID will be generated.
-#   client_id = ""
-#
-#   ## username and password to connect MQTT server.
-#   # username = "telegraf"
-#   # password = "metricsmetricsmetricsmetrics"
-#
-#   ## Optional SSL Config
-#   # ssl_ca = "/etc/telegraf/ca.pem"
-#   # ssl_cert = "/etc/telegraf/cert.pem"
-#   # ssl_key = "/etc/telegraf/key.pem"
-#   ## Use SSL but skip chain & host verification
-#   # insecure_skip_verify = false
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   data_format = "influx"
-
-
-# # Read metrics from NATS subject(s)
-# [[inputs.nats_consumer]]
-#   ## urls of NATS servers
-#   # servers = ["nats://localhost:4222"]
-#   ## Use Transport Layer Security
-#   # secure = false
-#   ## subject(s) to consume
-#   # subjects = ["telegraf"]
-#   ## name a queue group
-#   # queue_group = "telegraf_consumers"
-#
-#   ## Sets the limits for pending msgs and bytes for each subscription
-#   ## These shouldn't need to be adjusted except in very high throughput scenarios
-#   # pending_message_limit = 65536
-#   # pending_bytes_limit = 67108864
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   data_format = "influx"
-
-
-# # Read NSQ topic for metrics.
-# [[inputs.nsq_consumer]]
-#   ## An string representing the NSQD TCP Endpoint
-#   server = "localhost:4150"
-#   topic = "telegraf"
-#   channel = "consumer"
-#   max_in_flight = 100
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   data_format = "influx"
-
-
-# # Generic socket listener capable of handling multiple socket types.
-# [[inputs.socket_listener]]
-#   ## URL to listen on
-#   # service_address = "tcp://:8094"
-#   # service_address = "tcp://127.0.0.1:http"
-#   # service_address = "tcp4://:8094"
-#   # service_address = "tcp6://:8094"
-#   # service_address = "tcp6://[2001:db8::1]:8094"
-#   # service_address = "udp://:8094"
-#   # service_address = "udp4://:8094"
-#   # service_address = "udp6://:8094"
-#   # service_address = "unix:///tmp/telegraf.sock"
-#   # service_address = "unixgram:///tmp/telegraf.sock"
-#
-#   ## Maximum number of concurrent connections.
-#   ## Only applies to stream sockets (e.g. TCP).
-#   ## 0 (default) is unlimited.
-#   # max_connections = 1024
-#
-#   ## Maximum socket buffer size in bytes.
-#   ## For stream sockets, once the buffer fills up, the sender will start backing up.
-#   ## For datagram sockets, once the buffer fills up, metrics will start dropping.
-#   ## Defaults to the OS default.
-#   # read_buffer_size = 65535
-#
-#   ## Period between keep alive probes.
-#   ## Only applies to TCP sockets.
-#   ## 0 disables keep alive probes.
-#   ## Defaults to the OS configuration.
-#   # keep_alive_period = "5m"
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   # data_format = "influx"
-
-
-# # Statsd Server
-# [[inputs.statsd]]
-#   ## Address and port to host UDP listener on
-#   service_address = ":8125"
-#
-#   ## The following configuration options control when telegraf clears it's cache
-#   ## of previous values. If set to false, then telegraf will only clear it's
-#   ## cache when the daemon is restarted.
-#   ## Reset gauges every interval (default=true)
-#   delete_gauges = true
-#   ## Reset counters every interval (default=true)
-#   delete_counters = true
-#   ## Reset sets every interval (default=true)
-#   delete_sets = true
-#   ## Reset timings & histograms every interval (default=true)
-#   delete_timings = true
-#
-#   ## Percentiles to calculate for timing & histogram stats
-#   percentiles = [90]
-#
-#   ## separator to use between elements of a statsd metric
-#   metric_separator = "_"
-#
-#   ## Parses tags in the datadog statsd format
-#   ## http://docs.datadoghq.com/guides/dogstatsd/
-#   parse_data_dog_tags = false
-#
-#   ## Statsd data translation templates, more info can be read here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md#graphite
-#   # templates = [
-#   #     "cpu.* measurement*"
-#   # ]
-#
-#   ## Number of UDP messages allowed to queue up, once filled,
-#   ## the statsd server will start dropping packets
-#   allowed_pending_messages = 10000
-#
-#   ## Number of timing/histogram values to track per-measurement in the
-#   ## calculation of percentiles. Raising this limit increases the accuracy
-#   ## of percentiles but also increases the memory usage and cpu time.
-#   percentile_limit = 1000
-
-
-# # Stream a log file, like the tail -f command
-# [[inputs.tail]]
-#   ## files to tail.
-#   ## These accept standard unix glob matching rules, but with the addition of
-#   ## ** as a "super asterisk". ie:
-#   ##   "/var/log/**.log"  -> recursively find all .log files in /var/log
-#   ##   "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log
-#   ##   "/var/log/apache.log" -> just tail the apache log file
-#   ##
-#   ## See https://github.com/gobwas/glob for more examples
-#   ##
-#   files = ["/var/mymetrics.out"]
-#   ## Read file from beginning.
-#   from_beginning = false
-#   ## Whether file is a named pipe
-#   pipe = false
-#
-#   ## Data format to consume.
-#   ## Each data format has its own unique set of configuration options, read
-#   ## more about them here:
-#   ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
-#   data_format = "influx"
-
-
-# # Generic TCP listener
-# [[inputs.tcp_listener]]
-#   # DEPRECATED: the TCP listener plugin has been deprecated in favor of the
-#   # socket_listener plugin
-#   # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener
-
-
-# # Generic UDP listener
-# [[inputs.udp_listener]]
-#   # DEPRECATED: the TCP listener plugin has been deprecated in favor of the
-#   # socket_listener plugin
-#   # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener
-
-
-# # A Webhooks Event collector
-[[inputs.webhooks]]
-#   ## Address and port to host Webhook listener on
-   service_address = ":1619"
-#
-#   [inputs.webhooks.filestack]
-#     path = "/filestack"
-#
-#   [inputs.webhooks.github]
-#     path = "/github"
-#     # secret = ""
-#
-#   [inputs.webhooks.mandrill]
-#     path = "/mandrill"
-#
-#   [inputs.webhooks.rollbar]
-#     path = "/rollbar"
-#
-#   [inputs.webhooks.papertrail]
-#     path = "/papertrail"
-    [inputs.webhooks.particle]
-      path = "/particle"
-- 
GitLab