Cassandra
Cassandra 是一款开源的混合型非关系数据库。以其可扩展性和容错分布式数据库系统而被人所熟知。
Cloud Insight 通过 JMX 获取指标来监控 Cassandra,监控其读写操作情况,磁盘使用等情况。
性能指标
Cloud Insight 采集 Cassandra 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
cassandra.active_tasks | tasks | 线程池正在执行的任务数 |
cassandra.bloom_filter_disk_space_used | bytes | Bloom 过滤器使用的磁盘空间 |
cassandra.bloom_filter_false_positives | events | Bloom 过滤器 false positive 的数量 |
cassandra.bloom_filter_false_ratio | fractions | Bloom 过滤器 false positive 数量与总 check 数量的比率 |
cassandra.capacity | bytes | 缓存的容量,例如密钥缓存和行缓存 |
cassandra.completed_tasks | tasks | 线程池已完成的任务数 |
cassandra.compression_ratio | fractions | 列簇(column family)中所有表(SSTables)的压缩比 |
cassandra.currently_blocked_tasks.count | tasks | 线程池的当前已阻止任务的数量 |
cassandra.db.bloom_filter_disk_space_used | bytes | Bloom 过滤器使用的磁盘空间 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.bloom_filter_disk_space_used 指标) |
cassandra.db.bloom_filter_false_positives | events | Bloom 过滤器 false positive 的数量 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.bloom 指标) |
cassandra.db.bloom_filter_false_ratio | fractions | Bloom 过滤器 false positive 数量与总 check 数量的比率(该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.bloom_filter_false_ratio 指标) |
cassandra.db.completed_tasks | tasks | 完成压缩或 commitlog 的任务数 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.compression_ratio | fractions | 列簇(column family)中所有表(SSTables)的压缩比 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.compression_ratio 指标) |
cassandra.db.exception_count | errors | 抛出的异常数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.exceptions.count 指标) |
cassandra.db.key_cache_recent_hit_rate | fractions | 自上次读取此属性以来,键缓存(key cache)命中与键缓存请求的比率 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.row_cache_recent_hit_rate | fractions | 自上次读取此属性以来,行缓存(row cache)命中与行缓存请求的比率 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.live_disk_space_used | bytes | 活的(live) SSTables 使用的磁盘空间(仅计算非过时文件)(该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.live_disk_space_used.count 指标) |
cassandra.db.live_ss_table_count | files | 活的(live)SSTables 数量(非过时的) (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.live_ss_table_count 指标) |
cassandra.db.load | bytes | 节点上使用的磁盘空间 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.load.count 指标) |
cassandra.db.max_row_size | bytes | 最大压缩行(compacted row)的大小 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.max_row_size 指标) |
cassandra.db.mean_row_size | bytes | 压缩行(compacted row)的平均大小 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.mean_row_size 指标) |
cassandra.db.memtable_columns_count | columns | memtable 中的列数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.memtable_columns_count 指标) |
cassandra.db.memtable_data_size | bytes | 存储在 memtable 中的数据量 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.memtable_live_data_size 指标) |
cassandra.db.memtable_switch_count | events | 完整 memtable 因刷新而被切换为空的次数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.memtable_switch_count.count 指标) |
cassandra.db.min_row_size | bytes | 最小压缩行(compacted row)的大小 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.min_row_size 指标) |
cassandra.db.pending_tasks | tasks | 待压缩、commitlog 或列簇(column family)的任务数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.pending_tasks 指标) |
cassandra.db.range_operations | operations | 范围扫描的操作数 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.read_count | reads | 列簇(column family)的本地读取请求数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.latency.count 指标) |
cassandra.db.read_operations | operations | 读取操作数 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.recent_range_latency_micros | microseconds | 自上次读取此属性以来范围扫描(range scans)的延迟 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.recent_read_latency_micros | microseconds | 自上次读取此属性以来的读取延迟 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.recent_write_latency_micros | microseconds | 自上次读取此属性以来的写入延迟 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.total_disk_space_used | bytes | 列簇(column family)使用的磁盘空间 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.total_disk_space_used.count 指标) |
cassandra.db.total_range_latency_micros | microseconds | 所有范围扫描(range scans)的总延迟 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.db.total_read_latency_micros | microseconds | 所有读取请求的总延迟 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.total_latency.count 指标) |
cassandra.db.total_write_latency_micros | microseconds | 所有写入请求的总延迟 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.total_latency.count 指标) |
cassandra.db.update_interval | milliseconds | 动态 snitch 的可配置更新间隔,其监视慢节点路由请求的读取延迟 |
cassandra.db.write_count | writes | 列簇(column family)的本地写入请求数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.latency.count 指标) |
cassandra.db.write_operations | operations | 写入操作计数 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.exceptions.count | errors | 抛出的异常数 |
cassandra.hits.count | hits | 缓存的匹配数 |
cassandra.internal.active_count | tasks | 线程池正在执行的任务数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.active_tasks 指标) |
cassandra.internal.completed_tasks | tasks | 线程池完成的任务数(该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.completed_tasks 指标) |
cassandra.internal.currently_blocked_tasks | tasks | 线程池的当前已阻止任务的数量 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.currently_blocked_tasks.count 指标) |
cassandra.internal.total_blocked_tasks | tasks | 线程池的当前已阻止任务的累计总数 (该指标可能不适用于超过 2.2 版本的 Cassandra) |
cassandra.latency.count | requests | 客户端请求的数量 |
cassandra.latency.one_minute_rate | requests/second | 最近一分钟间隔内的客户端请求比率(指数加权移动平均值) |
cassandra.live_disk_space_used.count | bytes | 活的 SSTables 使用的磁盘空间(仅计算非过时文件) |
cassandra.live_ss_table_count | files | 活的(非过时)SSTables 的数量 |
cassandra.load.count | bytes | 节点上使用的磁盘空间 |
cassandra.max_row_size | bytes | 最大压缩行的大小 |
cassandra.mean_row_size | bytes | 压缩行的平均大小 |
cassandra.memtable_columns_count | columns | memtable 中的列数 |
cassandra.memtable_live_data_size | bytes | 存储在 memtable 中的数据量大小 |
cassandra.memtable_switch_count.count | events | 完整 memtable 因刷新而被切换为空的次数 |
cassandra.min_row_size | bytes | 最小压缩行的大小 |
cassandra.net.total_timeouts | timeouts | 可配置超时窗口内未确认的请求计数 (该指标可能不适用于超过 2.2 版本的 Cassandra,请改用 cassandra.timeouts.count 指标) |
cassandra.pending_tasks | tasks | 线程池的挂起任务数 |
cassandra.requests.count | requests | 缓存的请求数 |
cassandra.size | bytes | 缓存数据量 |
cassandra.timeouts.count | timeouts | 可配置超时窗口内未确认的请求计数 |
cassandra.timeouts.one_minute_rate | timeouts/second | 最近一分钟间隔内的超时比率(指数加权移动平均值) |
cassandra.total_disk_space_used.count | bytes | 列簇(column family)使用的磁盘空间 |
cassandra.total_latency.count | microseconds | 所有客户端请求的总延迟 |
cassandra.unavailables.count | errors | 所需节点不可用的请求的数量 |
cassandra.unavailables.one_minute_rate | errors/second | 最近一分钟间隔内的不可用异常率(指数加权移动平均值) |
配置 Cassandra 监控
JMX
Cloud Insight Agent 通过 JMX 获取 Cassandra 中的性能指标。
由于每个实体最多可以监控 350 个性能指标,所以您需要按照下方的配置方法,修改配置文件来确定自己需要哪些指标。
编辑配置文件
编辑配置文件 conf.d/cassandra.yaml,使 Cloud Insight Agent 可以与 Cassandra 通信。
instances:
- host: localhost
port: 7199
user: username
password: password
name: cassandra_instance
#trust_store_path: /path/to/trustStore.jks # Optional, should be set if ssl is enabled
#trust_store_password: password
#java_bin_path: /path/to/java #Optional, should be set if the agent cannot find your java executable
# List of metrics to be collected by the integration
init_config:
conf:
- include:
domain: org.apache.cassandra.db
attribute:
- BloomFilterDiskSpaceUsed
- BloomFilterFalsePositives
- BloomFilterFalseRatio
- Capacity
- CompressionRatio
- CompletedTasks
- ExceptionCount
- Hits
- RecentHitRate
- RowCacheRecentHitRate
- KeyCacheRecentHitRate
- LiveDiskSpaceUsed
- LiveSSTableCount
- Load
- MaxRowSize
- MeanRowSize
- MemtableColumnsCount
- MemtableDataSize
- MemtableSwitchCount
- MinRowSize
- ReadCount
- Requests
- Size
- TotalDiskSpaceUsed
- TotalReadLatencyMicros
- TotalWriteLatencyMicros
- UpdateInterval
- WriteCount
- PendingTasks
exclude:
keyspace: system
attribute:
- MinimumCompactionThreshold
- MaximumCompactionThreshold
- RowCacheKeysToSave
- KeyCacheSavePeriodInSeconds
- RowCacheSavePeriodInSeconds
- PendingTasks
- Scores
- RpcTimeout
- include:
domain: org.apache.cassandra.internal
attribute:
- ActiveCount
- CompletedTasks
- CurrentlyBlockedTasks
- TotalBlockedTasks
- include:
domain: org.apache.cassandra.net
attribute:
- TotalTimeouts
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。
Checks
======
[...]
cassandra
---------
- instance #0 [OK]
- Collected 8 metrics & 0 events
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
常见问题
- 各项指标的解释
- Cloudn't launch JMXTerm. Is Java in your PATH ?
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。