操作Cassandra(7)-监控

监控

Cassandra中的度量标准使用Dropwizard Metrics库进行管理。这些度量可以通过JMX查询,或使用一些内置和第三方记录插件推送到外部监控系统。

为单个节点收集指标。由操作者使用外部监控系统来聚合它们。

指标类型

cassandra报告的所有指标都符合以下类型之一。

测量(Gauge)
值的瞬时测量。
计数器(Counter)
AtomicLong实例的度量。通常通过监视从最后一次调用以来的消耗变化来查看与规范相比是否存在大的增加。
柱状图(Histogram)

测量数据流中值的统计分布。除了最小值,最大值,平均值等之外,它还测量中值,第75,第90,第95,第98,第99和第99.9百分位数。

定时器(Timer)
测量特定代码片段被调用的速率和其持续时间的直方图。
潜伏(Latency)
跟踪延迟(以微秒为单位)的特殊类型,使用定时器和计数器跟踪自启动以来累积的总延迟。此类型的每个指标名称将附加“Latency”和“TotalLatency”。
仪表(Meter)
测量平均吞吐量和一,五和十五分钟指数加权移动平均吞吐量的仪表度量。

表指标

Cassandra中的每个表都有负责跟踪其状态和性能的度量标准。

度量标准名称都附加了特定的键空间和表名称。

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Table.<MetricName>.<Keyspace>.<Table>
JMX MBean
org.apache.cassandra.metrics:type=Tablekeyspace=<Keyspace> scope=<Table>name=<MetricName>
        注意:有一个称为“all”的特殊表,没有键空间。这表示节点上所有表和键空间的度量标准的聚合。

指标名称指标类型指标描述
MemtableOnHeapSizeGauge<Long>存储在堆上的memtable中的数据总量,包括列相关的开销和覆盖的分区。
MemtableOffHeapSizeGauge<Long>存储在堆外的memtable中的数据总量,包括列相关的开销和覆盖的分区。
MemtableLiveDataSizeGauge<Long>存储在memtable中的实时数据总量,不包括任何数据结构开销。
AllMemtablesOnHeapSizeGauge<Long>驻留在堆上的memtables(包括2i和挂起的清空memtables)中存储的数据总量。
AllMemtablesOffHeapSizeGauge<Long>驻留在堆外的memtables(包括2i和挂起清空的memtables)中存储的数据总量。
AllMemtablesLiveDataSizeGauge<Long>驻留在堆外的memtables(包括2i和挂起的flush memtables)中存储的实时数据总量,不包括任何数据结构开销。
MemtableColumnsCountGauge<Long>memtable中存在的列总数。
MemtableSwitchCountCounter刷新导致memtable被切换的次数。
CompressionRatioGauge<Double>所有SSTables的当前压缩比。
EstimatedPartitionSizeHistogramGauge<long[]>估计分区大小的直方图(以字节为单位)。
EstimatedPartitionCountGauge<Long>表中键的近似数。
EstimatedColumnCountHistogramGauge<long[]>估计列数的直方图。
SSTablesPerReadHistogramHistogram每次读取访问的sstable数据文件数的直方图。
ReadLatencyLatency当前表的本地读取延迟。
RangeLatencyLatency当前表的本地范围扫描延迟。
WriteLatencyLatency当前表的本地写入延迟。
CoordinatorReadLatencyTimer当前表的协调器读取延迟。
CoordinatorScanLatencyTimer当前表的协调器范围扫描延迟。
PendingFlushesCounter当前表的等待处理的刷新任务的估计数量。
BytesFlushedCounter从服务器启动/重启开始刷新的字节总数。
CompactionBytesWrittenCounter自服务器启动/重启以来,通过压缩写入的字节总数。
PendingCompactionsGauge<Integer>估计此表的待处理compaction的数量。
LiveSSTableCountGauge<Integer>当前表磁盘上的SSTables数。
LiveDiskSpaceUsedCounter属于当前表的SSTables使用的磁盘空间(以字节为单位)。
TotalDiskSpaceUsedCounter属于此表的SSTables使用的总磁盘空间,包括废弃等待GC的。
MinPartitionSizeGauge<Long>最小压缩分区的大小(以字节为单位)。
MaxPartitionSizeGauge<Long>最大压缩分区的大小(以字节为单位)。
MeanPartitionSizeGauge<Long>压缩分区的平均大小(以字节为单位)。
BloomFilterFalsePositivesGauge<Long>表的bloom过滤器上的假阳性数。
BloomFilterFalseRatioGauge<Double>表的bloom过滤器的假阳性比率。
BloomFilterDiskSpaceUsedGauge<Long>bloom过滤器使用的磁盘空间(以字节为单位)。
BloomFilterOffHeapMemoryUsedGauge<Long>bloom过滤器使用的堆外存储器。
IndexSummaryOffHeapMemoryUsedGauge<Long>索引摘要使用的离堆内存。
CompressionMetadataOffHeapMemoryUsedGauge<Long>压缩元数据使用的堆外存储器。
KeyCacheHitRateGauge<Double>当前表的键高速缓存命中率。
TombstoneScannedHistogramHistogram当前表查询中扫描的Tombstone柱状图。
LiveScannedHistogramHistogram当前表查询中扫描的活动单元格的直方图。
ColUpdateTimeDeltaHistogramHistogram当前表上列更新时间增量的直方图。
ViewLockAcquireTimeTimer当前表上实例化视图更新获取分区锁所花费的时间。
ViewReadTimeTimer在实体化视图更新的本地读取期间所花费的时间。
TrueSnapshotsSizeGauge<Long>当前表的快照使用的磁盘空间包括所有SSTable组件。
RowCacheHitOutOfRangeCounter不满足查询过滤器的表行高速缓存命中数,因此转到磁盘。
RowCacheHitCounter表行高速缓存命中数。
RowCacheMissCounter表行高速缓存未命中数。
CasPrepareLatencyLatency of paxos prepare round.
CasProposeLatencyLatency of paxos propose round.
CasCommitLatencyLatency of paxos commit round.
PercentRepairedGauge<Double>在磁盘上修复的表数据的百分比。
SpeculativeRetriesCounter为当前表发送的推测重试次数。
WaitingOnFreeMemtableSpaceHistogram花费在等待空闲memtable空间的时间直方图,无论是on还是off。
DroppedMutationsCounter当前表上丢失的突变数。

