diff --git a/CHANGELOG.md b/CHANGELOG.md
index d35fd20d6af94d30a01591abeb22b7fc7c930b9d..e04b4625b990bdf48c8dc80988973fdfc4cc1c78 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 ## v1.7 [unreleased]
 
+### Release Notes
+
+- The `cassandra` input plugin has been deprecated in favor of the `jolokia2`
+  input plugin which is much more configurable and more performant.  There is
+  an [example configuration](./plugins/inputs/jolokia2/examples) to help you
+  get started.
+
 ### New Inputs
 
 - [fibaro](./plugins/inputs/fibaro/README.md) - Contributed by @dynek
diff --git a/README.md b/README.md
index 63f3373e58df134978f2c5c901a5801b2ccbd600..d1691698aafca9e22f87edad10bd0a3fd7597a23 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ and writing metrics.
 
 Design goals are to have a minimal memory footprint with a plugin system so
 that developers in the community can easily add support for collecting metrics
-from local or remote services.
+.  For an example configuration referencet from local or remote services.
 
 Telegraf is plugin-driven and has the concept of 4 distinct plugins:
 
@@ -130,7 +130,7 @@ configuration options.
 * [aws cloudwatch](./plugins/inputs/cloudwatch)
 * [bcache](./plugins/inputs/bcache)
 * [bond](./plugins/inputs/bond)
-* [cassandra](./plugins/inputs/cassandra)
+* [cassandra](./plugins/inputs/cassandra) (deprecated, use [jolokia2](./plugins/inputs/jolokia2))
 * [ceph](./plugins/inputs/ceph)
 * [cgroup](./plugins/inputs/cgroup)
 * [chrony](./plugins/inputs/chrony)
@@ -163,7 +163,7 @@ configuration options.
 * [iptables](./plugins/inputs/iptables)
 * [ipset](./plugins/inputs/ipset)
 * [jolokia](./plugins/inputs/jolokia) (deprecated, use [jolokia2](./plugins/inputs/jolokia2))
-* [jolokia2](./plugins/inputs/jolokia2)
+* [jolokia2](./plugins/inputs/jolokia2) (java, cassandra, kafka)
 * [kapacitor](./plugins/inputs/kapacitor)
 * [kubernetes](./plugins/inputs/kubernetes)
 * [leofs](./plugins/inputs/leofs)
diff --git a/plugins/inputs/cassandra/README.md b/plugins/inputs/cassandra/README.md
index edcef08c4b41d71b7b3eb11e58604e229eb09448..2f3fd928b7aa15702d111461b11a15a48ddaeb10 100644
--- a/plugins/inputs/cassandra/README.md
+++ b/plugins/inputs/cassandra/README.md
@@ -1,5 +1,8 @@
+
 # Telegraf plugin: Cassandra
 
+### **Deprecated in version 1.7**: Please use the [jolokia2](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2) plugin with the [cassandra.conf](/influxdata/telegraf/blob/master/plugins/inputs/jolokia2/examples/cassandra.conf) example configuration.
+
 #### Plugin arguments:
 - **context** string: Context root used for jolokia url
 - **servers** []string: List of servers with the format "<user:passwd@><host>:port"
