Skip to content

Latest commit

 

History

History
 
 

cassandra

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Cassandra Input Plugin

Deprecated in version 1.7: Please use the jolokia2 plugin with the cassandra.conf example configuration.

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:

# Read Cassandra metrics through Jolokia
[[inputs.cassandra]]
  ## 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"]
  ## 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"
  ]

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