跳转至

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 常用操作


5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题