From 9db30250c345909e58fb6b8e43b512408395cd43 Mon Sep 17 00:00:00 2001
From: Cameron Sparr <cameronsparr@gmail.com>
Date: Wed, 23 Nov 2016 12:21:17 +0000
Subject: [PATCH] 'discard' output plugin

---
 CHANGELOG.md                       |  1 +
 README.md                          |  1 +
 plugins/outputs/all/all.go         |  1 +
 plugins/outputs/discard/README.md  | 12 ++++++++++++
 plugins/outputs/discard/discard.go | 18 ++++++++++++++++++
 5 files changed, 33 insertions(+)
 create mode 100644 plugins/outputs/discard/README.md
 create mode 100644 plugins/outputs/discard/discard.go

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 157c8d47..9da2ba0d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
 
 - [#1564](https://github.com/influxdata/telegraf/issues/1564): Use RFC3339 timestamps in log output.
 - [#1997](https://github.com/influxdata/telegraf/issues/1997): Non-default HTTP timeouts for RabbitMQ plugin.
+- [#2074](https://github.com/influxdata/telegraf/pull/2074): "discard" output plugin added, primarily for testing purposes.
 
 ### Bugfixes
 
diff --git a/README.md b/README.md
index 92ebf19e..6577eafc 100644
--- a/README.md
+++ b/README.md
@@ -245,6 +245,7 @@ Telegraf can also collect metrics via the following service plugins:
 * [aws kinesis](./plugins/outputs/kinesis)
 * [aws cloudwatch](./plugins/outputs/cloudwatch)
 * [datadog](./plugins/outputs/datadog)
+* [discard](./plugins/outputs/discard)
 * [file](./plugins/outputs/file)
 * [graphite](./plugins/outputs/graphite)
 * [graylog](./plugins/outputs/graylog)
diff --git a/plugins/outputs/all/all.go b/plugins/outputs/all/all.go
index 28354e7e..96091b2a 100644
--- a/plugins/outputs/all/all.go
+++ b/plugins/outputs/all/all.go
@@ -5,6 +5,7 @@ import (
 	_ "github.com/influxdata/telegraf/plugins/outputs/amqp"
 	_ "github.com/influxdata/telegraf/plugins/outputs/cloudwatch"
 	_ "github.com/influxdata/telegraf/plugins/outputs/datadog"
+	_ "github.com/influxdata/telegraf/plugins/outputs/discard"
 	_ "github.com/influxdata/telegraf/plugins/outputs/file"
 	_ "github.com/influxdata/telegraf/plugins/outputs/graphite"
 	_ "github.com/influxdata/telegraf/plugins/outputs/graylog"
diff --git a/plugins/outputs/discard/README.md b/plugins/outputs/discard/README.md
new file mode 100644
index 00000000..e1c70b74
--- /dev/null
+++ b/plugins/outputs/discard/README.md
@@ -0,0 +1,12 @@
+# discard Output Plugin
+
+This output plugin simply drops all metrics that are sent to it. It is only
+meant to be used for testing purposes.
+
+### Configuration:
+
+```toml
+# Send metrics to nowhere at all
+[[outputs.discard]]
+  # no configuration
+```
diff --git a/plugins/outputs/discard/discard.go b/plugins/outputs/discard/discard.go
new file mode 100644
index 00000000..4a6d634b
--- /dev/null
+++ b/plugins/outputs/discard/discard.go
@@ -0,0 +1,18 @@
+package discard
+
+import (
+	"github.com/influxdata/telegraf"
+	"github.com/influxdata/telegraf/plugins/outputs"
+)
+
+type Discard struct{}
+
+func (d *Discard) Connect() error                        { return nil }
+func (d *Discard) Close() error                          { return nil }
+func (d *Discard) SampleConfig() string                  { return "" }
+func (d *Discard) Description() string                   { return "Send metrics to nowhere at all" }
+func (d *Discard) Write(metrics []telegraf.Metric) error { return nil }
+
+func init() {
+	outputs.Add("discard", func() telegraf.Output { return &Discard{} })
+}
-- 
GitLab