键空间指标

Cassandra中的每个键空间都有负责跟踪其状态和性能的度量标准。

这些度量与上面的“表度量”相同,唯一不同的是它们在Keyspace级别聚合。

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.keyspace.<MetricName>.<Keyspace>
JMX MBean
org.apache.cassandra.metrics:type=Keyspacescope=<Keyspace> name=<MetricName>

线程池指标

Cassandra将特定类型的工作分解到其自己的线程池中。 这为节点上的请求提供了背压和异步。 监视这些线程池的状态非常重要,因为它们可以告诉你阳极的饱和度。

度量标准名称都附加特定的线程池名称。线程池也是特定类型。

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.ThreadPools.<MetricName>.<Path>.<ThreadPoolName>
JMX MBean
org.apache.cassandra.metrics:type=ThreadPoolsscope=<ThreadPoolName> type=<Type>name=<MetricName>
指标名称指标类型指标描述
ActiveTasksGauge<Integer>此线程池正在处理的任务数。
PendingTasksGauge<Integer>在此线程池上排队的任务数
CompletedTasksCounter完成的任务数
TotalBlockedTasksCounter由于队列饱和而被阻塞的任务数
CurrentlyBlockedTaskCounter由于重试操作解除阻塞的任务数
MaxPoolSizeGauge<Integer>此线程池的最大线程数

可以监视以下线程池。

线程池名称线程池类型线程池描述
Native-Transport-Requeststransport处理客户端CQL请求
CounterMutationStagerequest负责计数器写操作
ViewMutationStagerequest负责物化视图写入
MutationStagerequest负责所有其他写入
ReadRepairStagerequest读修复发生在这个线程池
ReadStagerequest本地读取在此线程池上运行
RequestResponseStagerequest协调器请求在此线程池上运行的集群
AntiEntropyStageinternal修建梅克尔树
CacheCleanupExecutorinternal在此线程池上执行缓存维护
CompactionExecutorinternal压缩在这些线程上运行
GossipStageinternal处理gossip请求
HintsDispatcherinternal执行提示切换
InternalResponseStageinternal负责集群内回调
MemtableFlushWriterinternal将memtables写入磁盘
MemtablePostFlushinternalmemtable写入磁盘后清理提交日志
MemtableReclaimMemoryinternalMemtable回收
MigrationStageinternal运行模式迁移
MiscStageinternal其他任务在此处运行
PendingRangeCalculatorinternal计算令牌范围
PerDiskMemtableFlushWriter_0internal负责编写规范(每个磁盘都有一个0-N)
Samplerinternal负责重新抽样SStables的索引摘要
SecondaryIndexManagementinternal执行辅助索引的更新
ValidationExecutorinternal执行验证压缩或擦除