diff --git a/plugins/inputs/cassandra/cassandra.go b/plugins/inputs/cassandra/cassandra.go
index 541edf16c74ea08dab82506bf8adfeba60c4ec7a..6f6f86e32f592db99fbd8ee558f3d3bf86bf4dcd 100644
--- a/plugins/inputs/cassandra/cassandra.go
+++ b/plugins/inputs/cassandra/cassandra.go
@@ -5,6 +5,7 @@ import (
 	"errors"
 	"fmt"
 	"io/ioutil"
+	"log"
 	"net/http"
 	"net/url"
 	"strings"
@@ -174,7 +175,11 @@ func (c cassandraMetric) addTagsFields(out map[string]interface{}) {
 
 func (j *Cassandra) SampleConfig() string {
 	return `
-  # This is the context root used to compose the jolokia url
+  ## DEPRECATED: The cassandra plugin has been deprecated.  Please use the
+  ## jolokia2 plugin instead.
+  ##
+  ## see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2
+
   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"]
@@ -258,6 +263,16 @@ func parseServerTokens(server string) map[string]string {
 	return serverTokens
 }
 
+func (c *Cassandra) Start(acc telegraf.Accumulator) error {
+	log.Println("W! DEPRECATED: The cassandra plugin has been deprecated. " +
+		"Please use the jolokia2 plugin instead. " +
+		"https://github.com/influxdata/telegraf/tree/master/plugins/inputs/jolokia2")
+	return nil
+}
+
+func (c *Cassandra) Stop() {
+}
+
 func (c *Cassandra) Gather(acc telegraf.Accumulator) error {
 	context := c.Context
 	servers := c.Servers
diff --git a/plugins/inputs/jolokia2/README.md b/plugins/inputs/jolokia2/README.md
index 0ab985e5b76f4257717cca4439171552503d1fd3..15fbb233f850574e8287c92fca7259c83ab5b930 100644
--- a/plugins/inputs/jolokia2/README.md
+++ b/plugins/inputs/jolokia2/README.md
@@ -2,7 +2,9 @@
 
 The [Jolokia](http://jolokia.org) _agent_ and _proxy_ input plugins collect JMX metrics from an HTTP endpoint using Jolokia's [JSON-over-HTTP protocol](https://jolokia.org/reference/html/protocol.html).
 
-## Jolokia Agent Configuration
+### Configuration:
+
+#### Jolokia Agent Configuration
 
 The `jolokia2_agent` input plugin reads JMX metrics from one or more [Jolokia agent](https://jolokia.org/agent/jvm.html) REST endpoints.
 
@@ -32,7 +34,7 @@ Optionally, specify SSL options for communicating with agents:
     paths = ["Uptime"]
 ```
 
-## Jolokia Proxy Configuration
+#### Jolokia Proxy Configuration
 
 The `jolokia2_proxy` input plugin reads JMX metrics from one or more _targets_ by interacting with a [Jolokia proxy](https://jolokia.org/features/proxy.html) REST endpoint.
 
@@ -77,7 +79,7 @@ Optionally, specify SSL options for communicating with proxies:
     paths = ["Uptime"]
 ```
 
-## Jolokia Metric Configuration
+#### Jolokia Metric Configuration
 
 Each `metric` declaration generates a Jolokia request to fetch telemetry from a JMX MBean.
 
@@ -167,3 +169,11 @@ Both `jolokia2_agent` and `jolokia2_proxy` plugins support default configuration
 | `default_field_separator` | `.`           | A character to use to join Mbean attributes when creating fields. |
 | `default_field_prefix`    | _None_        | A string to prepend to the field names produced by all `metric` declarations. |
 | `default_tag_prefix`      | _None_        | A string to prepend to the tag names produced by all `metric` declarations. |
+
+### Example Configurations:
+
+- [Java JVM](/influxdata/telegraf/blob/master/plugins/inputs/jolokia2/examples/java.conf)
+- [Kafka](/influxdata/telegraf/blob/master/plugins/inputs/jolokia2/examples/kafka.conf)
+- [Cassandra](/influxdata/telegraf/blob/master/plugins/inputs/jolokia2/examples/cassandra.conf)
+
+Please help improve this list and contribute new configuration files by opening an issue or pull request.
diff --git a/plugins/inputs/jolokia2/examples/cassandra.conf b/plugins/inputs/jolokia2/examples/cassandra.conf
new file mode 100644
index 0000000000000000000000000000000000000000..3a419a6dff8eb8ea99bd98d4f1eb2557387a625b
--- /dev/null
+++ b/plugins/inputs/jolokia2/examples/cassandra.conf
@@ -0,0 +1,85 @@
+[[inputs.jolokia2_agent]]
+  urls = ["http://localhost:8778/jolokia"]
+  name_prefix = "java_"
+
+  [[inputs.jolokia2_agent.metrics]]
+    name  = "Memory"
+    mbean = "java.lang:type=Memory"
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "GarbageCollector"
+    mbean = "java.lang:name=*,type=GarbageCollector"
+    tag_keys = ["name"]
+
+[[inputs.jolokia2_agent]]
+  urls = ["http://localhost:8778/jolokia"]
+  name_prefix = "cassandra_"
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "Cache"
+    mbean = "org.apache.cassandra.metrics:name=*,scope=*,type=Cache"
+    tag_keys = ["name", "scope"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "Client"
+    mbean = "org.apache.cassandra.metrics:name=*,type=Client"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "ClientRequestMetrics"
+    mbean = "org.apache.cassandra.metrics:name=*,type=ClientRequestMetrics"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "ClientRequest"
+    mbean = "org.apache.cassandra.metrics:name=*,scope=*,type=ClientRequest"
+    tag_keys = ["name", "scope"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "ColumnFamily"
+    mbean = "org.apache.cassandra.metrics:keyspace=*,name=*,scope=*,type=ColumnFamily"
+    tag_keys = ["keyspace", "name", "scope"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "CommitLog"
+    mbean = "org.apache.cassandra.metrics:name=*,type=CommitLog"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "Compaction"
+    mbean = "org.apache.cassandra.metrics:name=*,type=Compaction"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "CQL"
+    mbean = "org.apache.cassandra.metrics:name=*,type=CQL"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "DroppedMessage"
+    mbean = "org.apache.cassandra.metrics:name=*,scope=*,type=DroppedMessage"
+    tag_keys = ["name", "scope"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "FileCache"
+    mbean = "org.apache.cassandra.metrics:name=*,type=FileCache"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "ReadRepair"
+    mbean = "org.apache.cassandra.metrics:name=*,type=ReadRepair"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "HintedHandoffManager"
+    mbean = "org.apache.cassandra.metrics:type=HintedHandoffManager"
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "Storage"
+    mbean = "org.apache.cassandra.metrics:name=*,type=Storage"
+    tag_keys = ["name"]
+
+  [[inputs.jolokia2_agent.metric]]
+    name  = "ThreadPools"
+    mbean = "org.apache.cassandra.metrics:name=*,path=*,scope=*,type=ThreadPools"
+    tag_keys = ["name", "path", "scope"]
diff --git a/plugins/inputs/jolokia2/jolokia_proxy.go b/plugins/inputs/jolokia2/jolokia_proxy.go
index f19a74e84a7b5af15c3ccd697f92b070db017b26..c9474871fc0682a76461406854371628a18fbcf4 100644
--- a/plugins/inputs/jolokia2/jolokia_proxy.go
+++ b/plugins/inputs/jolokia2/jolokia_proxy.go
@@ -56,13 +56,13 @@ func (jp *JolokiaProxy) SampleConfig() string {
   ## Add proxy targets to query
   # default_target_username = ""
   # default_target_password = ""
-  [[inputs.jolokia_proxy.target]]
+  [[inputs.jolokia2_proxy.target]]
     url = "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi"
-	# username = ""
-	# password = ""
+    # username = ""
+    # password = ""
 
   ## Add metrics to read
-  [[inputs.jolokia_proxy.metric]]
+  [[inputs.jolokia2_proxy.metric]]
     name  = "java_runtime"
     mbean = "java.lang:type=Runtime"
     paths = ["Uptime"]