Overview
Apache Cassandra is a popular open source NoSQL distributed database that is used in many important applications. This extension collects important Cassandra metrics by remotely connecting to your nodes and gathering data through various nodetool commands.
Use cases
- Gather performance metrics for Cassandra cluster
- Gather performance metrics for individual Cassandra nodes
Compatibility information
Any host that supports SSH connections which is running Cassandra and has the nodetool tool available.
Details
Metrics
Cluster (optional)
- Node ownership
- Node load
- Node tokens
- Node state
- Node status
Node
- Node availability
- Gossip active
- Native transport active
- Node load
- Uptime
- Heap used
- Heap total
- Heap used percentage
- Exceptions
- Tokens
- Ownership
- State
- Status
- Key cache
- Entries
- Size
- Capacity
- Hits
- Requests
- Hit rate
- Row cache
- Entries
- Size
- Capacity
- Hits
- Requests
- Hit rate
- Counter cache
- Entries
- Size
- Capacity
- Hits
- Requests
- Hit rate
DDU Usage
((5 * <nodes_in_cluster>) + 31) * 525.6
Installation
Requirements
- OS listed in 'Supported Distributions'
- SSH connection available on the host
- Password or key based authentication supported
- Credentials that permit running of commands to collect metrics
- None should require superuser permissions
- Environment ActiveGate server - Extract the extension zip file to the plugin_deployment folder of the remote plugin module
- In a default installation this is done with
unzip -o -d /opt/dynatrace/remotepluginmodule/plugin_deployment custom.remote.python.cassandra_remote.zip
- Adjust the path if the Activegate was installed somewhere other than
/opt/dynatrace
- Browser - Upload the same extension zip file to your tenant
Settings > Monitored technologies > Custom extensions > Upload extension
Configuration
Create an endpoint for each cluster you would like to monitor. This is done in `Settings > Monitored technologies > Custom extensions > Cassandra.
The parameters are:
- Hostname
- e.g. IP address or hostname
- Username
- ** (Optional) SSH Password**
- For authenticating with username/password
- ** (Optional) SSH Private key file path**
- For authenticating with private key
- (Optional) SSH Private key file passphrase
- For authenticating with private key
- ** (Optional) Cassandra user **
- User if nodetool needs authentication
- ** (Optional) Cassandra password**
- Password if nodetool needs authentication
- ** (Optional) Cassandra JMX port**
- JMX port if it needs to be specified when running nodetool commands
- OS Type
- Group
- Which group of custom devices to belong to
- (Optional) Device name
- Custom device name (defaults to value used for hostname)
- ** Report cluster info**
- Should metrics be reported for all nodes in the cluster or just this host
- Additional properties
- Additional properties that will be reported on the custom device
- <key>=<value>
- One entry per line (multiple allowed)
- Log level
- Set to DEBUG if you are troubleshooting issues, otherwise keep on INFO
Troubleshooting
Extension Logs
The logs under %PROGRAMDATA%
(windows) or /var/lib
(linux) give us more details in case of failures
The full path is /var/lib/dynatrace/remotepluginmodule/log/remoteplugin/custom.remote.python.cassandra_remote/CassandraRemoteExtension.log
or
C:\ProgramData\dynatrace\remotepluginmodule\log\remoteplugin\custom.remote.python.cassandra_remote/CassandraRemoteExtension.log
For some authentication errors you may need to check authentication/access logs on the target host for details as to why a connection is failing.