客户端请求指标

客户端请求具有自己的一组度量标准,用于封装在协调器级别发生的工作。

不同类型的客户端请求按请求类型(RequestType)进行细分。

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.ClientRequest.<MetricName>.<RequestType>
JMX MBean
org.apache.cassandra.metrics:type=ClientRequestscope=<RequestType> name=<MetricName>
请求类型:

CAS读请求

描述:

与事务性读取请求相关的度量标准。

指标:
指标名称
指标类型指标描述
TimeoutsCounter遇到的超时次数。
FailuresCounter遇到的事务失败次数。
 Latency事务读取延迟。
UnavailablesCounter遇到的不可用错误数。
UnfinishedCommitCounter读取时提交的事务数。
ConditionNotMetCounter事务先决条件数与当前值不匹配。
ContentionHistogramHistogram遇到了多少个争用。
请求类型:

CAS写请求

描述:

与事务性写入请求相关的度量标准。

指标:
指标名称指标类型指标描述
TimeoutsCounter遇到的超时次数。
FailuresCounter遇到的事务失败次数。
 Latency事务写入延迟。
UnfinishedCommitCounter写入时提交的事务数。
ConditionNotMetCounter事务先决条件数与当前值不匹配。
ContentionHistogramHistogram遇到了多少个写争用。
请求类型:

常规读请求

描述:

与标准读取请求相关的度量标准。

指标:
指标名称指标类型指标描述
TimeoutsCounter遇到的超时次数。
FailuresCounter遇到的读取失败次数。
 Latency读取延迟。
UnavailablesCounter遇到的不可用错误数。
请求类型:

范围切片(RangeSlice)请求

描述:

与令牌范围读取请求相关的度量标准。

指标:
指标名称指标类型指标描述
TimeoutsCounter遇到的超时次数。
FailuresCounter遇到的范围查询失败次数。
 Latency范围查询延迟。
UnavailablesCounter遇到的不可用错误数。
请求类型:

常规写请求

描述:

与常规写入请求相关的度量。

指标:
指标名称指标类型指标描述
TimeoutsCounter遇到的超时次数。
FailuresCounter遇到的写入失败次数。
 Latency写入延迟。
UnavailablesCounter遇到的不可用错误数。
请求类型:

视图写入请求

描述:

与物化视图写入相关的度量标准。

指标:
指标名称指标类型指标描述
TimeoutsCounter遇到的超时次数。
FailuresCounter遇到的事务失败次数。
UnavailablesCounter遇到的不可用错误数。
ViewReplicasAttemptedCounter已尝试的视图副本写入的总数。
ViewReplicasSuccessCounter已成功视图副本写入的总数。
ViewPendingMutationsGauge<Long>已尝试的副本视图 - 成功副本视图
ViewWriteLatencyTimer从基表应用突变到在视图上实现CL.ONE之间的时间。

缓存指标

Cassandra缓存具有跟踪缓存有效性的度量。虽然表指标可能更有用。

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Cache.<MetricName>.<CacheName>
JMX MBean
org.apache.cassandra.metrics:type=Cachescope=<CacheName> name=<MetricName>
指标名称指标类型指标描述
CapacityGauge<Long>缓存容量(字节)。
EntriesGauge<Integer>高速缓存条目的总数。
FifteenMinuteCacheHitRateGauge<Double>15分钟缓存命中率。
FiveMinuteCacheHitRateGauge<Double>5分钟缓存命中率
OneMinuteCacheHitRateGauge<Double>1分钟缓存命中率
HitRateGauge<Double>所有时间内的缓存命中率
HitsMeter高速缓存命中的总数。
MissesMeter高速缓存未命中的总数。
MissLatencyTimer未命中的延迟。
RequestsGauge<Long>缓存请求的总数。
SizeGauge<Long>被占用的缓存的总大小,以字节为单位。

涵盖以下高速缓存:

缓存名称缓存描述
CounterCache保持热计数器在内存中的性能。
ChunkCache在进程中未压缩的页面缓存。
KeyCache分区sstable偏移量缓存
RowCache缓存在内存中保存的行。

注意:Misses和MissLatency仅为ChunkCache定义

CQL指标

