Deprecate the cassandra input plugin (#4050)

This commit is contained in:
Daniel Nelson 2018-04-23 15:06:26 -07:00 committed by GitHub
parent 86a3b8cad4
commit 911f0e4b57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 131 additions and 11 deletions

View File

@ -1,5 +1,12 @@
## v1.7 [unreleased] ## 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 ### New Inputs
- [fibaro](./plugins/inputs/fibaro/README.md) - Contributed by @dynek - [fibaro](./plugins/inputs/fibaro/README.md) - Contributed by @dynek

View File

@ -5,7 +5,7 @@ and writing metrics.
Design goals are to have a minimal memory footprint with a plugin system so 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 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: Telegraf is plugin-driven and has the concept of 4 distinct plugins:
@ -130,7 +130,7 @@ configuration options.
* [aws cloudwatch](./plugins/inputs/cloudwatch) * [aws cloudwatch](./plugins/inputs/cloudwatch)
* [bcache](./plugins/inputs/bcache) * [bcache](./plugins/inputs/bcache)
* [bond](./plugins/inputs/bond) * [bond](./plugins/inputs/bond)
* [cassandra](./plugins/inputs/cassandra) * [cassandra](./plugins/inputs/cassandra) (deprecated, use [jolokia2](./plugins/inputs/jolokia2))
* [ceph](./plugins/inputs/ceph) * [ceph](./plugins/inputs/ceph)
* [cgroup](./plugins/inputs/cgroup) * [cgroup](./plugins/inputs/cgroup)
* [chrony](./plugins/inputs/chrony) * [chrony](./plugins/inputs/chrony)
@ -163,7 +163,7 @@ configuration options.
* [iptables](./plugins/inputs/iptables) * [iptables](./plugins/inputs/iptables)
* [ipset](./plugins/inputs/ipset) * [ipset](./plugins/inputs/ipset)
* [jolokia](./plugins/inputs/jolokia) (deprecated, use [jolokia2](./plugins/inputs/jolokia2)) * [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) * [kapacitor](./plugins/inputs/kapacitor)
* [kubernetes](./plugins/inputs/kubernetes) * [kubernetes](./plugins/inputs/kubernetes)
* [leofs](./plugins/inputs/leofs) * [leofs](./plugins/inputs/leofs)

View File

@ -1,5 +1,8 @@
# Telegraf plugin: Cassandra # 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: #### Plugin arguments:
- **context** string: Context root used for jolokia url - **context** string: Context root used for jolokia url
- **servers** []string: List of servers with the format "<user:passwd@><host>:port" - **servers** []string: List of servers with the format "<user:passwd@><host>:port"

View File

@ -5,6 +5,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log"
"net/http" "net/http"
"net/url" "net/url"
"strings" "strings"
@ -174,7 +175,11 @@ func (c cassandraMetric) addTagsFields(out map[string]interface{}) {
func (j *Cassandra) SampleConfig() string { func (j *Cassandra) SampleConfig() string {
return ` 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" context = "/jolokia/read"
## List of cassandra servers exposing jolokia read service ## List of cassandra servers exposing jolokia read service
servers = ["myuser:mypassword@10.10.10.1:8778","10.10.10.2:8778",":8778"] 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 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 { func (c *Cassandra) Gather(acc telegraf.Accumulator) error {
context := c.Context context := c.Context
servers := c.Servers servers := c.Servers

View File

@ -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). 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. 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"] 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. 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"] paths = ["Uptime"]
``` ```
## Jolokia Metric Configuration #### Jolokia Metric Configuration
Each `metric` declaration generates a Jolokia request to fetch telemetry from a JMX MBean. 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_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_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. | | `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.

View File

@ -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"]

View File

@ -56,13 +56,13 @@ func (jp *JolokiaProxy) SampleConfig() string {
## Add proxy targets to query ## Add proxy targets to query
# default_target_username = "" # default_target_username = ""
# default_target_password = "" # default_target_password = ""
[[inputs.jolokia_proxy.target]] [[inputs.jolokia2_proxy.target]]
url = "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi" url = "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi"
# username = "" # username = ""
# password = "" # password = ""
## Add metrics to read ## Add metrics to read
[[inputs.jolokia_proxy.metric]] [[inputs.jolokia2_proxy.metric]]
name = "java_runtime" name = "java_runtime"
mbean = "java.lang:type=Runtime" mbean = "java.lang:type=Runtime"
paths = ["Uptime"] paths = ["Uptime"]