telegraf/plugins/inputs/cassandra
Cameron Sparr 2eee1b84fb
break telegraf registry into separate package
this is for supporting external plugins.

external plugins will depend on a few telegraf interface types, as well
as a common telegraf registry.

this will allow external and internal plugins to both share this package
and make it easier to vendor/version the whole thing semantically, which
will make it easier to keep plugins supported across build and telegraf
versions.

see #1717
2017-02-06 11:16:29 +00:00
..
README.md Just fix typo (#1962) 2016-10-27 11:45:17 +01:00
cassandra.go break telegraf registry into separate package 2017-02-06 11:16:29 +00:00
cassandra_test.go Don't allow inputs to overwrite host tag 2016-04-19 17:44:33 -06:00

README.md

Telegraf plugin: Cassandra

Plugin arguments:

  • context string: Context root used for jolokia url
  • servers []string: List of servers with the format "user:passwd@:port"
  • metrics []string: List of Jmx paths that identify mbeans attributes

Description

The Cassandra plugin collects Cassandra 3 / JVM metrics exposed as MBean's attributes through jolokia REST endpoint. All metrics are collected for each server configured.

See: https://jolokia.org/ and Cassandra Documentation

Measurements:

Cassandra plugin produces one or more measurements for each metric configured, adding Server's name as host tag. More than one measurement is generated when querying table metrics with a wildcard for the keyspace or table name.

Given a configuration like:

[[inputs.cassandra]]
  context = "/jolokia/read"
  servers = [":8778"]
  metrics = ["/java.lang:type=Memory/HeapMemoryUsage"]

The collected metrics will be:

javaMemory,host=myHost,mname=HeapMemoryUsage HeapMemoryUsage_committed=1040187392,HeapMemoryUsage_init=1050673152,HeapMemoryUsage_max=1040187392,HeapMemoryUsage_used=368155000 1459551767230567084

Useful Metrics:

Here is a list of metrics that might be useful to monitor your cassandra cluster. This was put together from multiple sources on the web.

####measurement = javaGarbageCollector

  • /java.lang:type=GarbageCollector,name=ConcurrentMarkSweep/CollectionTime
  • /java.lang:type=GarbageCollector,name=ConcurrentMarkSweep/CollectionCount
  • /java.lang:type=GarbageCollector,name=ParNew/CollectionTime
  • /java.lang:type=GarbageCollector,name=ParNew/CollectionCount

####measurement = javaMemory

  • /java.lang:type=Memory/HeapMemoryUsage
  • /java.lang:type=Memory/NonHeapMemoryUsage

####measurement = cassandraCache

  • /org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Hits
  • /org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Requests
  • /org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Entries
  • /org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Size
  • /org.apache.cassandra.metrics:type=Cache,scope=KeyCache,name=Capacity
  • /org.apache.cassandra.metrics:type=Cache,scope=RowCache,name=Hits
  • /org.apache.cassandra.metrics:type=Cache,scope=RowCache,name=Requests
  • /org.apache.cassandra.metrics:type=Cache,scope=RowCache,name=Entries
  • /org.apache.cassandra.metrics:type=Cache,scope=RowCache,name=Size
  • /org.apache.cassandra.metrics:type=Cache,scope=RowCache,name=Capacity

####measurement = cassandraClient

  • /org.apache.cassandra.metrics:type=Client,name=connectedNativeClients

####measurement = cassandraClientRequest

  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=TotalLatency
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=TotalLatency
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Latency
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Latency
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Timeouts
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Timeouts
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Unavailables
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Unavailables
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Read,name=Failures
  • /org.apache.cassandra.metrics:type=ClientRequest,scope=Write,name=Failures

####measurement = cassandraCommitLog

  • /org.apache.cassandra.metrics:type=CommitLog,name=PendingTasks
  • /org.apache.cassandra.metrics:type=CommitLog,name=TotalCommitLogSize

####measurement = cassandraCompaction

  • /org.apache.cassandra.metrics:type=Compaction,name=CompletedTasks
  • /org.apache.cassandra.metrics:type=Compaction,name=PendingTasks
  • /org.apache.cassandra.metrics:type=Compaction,name=TotalCompactionsCompleted
  • /org.apache.cassandra.metrics:type=Compaction,name=BytesCompacted

####measurement = cassandraStorage

  • /org.apache.cassandra.metrics:type=Storage,name=Load
  • /org.apache.cassandra.metrics:type=Storage,name=Exceptions

####measurement = cassandraTable Using wildcards for "keyspace" and "scope" can create a lot of series as metrics will be reported for every table and keyspace including internal system tables. Specify a keyspace name and/or a table name to limit them.

  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=LiveDiskSpaceUsed
  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=TotalDiskSpaceUsed
  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=ReadLatency
  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=CoordinatorReadLatency
  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=WriteLatency
  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=ReadTotalLatency
  • /org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=WriteTotalLatency

####measurement = cassandraThreadPools

  • /org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=CompactionExecutor,name=ActiveTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=internal,scope=AntiEntropyStage,name=ActiveTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=CounterMutationStage,name=PendingTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=CounterMutationStage,name=CurrentlyBlockedTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=MutationStage,name=PendingTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=MutationStage,name=CurrentlyBlockedTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadRepairStage,name=PendingTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadRepairStage,name=CurrentlyBlockedTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadStage,name=PendingTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=ReadStage,name=CurrentlyBlockedTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=RequestResponseStage,name=PendingTasks
  • /org.apache.cassandra.metrics:type=ThreadPools,path=request,scope=RequestResponseStage,name=CurrentlyBlockedTasks