专用于CQL预编译语句高速缓存的度量

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.CQL.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=CQLname=<MetricName>
指标名称指标类型指标描述
PreparedStatementsCountGauge<Integer>预编译语句高速缓存的数量。
PreparedStatementsEvictedCounter从预编译语句高速缓存中逐出的语句的数量。
PreparedStatementsExecutedCounter已执行的预编译语句数量。
RegularStatementsExecutedCounter未执行的预编译语句数量。
PreparedStatementsRatioGauge<Double>预编译语句与非预编译语句的百分比。

消息废弃指标(DroppedMessage Metrics)

针对不同类型请求跟踪废弃消息的指标。 废弃消息的写入由Hinted Handoff存储和重试

报告的名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.DroppedMessages.<MetricName>.<Type>
JMX MBean
org.apache.cassandra.metrics:type=DroppedMetricsscope=<Type> name=<MetricName>
指标名称指标类型指标描述
CrossNodeDroppedLatencyTimer节点之间丢弃的延迟。
InternalDroppedLatencyTimer节点中丢弃的延迟。
DroppedMeter丢弃的消息数。

跟踪的不同类型的消息:

消息名称消息描述
BATCH_STORE批量日志写入
BATCH_REMOVE批量日志清理(成功应用后)
COUNTER_MUTATION计数器写入
HINT提示重放
MUTATION定期写入
READ定期读取
READ_REPAIR读修复
PAGED_SLICE分页读
RANGE_SLICE令牌范围读取
REQUEST_RESPONSERPC回调
_TRACE跟踪写入

数据流指标

流操作期间报告的指标,例如修复,引导,重建。

这些度量标准专用于同级端点,源节点是您从中提取度量标准的节点。

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Streaming.<MetricName>.<PeerIP>
JMX MBean
org.apache.cassandra.metrics:type=Streamingscope=<PeerIP> name=<MetricName>
指标名称指标类型指标描述
IncomingBytesCounter从同级点送到此节点的数据流字节数。
OutgoingBytesCounter从此节点送到同级点的数据流字节数。

Compaction指标

压实工作专用的度量。

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Compaction.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=Compactionname=<MetricName>
指标名称指标类型指标描述
BytesCompactedCounter自服务器启动/重启以来压缩的字节总数。
PendingTasksGauge<Integer>估计要执行的压缩数量。
CompletedTasksGauge<Long>自服务器启动/重启以来已完成的压缩数。
TotalCompactionsCompletedMeter自服务器启动/重启以来已完成压缩的吞吐量。
PendingTasksByTableNameGauge<Map<String, Map<String, Integer>>>剩余要执行的压缩的估计数,按键空间和表名分组。此信息也保存在表度量标准中。

CommitLog指标

