-
Notifications
You must be signed in to change notification settings - Fork 163
Grafana 监控指标说明 —— RocksDB & ToplingDB 部分
GuKaifeng edited this page Sep 5, 2022
·
3 revisions
Todis 部分指标查看这里。
监控项 | 含义 |
---|---|
engine:num_immutable_mem_table | 尚未被 flush 的不可变 memtables 的数量 |
engine:num_immutable_mem_table_flushed | 已经 flush 完成的不可变 memtables 的数量 |
engine:num_running_flushes | 正在运行的 flush 数量 |
engine:num_running_compactions | 正在运行的 compactions 数量 |
engine:cur_size_active_mem_table | 当前活跃的 memtable 的大概大小(字节) |
engine:cur_size_all_mem_tables | 当前活跃的 memtable 和暂未 flush 的不可变 memtable 的总的大概大小(字节) |
engine:size_all_mem_tables | 所有 memtable 的总大小(字节),包含活跃的 memtable、未 flush 的不可变 memtable 和 pinned 的不可变的 memtable |
engine:num_entries_active_mem_table | 当前活跃的 memtable 中的条目数量 |
engine:num_entries_imm_mem_tables | 没有 flush 的不可变 memtable 中的条目数量 |
engine:num_deletes_active_mem_table | 当前活跃的 memtable 中的删除的条目数量 |
engine:num_deletes_imm_mem_tables | 在尚未 flush 的不可变 memtable 中的删除的条目数量 |
engine:estimate_num_keys | 估计的在活跃的 memtable、未 flush 的不可变 memtable 和存储介质中的 key 的数量 |
engine:estimate_table_readers_mem | 读 SST 时使用的内存的大概大小,不包括块缓存(如 filter 和 index 块) |
engine:estimate_live_data_size | 返回以字节为单位的活动数据量的估计值。对于BlobDB,它还在 version 的 blob 文件中包含活动字节的确切值。 |
engine:estimate_pending_compaction_bytes | 估计的压缩需要重写的字节总数,以使所有级别减小到低于目标大小。除基于级别的压缩外,对其他压缩无效。 |
engine:is_file_deletions_enabled | 如果允许删除废弃的文件,其值为 0,否则为非零值。 |
engine:background_errors | 后台错误的总数 |
engine:num_live_versions | 当前版本的数量。' Version '是一个内部数据结构。详情请参阅 version_set.h。更多的当前版本通常意味着更多的SST文件被迭代器或未完成的压缩删除。 |
engine:total_sst_files_size | 所有 SST 文件的总大小(字节) |
engine:live_sst_files_size | 属于最新 LSM 树的所有 SST 文件的总大小(字节)。 |
engine:base_level | L0 的数据将被压缩至的 level 数 |
engine:num_snapshots | 未释放的快照数 |
engine:oldest_snapshot_time | 代表最旧的未释放的快照的 unix 时间戳的数字 |
engine:oldest_snapshot_sequence | 代表最旧的未释放的快照的序列数 |
engine:num_files_at_level | 第 N 层的文件数 |
engine:compression_ratio_at_level | 第 N 层的数据压缩率(数据压缩率=未压缩的数据大小/压缩后的数据大小,值若为 -1.0 表示该层没有打开的文件) |
engine:actual_delayed_write_rate | 当前实际的延迟写速率,0 表示不延迟。 |
监控项 | 含义 |
---|---|
compaction.L<N>.AvgSec | L<N> 平均每次 Compact 耗时 |
compaction.L<N>.CompCount | L<N> Compact 累计的次数 |
compaction.L<N>.CompMergeCPU | L<N> compaction 中占用的 CPU 时间,单位秒 |
compaction.L<N>.CompSec | L<N> Compact 累计耗时,单位秒 |
compaction.L<N>.CompactedFiles | L<N> 已完成 compact 的文件数 |
compaction.L<N>.KeyDrop | L<N> compact 中删除的 key 数量 |
compaction.L<N>.KeyIn | L<N> compaction 过程中比较的记录数量 |
compaction.L<N>.MovedGB | L<N> compaction 过程中,移动到 level n+1 的字节数。 |
compaction.L<N>.NumFiles | L<N> 的全部的 sst 文件数 |
compaction.L<N>.RblobGB | L<N> compaction 从 blob 文件中读取的数据大小,单位 GB。 |
compaction.L<N>.ReadGB | L<N> 读取的大小,单位 GB |
compaction.L<N>.ReadMBps | L<N> 的读取速率,单位 MBps |
compaction.L<N>.RnGB | L<N> 进行 compact 时,读当前层文件的大小,单位 GB |
compaction.L<N>.Rnp1GB | L<N> 进行 compact 时,读下一层文件的大小,单位 GB |
compaction.L<N>.Score | L<N> 的分数,分数越高越优先 compact |
compaction.L<N>.SizeBytes | L<N> SST 总大小,单位字节 |
compaction.L<N>.WblobGB | L<N> compaction 期间写入 blob 文件的大小,单位 GB。 |
compaction.L<N>.WnewGB | L<N> Wnp1 - Rnp1 |
compaction.L<N>.WriteAmp | (写入 level<N+1>的总字节)/(从 level<N> 读取的总字节) |
compaction.L<N>.WriteGB | L<N> compaction 期间写入表文件的大小,单位 GB。 |
compaction.L<N>.WriteMBps | compaction 中的数据写入速率 |
io_stalls.level0_numfiles | 由于 level0_stop_writes_trigger 导致的 io stop 次数 |
io_stalls.level0_numfiles_with_compaction | 由于 level0_stop_writes_trigger 导致的 compaction 中的 io stop 次数 |
io_stalls.level0_slowdown | 由于 level0_slowdown_writes_trigger 导致的 io stall 次数 |
io_stalls.level0_slowdown_with_compaction | 由于 level0_slowdown_writes_trigger 导致的 compaction 中的 io stall 次数 |
io_stalls.memtable_compaction | 由于所有的 memtable 都满了,flush 进程没跟上导致的 io stop 次数。 |
io_stalls.memtable_slowdown | 由于所有的 memtable 都满了,flush 进程没跟上导致的 io stall 次数。 |
io_stalls.slowdown_for_pending_compaction_bytes | compaction 中填充字节时 slowdown 的次数 |
io_stalls.stop_for_pending_compaction_bytes | compaction 中填充字节时 stop 的次数 |
io_stalls.total_slowdown | 发生 slowdown 的总次数 |
监控项 | 含义 |
---|---|
data_size | 数据大小(压缩后的) |
index_size | 索引大小(压缩后的) |
num_data_blocks | 数据块的数量 |
num_deletions | 删除的条目数量 |
num_entries | 现存的条目数量 |
raw_key_size | 原始的 key 大小(即压缩前的) |
raw_value_size | 原始的 value 大小(即压缩前的) |
监控项 | 含义 |
---|---|
engine:compaction:outfile:sync:micros | compact中outfile->Sync操作耗时统计 |
engine:compaction:times:cpu_micros | compact操作消耗cpu时间统计,每个单核会相加 |
engine:compaction:times:micros | compact操作耗时 |
engine:subcompaction:setup:times:micros | GenSubcompactionBoundaries执行耗时 |
engine:memtable:compaction:count | 未发现调用 |
engine:db:flush:micros | flush 操作持续的时间,单位 μs |
engine:dcompaction:input:raw:bytes | dcompaction 中输入的 kv 原始数据大小 |
engine:dcompaction:input:zip:bytes | dcompaction 中输入的磁盘上的数据大小 |
engine:dcompaction:output:file:raw:size | dcompaction 中每个文件的原始 kv 数据大小 |
engine:dcompaction:output:file:zip:size | dcompaction 中每个文件在磁盘上的大小 |
engine:lcompaction:input:raw:bytes | lcompaction 中输入的 kv 原始数据大小 |
engine:lcompaction:input:zip:bytes | lcompaction 中输入的磁盘上的数据大小 |
engine:lcompaction:output:file:raw:size | lcompaction 中每个文件的原始 kv 数据大小 |
engine:lcompaction:output:file:zip:size | lcompaction 中每个文件在磁盘上的大小 |
engine:numfiles:in:singlecompaction | 单个 compaction 的输入文件数量 |
engine:num:subcompactions:scheduled | 已经设定好边界的、准备压缩的 sub-compactions 的数量 |
监控项 | 含义 |
---|---|
engine:bytes:per:read | Get() 方法读到的 value 的大小 |
engine:bytes:per:write | Write() 方法写入的 value 的大小 |
engine:bytes:per:multiget | MultiGet() 方法读到的所有 value 的总大小 |
engine:cond:wait:nanos | 等待 db 的 condition 的时间,单位 ns |
engine:hard:rate:limit:delay:count | 未发现调用 |
engine:l0:slowdown:count | 未发现调用 |
engine:num:files:stall:count | 未发现调用 |
engine:soft:rate:limit:delay:count | 未发现调用 |
engine:db:get:micros | Get() 方法的耗时,单位 μs |
engine:db:multiget:micros | MultiGet() 方法的耗时,单位 μs |
engine:db:seek:micros | DBIter 类(Iterator 类的派生类)的 Seek() 方法的耗时,单位 μs |
engine:db:write:micros | Write() 方法的耗时,单位 μs |
engine:db:write:stall | 延迟写方法 DelayWrite() 的耗时,包含延迟时间,单位 μs |
engine:error:handler:autoresume:retry:count | 可恢复的后台 IO 错误的自动恢复尝试次数 |
engine:manifest:file:sync:micros | manifest 文件 sync 的时间,单位 μs |
engine:memtab:construct:nanos | 构建一个新的 memtable 的时间,单位 ns |
engine:memtab:write:kv:nanos | 在 memetable 写入 kv 的时间,单位 ns |
engine:mutex:wait:nanos | 等待 db 的 mutex 的时间,单位 ns |
engine:table:open:io:micros | 构建 table reader 时,打开 table 过程中 io 的时间,单位 μs |
engine:table:sync:micros | table 的 sync 时间,单位 μs |
engine:wal:file:sync:micros | wal 的 sync 时间,单位 μs |
engine:write:wal:nanos | 写 wal 的时间,单位 ns |
engine:num:sst:read:per:level | MultiGet() 在每个 level 读取的 sst 文件数 |
engine:number:per:multiget | 每次 MultiGet() 读取的 key 数量 |
engine:sst:batch:size | MultiGet() 中在单个 sst 文件中查找的 key 的数量,包含了有墓碑的 key 等 |
engine:sst:read:micros | Get() 或 MultiGet() 读 sst 的时间,不包含 Get() 延迟读的延迟时间,单位 μs |
engine:switch:wal:nanos | 切换 wal 文件的时间,单位 ns |
监控项 | 含义 |
---|---|
engine:bloom:filter:useful | 在 block_based_table 中读取时,使用 bloom filter 过滤掉的 key 数目 |
engine:bloom:filter:full:positive | 在 block_based_table 中读取时,使用 bloom filter 过滤后留下的 key 数目 |
engine:bloom:filter:full:true:positive | 在 block_based_table 中读取时,使用 bloom filter 过滤后留下的 ,并且真实存在的 key 数目 |
engine:bloom:filter:micros | 未发现调用 |
engine:memtable:hit | Get() 或 MultiGet() 在 memtable 中找到 key 的次数 |
engine:memtable:miss | Get() 或 MultiGet() 在 memtable 中未找到 key 的次数 |
engine:l0:hit | Get() 或 MultiGet() 在 L0 找到 key 的次数 |
engine:l1:hit | Get() 或 MultiGet() 在 L1 找到 key 的次数 |
engine:l2andup:hit | Get() 或 MultiGet() 在 L2 及以上 找到 key 的次数 |
engine:compaction: key:drop:new | compaction 中用被更新的值覆盖原来值的旧 key 的数量 |
engine:compaction: key:drop:obsolete | compaction 中的废弃的 key 的数量 |
engine:compaction: key:drop:range_del | compaction 中由范围墓碑覆盖的 key 的数量 |
engine:compaction: key:drop:user | compaction 中由用户 compaction 方法删除的 key 的数量 |
engine:compaction:range_del:drop:obsolete | compaction 中范围删除的 key 数量 |
engine:compaction:optimized:del:drop:obsolete | 由于文件间隙优化,在底层之前删除过时的内容的数量。 |
engine:compaction:cancelled | 因为没有足够的空间而取消的 compaction 次数 |
engine:number:keys:written | 通过 Put() 和 Write() 调用写入数据库的 key 数量 |
engine:number:keys:read | Get() 的 key 的数量 |
engine:number:keys:updated | 原地更新了 value 的 key 的数量(如果启用了原地更新) |
engine:bytes:read | DB::Get() 读取的未压缩字节数,可以来自 memtables、cache 或 table文件 |
engine:number:db:seek | DBIter::Seek() 的调用次数 |
engine:number:db:next | DBIter::Next() 的调用次数 |
engine:number:db:prev | DBIter::Prev() 的调用次数 |
engine:number:db:seek:found | 返回了数据的 DBIter::Seek() 的调用次数 |
engine:number:db:next:found | 返回了数据的 DBIter::Next() 的调用次数 |
engine:number:db:prev:found | 返回了数据的 DBIter::Prev() 的调用次数 |
engine:db:iter:bytes:read | 通过 Iterator 读到的未压缩的字节数,key 和 value 都算 |
engine:no:file:closes | 未发现调用 |
engine:no:file:opens | 构建 table reader 和 bolb file reader 时,打开的文件数 |
engine:no:file:errors | 构建 table reader 和 bolb file reader 时,打开失败的文件数 |
engine:l0:slowdown:micros | 已弃用 |
engine:memtable:compaction:micros | 已弃用 |
engine:l0:num:files:stall:micros | 已弃用 |
engine:stall:micros | 延迟写的延迟时间。 |
engine:db:cond:wait:nanos | 等待 db 的 condition 的时间,单位纳秒 |
engine:db:mutex:wait:nanos | 等待 db 的 mutex 的时间,单位纳秒 |
engine:rate:limit:delay:millis | 未发现调用 |
engine:num:iterators | 已弃用 |
engine:number:multiget:get | DB::MultiGet() 调用的次数 |
engine:number:multiget:keys:read | DB::MultiGet() 读取的 key 数量 |
engine:number:multiget:bytes:read | DB::MultiGet() 读取的字节数 |
engine:number:deletes:filtered | 未发现调用 |
engine:number:merge:failures | 失败的 Merge 操作数量 |
engine:bloom:filter:prefix:checked | 在文件上创建迭代器之前检查 bloom 的次数 |
engine:bloom:filter:prefix:useful | 在文件上创建迭代器之前检查 bloom 中,避免了创建迭代器的次数。 |
engine:number:reseeks:iteration | 在一次迭代中,为了跳过大量具有相同 userkey 的 key,我们必须 reseek 的次数。 |
engine:getupdatessince:calls | GetUpdatesSince() 的调用次数,用于跟踪事务日志迭代器刷新。 |
engine:wal:synced | 完成 wal 文件 sycn 的次数 |
engine:write:timeout | 未发现调用 |
engine:compact:read:marked:bytes | compact 由 DB::SuggestCompactRange() 标记要 compact 的文件时读的字节数 |
engine:compact:read:periodic:bytes | compact 过旧的 sst 文件时读的字节数 |
engine:compact:read:ttl:bytes | 基于 TTL 的 compaction 读的字节数 |
engine:compact:write:marked:bytes | compact 由 DB::SuggestCompactRange() 标记要 compact 的文件时写的字节数 |
engine:compact:write:periodic:bytes | compact 过旧的 sst 文件时写的字节数 |
engine:compact:write:ttl:bytes | 基于 TTL 的 compaction 写的字节数 |
engine:number:direct:load:table:properties | 不用创建 table reader,直接就能从文件加载获得的 table 属性数量 |
engine:merge:operation:time:nanos | Merge 操作的总耗时,单位 ns |
engine:filter:operation:time:nanos | compaction 中 filter 操作的总耗时,单位 ns |
engine:read:amp:estimate:useful:bytes | 写放大实际用到的字节数 |
engine:read:amp:total:read:bytes | 写放大全部读取的字节数 |
engine:number:rate_limiter:drains | 速率限制器的字节被完全消耗的重新填充间隔数。 |
engine:number:iter:skip | DBIter::Next() 跳过的 key 的数量 |
engine:number:multiget:keys:found | MultiGet() 实际找到的 key 的数量 |
engine:num:iterator:created | 已创建的 iterator 数量 |
engine:num:iterator:deleted | 已删除的 iterator 数量 |
engine:files:marked:trash | 被 sst 文件 manager 标记为垃圾的文件数 |
engine:files:deleted:immediately | 被 sst 文件 manager 通过 DeleteScheduler 立即删除的文件数 |
engine:error:handler:bg:errro:count | bg error handler 的数量 |
engine:error:handler:bg:io:errro:count | bg io error handler 的数量 |
engine:error:handler:bg:retryable:io:errro:count | bg retryable io error handler 的数量 |
engine:error:handler:autoresume:count | ErrorHandler 自动恢复 bg error 的次数 |
engine:error:handler:autoresume:retry:total:count | ErrorHandler 自动恢复中重试的次数 |
engine:error:handler:autoresume:success:count | ErrorHandler 自动恢复成功的次数 |
engine:bytes:written | DB::Put()、DB::Delete()、DB::Merge()、DB::Write() 发出的未压缩字节数。 |
engine:wal:bytes | 已写入 wal 的字节数 |
engine:flush:write:bytes | flush 期间写入的字节数 |
engine:write:self | 通过请求线程处理完成的写操作数量。 |
engine:write:other | 通过写入队列头部的线程处理完成的写操作数量 |
engine:write:wal | 请求 WAL 的 Write 调用数 |
engine:compact:read:bytes | compaction 期间读取的字节数 |
engine:compact:write:bytes | compaction 期间写入的字节数 |
engine:lcompact:write:bytes:raw | lcompact 中原始数据的大小,包括 key 和 value |
engine:dcompact:write:bytes:raw | dcompact 中原始数据的大小,包括 key 和 value |
engine:remote:compact:read:bytes | remote compaction 期间读取的字节数 |
engine:remote:compact:write:bytes | remote compaction 期间写入的字节数 |
engine:superversion_acquires | 获得的 superversion 数量 |
engine:superversion_cleanups | 删除的 superversion 数量 |
engine:superversion_releases | 释放的 superversion 数量 |
监控项 | 含义 |
---|---|
write bytes | rocksdb.bytes.written rocksdb.wal.bytes rocksdb.flush.write.bytes 的相关速率,具体看图表 label。 |
write batch | rocksdb.write.self rocksdb.write.other rocksdb.write.wal 的相关速率,具体看图表 label。 |
compact write | rocksdb.compact.write.bytes rocksdb.lcompact.write.bytes.raw rocksdb.remote.compact.write.bytes rocksdb.dcompact.write.bytes.raw 的相关速率,具体看图表 label。 |
compact read | rocksdb.compact.read.bytes rocksdb.remote.compact.read.bytes 的相关速率,具体看图表 label。 |
superversion | rocksdb.number.superversion_acquires rocksdb.number.superversion_releases rocksdb.number.superversion_cleanups 的相关速率,具体看图表 label。 |