CommitLog的特定指标

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.CommitLog.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=CommitLogname=<MetricName>
指标名称指标类型指标描述
CompletedTasksGauge<Long>自[启动/重启以来写入的提交日志消息的总数。
PendingTasksGauge<Long>已写入但尚未成为同步文件的提交日志消息数。
TotalCommitLogSizeGauge<Long>当前大小(以字节为单位),由所有提交日志段使用。
WaitingOnSegmentAllocationTimer等待CommitLogSegment被分配所花费的时间 - 在正常条件下,这应该为零。
WaitingOnCommitTimer等待CL同步文件所花费的时间;对于Periodic,仅当同步落后于其同步间隔时才会发生。

存储指标

存储引擎特有的指标。

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Storage.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=Storagename=<MetricName>
指标名称指标类型指标描述
ExceptionsCounter捕获的内部异常数。 在正常的情况下,这应该是零。
LoadCounter此节点管理的磁盘数据的大小(以字节为单位)。
TotalHintsCounter自启动/重启以来写入此节点的提示消息数。包括每个提示对每个主机条目提示。
TotalHintsInProgressCounter当前尝试发送的提示数。

HintedHandoff指标

特定于Hinted Handoff的指标。还有一些与存储指标中跟踪提示相关的指标

这些度量标准包括度量标准名称中的同级端点

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.HintedHandOffManager.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=HintedHandOffManagername=<MetricName>
指标名称指标类型指标描述
Hints_created-<PeerIP>Counter与当前端点同级的端点的磁盘提示数。
Hints_not_stored-<PeerIP>Counter由于超过配置的提示窗口而未存储的当前端点同级端点的提示数。

SSTable索引指标

SSTable索引元数据特有的指标。

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Index.<MetricName>.RowIndexEntry
JMX MBean
org.apache.cassandra.metrics:type=Indexscope=RowIndexEntry name=<MetricName>
指标名称指标类型指标描述
IndexedEntrySizeHistogram所有SSTables索引堆大小的直方图(以字节为单位)。
IndexInfoCountHistogram在所有SSTables上管理的堆索引条目数的直方图。
IndexInfoGetsHistogram根据SSTable执行数字索引的直方图。

缓冲池指标

特定于Cassandra管理的内部循环缓冲池。 这个池用于通过循环打开和关闭堆缓冲区来保持分配和回收。

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.BufferPool.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=BufferPoolname=<MetricName>
指标名称指标类型指标描述
SizeGauge<Long>受管缓冲池的大小(以字节为单位)
MissesMeter池中的未命中率。 更多的在分配时发生。

客户端指标

特定于客户端管理的度量标准。

报告名称格式:

指标名称(Metric Name)
org.apache.cassandra.metrics.Client.<MetricName>
JMX MBean
org.apache.cassandra.metrics:type=Clientname=<MetricName>
指标名称指标类型指标描述
connectedNativeClientsCounter连接到此节点本机协议服务器的客户端数
connectedThriftClientsCounter连接到节点thrift协议服务器的客户端数

JVM 指标

可以通过使用JMX连接到JVM来访问JVM度量标准(例如内存和垃圾回收统计信息),也可以使用度量标准记录器导出。

报告名称格式:

指标名称(Metric Name)
jvm.buffers.<direct|mapped>.<MetricName>
JMX MBean
java.nio:type=BufferPoolname=<direct|mapped>
指标名称指标类型指标描述
CapacityGauge<Long>此池中缓冲区的估计总容量
CountGauge<Long>池中的缓冲区的估计数
UsedGauge<Long>Java虚拟机用于此缓冲池的估计内存

文件描述符比率(FileDescriptorRatio)

指标名称(Metric Name)
jvm.fd.<MetricName>
JMX MBean
java.lang:type=OperatingSystemname=<OpenFileDescriptorCount|MaxFileDescriptorCount>
指标名称指标类型指标描述
UsageRatio已使用的文件描述符总数的比例

垃圾回收器(GarbageCollector)

指标名称(Metric Name)
jvm.gc.<gc_type>.<MetricName>
JMX MBean
java.lang:type=GarbageCollectorname=<gc_type>
指标名称指标类型指标描述
CountGauge<Long>发生的收集总数
TimeGauge<Long>收集垃圾累积消耗的时间(以毫秒为单位)

内存(Memory)

指标名称(Metric Name)
jvm.memory.<heap/non-heap/total>.<MetricName>
JMX MBean
java.lang:type=Memory
CommittedGauge<Long>提交给JVM使用的内存量(以字节为单位)
InitGauge<Long>JVM最初从操作系统请求的内存量(以字节为单位)
MaxGauge<Long>可用于内存管理的最大内存量(以字节为单位)
UsageRatio已使用的比率与最大内存
UsedGauge<Long>使用的内存量(以字节为单位)

内存池(MemoryPool)

指标名称(Metric Name)
jvm.memory.pools.<memory_pool>.<MetricName>
JMX MBean
java.lang:type=MemoryPoolname=<memory_pool>
CommittedGauge<Long>提交给JVM使用的内存量(以字节为单位)
InitGauge<Long>JVM最初从操作系统请求的内存量(以字节为单位)
MaxGauge<Long>可用于内存管理的最大内存量(以字节为单位)
UsageRatio已使用的比率与最大内存
UsedGauge<Long>使用的内存量(以字节为单位)

JMX

任何基于JMX的客户端都可以访问cassandra的度量指标。

如果您希望通过http访问JMX度量标准,可以下载Mx4jTool并将mx4j-tools.jar放置到类路径中。在启动时,您将在日志中看到:

HttpAdaptor version 3.0.2 started on port 8081

要选择不同的端口(默认为8081)或不同的侦听地址(0.0.0.0不是默认值),编辑conf / cassandra-env.sh并取消注释:

#MX4J_ADDRESS="-Dmx4jaddress=0.0.0.0"

#MX4J_PORT="-Dmx4jport=8081"

指标反馈(Metric Reporters)

如本篇博客顶部所述,Cassandra度量可以导出到多个监控系统中的一些内置和第三方记录插件。

这些插件的配置由metrics reporter config项目管理。有一个示例配置文件位于conf / metrics-reporter-config-sample.yaml。

一旦配置,你只需启动cassandra与标志-Dcassandra.metricsReporterConfigFile = metrics-reporter-config.yaml。指定的.yaml文件加上的任何第三方记录器的jar包都必须在Cassandra的类路径中。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值