内核监控指标说明

openGemini大约 17 分钟约 5157 字

本章节内容主要介绍openGemini自带的Kernel监控指标项,如果使用ts-monitor采集内核指标,会额外采集节点的内存利用率、cpu利用率、进程状态信息等,见system

一般建议用户关注如下数据表内的指标项:

  • Cluster_metric
  • Httpd
  • IO
  • Measurement_metric
  • RunTime
  • System

建议内核开发者或在对openGemini非常熟悉的核心用户可以关注其他表内容,可以通过指标窥探到openGemini实际运行情况,帮助理解和性能参数优化。比如Record表,统计了内存池的使用情况,如果出现大量大内存申请的情况,可以适当考虑将内存池空间调大。

Grafana看板查询语句示例

CPU利用率

SELECT sum("usage")/count("usage") FROM (SELECT last("usage") as "usage" FROM (SELECT mean("CpuUsage") as "usage" FROM system WHERE time < xxx AND time > xxx GROUP BY time(1m),"host" FILL(null)) GROUP BY "host")

内存利用率

SELECT sum("use")/sum("total") FROM (SELECT last("MemInUse") as "use", last("MemSize") as "total" FROM system WHERE time < xxx AND time > xxx GROUP BY "host")

磁盘平均使用率

SELECT sum("use")/sum("total") FROM (SELECT last("DiskUsed") as "use", last("DiskSize") as "total" FROM system WHERE time < xxx AND time > xxx GROUP BY "host")

集群写流量趋势(万metrics/s)

SELECT difference("write")/1000/60 as cluster_write_qps FROM (SELECT sum("write") as "write" FROM (SELECT last("fieldsWritten") AS "write" FROM httpd WHERE time > xxx AND time < xxx GROUP BY time(1m),* FILL(linear)) GROUP BY time(1m) FILL(linear) LIMIT 718 offset 1

每个TS-SQL的写带宽(MB/s)

SELECT difference("writeReqBytes")/1024/1024/10 AS "mean_writeReqBytes" FROM httpd WHERE time > xxx AND time < xxx GROUP BY hostname

这里difference("writeReqBytes")/1024/1024/10,采样周期时10s,最后除以10是计算每秒的数据

每个TS-SQL的写时延(ns)

SELECT difference("writeReqDurationNs")/difference("writeReq") AS "Duration" FROM httpd WHERE time > xxx AND time < xxx GROUP BY "hostname" FILL(null)

每个TS-STORE的写时延(ns)

SELECT difference("writeStorageDurationNs")/difference("WriteRowsBatch") AS "Duration" FROM performance WHERE time > xxx AND time < xxx GROUP BY "hostname" FILL(null)

每个TS-SQL的写QPS

SELECT difference("pointsWrittenOK")/10 FROM httpd WHERE time > xxx AND time < xxx GROUP BY "hostname" FILL(null)

采样周期时10s,最后除以10是计算每秒的数据

集群的查询QPS

SELECT difference("qr")/10 AS "QPS" FROM (SELECT sum(queryReq) AS "qr" FROM httpd WHERE time > xxx AND time < xxx GROUP BY time(10s))

采样周期时10s,最后除以10是计算每秒的数据

集群的查询时延

SELECT difference("duration")/difference("qr")/1000000 AS "latency" FROM (SELECT sum(queryReqDurationNs) AS "duration", sum(queryReq) AS "qr" FROM httpd WHERE time > xxx AND time < xxx GROUP BY time(2m))

磁盘写时延

SELECT mean(writeDuration)/mean(writeOkCount) FROM io WHERE time > xxx AND time < xxx GROUP BY(10s), hostname

Cluster_metric

指标名称数据类型说明
DBCountfloat集群中创建的DB总数
MstCountfloat集群中所所有DB中表的总数

Compact(LSM-Tree文件合并相关指标)

指标名称数据类型说明
Actionstringlevel/full,表示“level compact“ 还是 “full compact"
Appstring组件名
hostname组件Ip地址和端口
level表示Compact发生的level,分[0-7]
measurementCompact发生的表
shard_idCompact发生的shard
Activefloat当前运行的Compact任务数量
CompactedFileCountfloat单次任务,Compact后的文件数量
CompactedFileSizefloat单次任务,Compact后的文件总大小
Durationfloat单次Compact任务耗时
ErrorsfloatCompact错误次数
MaxMemoryUsedfloatCompact最大内存消耗
OriginalFileCountfloat单次任务,Compact的源文件数量
OriginalFileSizefloat单次任务,Compact的源文件总大小
Ratiofloat单次任务,Compact的压缩率
RecordPoolGetTotalfloat统计内存池分配Record对象的频次
RecordPoolHitTotalfloatRecord对象池累计命中次数,用于衡量内存复用效果)

DownSample(多级将采样相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
Activefloat当前运行的将采样任务数量
Errorsfloat将采样任务运行过程中产生的错误数量

Engine(存储引擎相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
CloseDurationsfloat存储引擎关闭耗时
CloseErrorsfloat存储引擎关闭过程出现错误的次数
DelIndexCountfloat存储引擎删除索引的总次数
DelIndexDurationfloat存储引擎删除索引的总耗时
DelIndexErrfloat存储引擎删除索引过程出现错误的次数
DelShardCountfloat存储引擎删除Shard的总次数
DelShardDurationfloat存储引擎删除Shard的总耗时
DelShardErrfloat存储引擎删除Shard过程出现错误的次数
DropDatabaseCountfloat存储引擎删除DB的总次数
DropDatabaseDurationsfloat存储引擎删除DB的总耗时
DropDatabaseErrsfloat存储引擎删除DB过程出现错误的总次数
DropMstCountfloat存储引擎删除表的总次数
DropMstDurationsfloat存储引擎删除表的总耗时
DropMstErrsfloat存储引擎删除表过程出现错误的总次数
DropRPCountfloat存储引擎删除RP的总次数
DropRPDurationsfloat存储引擎删除RP的总耗时
DropRPErrsfloat存储引擎删除RP过程出现错误的总次数
OpenDurationsfloat存储引擎启动的总耗时
OpenErrorsfloat存储引擎启动过程中出现的错误次数

Errno(错误信息)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
errnostring错误码
modulestring功能模块编码
valuefloat错误次数

Executor(查询引擎相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
agg_rows_countfloat暂未启用
agg_rows_lastfloat暂未启用
agg_rows_sumfloat暂未启用
column_length_countfloat暂未启用
column_length_lastfloat暂未启用
column_length_sumfloat暂未启用
column_width_countfloat暂未启用
column_width_lastfloat暂未启用
column_width_sumfloat暂未启用
dag_edge_countfloat暂未启用
dag_edge_lastfloat暂未启用
dag_edge_sumfloat暂未启用
dag_vertex_countfloat暂未启用
dag_vertex_lsatfloat暂未启用
dag_vertex_sumfloat暂未启用
exec_abort_countfloat查询计划的执行器被终止的总次数
exec_abort_lastfloat无意义,忽略
exec_abort_sumfloat无意义,忽略
exec_failed_countfloat查询计划的执行器执行失败的总次数
exec_failed_lastfloat无意义,忽略
exec_failed_sumfloat无意义,忽略
exec_run_time_countfloat查询计划的执行器执行总次数
exec_run_time_lastfloat最近一次执行时延
exec_run_time_sumfloat查询计划的执行器执行总时长
exec_scheduled_countfloat查询计划的执行器调度总次数
exec_scheduled_lastfloat无意义,忽略
exec_scheduled_sumfloat无意义,忽略
exec_timeout_countfloat查询计划的执行器超时总次数
exec_timeout_lastfloat无意义,忽略
exec_timeout_sumfloat无意义,忽略
exec_wait_time_countfloat查询计划的执行器申请内存资源总次数
exec_wait_time_lastfloat最近一次申请内存资源的等待时延(ns)
exec_wait_time_sumfloat查询计划的执行器申请内存资源是总时延(ns)
fill_rows_countfloat暂未启用
fill_rows_lastfloat暂未启用
fill_rows_sumfloat暂未启用
filter_rows_countfloat暂未启用
filter_rows_lastfloat暂未启用
filter_rows_sumfloat暂未启用
goroutine_countfloat查询计划的执行器执行总次数
goroutine_lastfloat最近一次查询计划执行时分配的goroutine数量
goroutine_sumfloat总的goroutine数量
limit_rows_countfloat暂未启用
limit_rows_lastfloat暂未启用
limit_rows_sumfloat暂未启用
materialized_rows_countfloat暂未启用
materialized_rows_lastfloat暂未启用
materialized_rows_sumfloat暂未启用
memory_countfloat查询计划的执行器执行总次数
memory_lastfloat最近一次查询计划执行时使用内存大小
memory_sumfloat查询计划的执行器累计使用内存大小
merge_rows_countfloat暂未启用
merge_rows_lastfloat暂未启用
merge_rows_sumfloat暂未启用
sink_length_countfloat暂未启用
sink_length_lastfloat暂未启用
sink_length_sumfloat暂未启用
sink_rows_countfloat总次数
sink_rows_lastfloat最近一次执行器执行时出口数据行数
sink_rows_sumfloat执行器执行时出口数据总行数
sink_width_countfloat总次数
sink_width_lastfloat最近一次执行器执行时出口数据列宽
sink_width_sumfloat执行器执行时出口数据总列宽
source_length_countfloat暂未启用
source_length_lastfloat暂未启用
source_length_sumfloat暂未启用
source_rows_countfloat总次数
source_rows_lastfloat最近一次执行器执行时入口数据行数
source_rows_sumfloat执行器执行时入口数据总行数
source_width_countfloat总次数
source_width_lastfloat最近一次执行器执行时入口数据列宽
source_width_sumfloat执行器执行时入口数据总列宽
trans_abort_countfloat暂未启用
trans_abort_lastfloat暂未启用
trans_abort_sumfloat暂未启用
trans_failed_abort_countfloat暂未启用
trans_failed_abort_lastfloat暂未启用
trans_failed_abort_sumfloat暂未启用
trans_failed_countfloat暂未启用
trans_failed_lastfloat暂未启用
trans_failed_sumfloat暂未启用
trans_run_time_countfloat暂未启用
trans_run_time_lastfloat暂未启用
trans_run_time_sumfloat暂未启用
trans_wait_time_countfloat暂未启用
trans_wait_time_lastfloat暂未启用
trans_wait_time_sumfloat暂未启用

FileStat(存储文件信息)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
databasestring数据库名
idstring??
measurementstring表名称
pathstring数据文件路径
retentionPolicystring数据库对应的数据保留策略名称
FileCountfloat表的数据文件数量
FileSizefloat表的数据文件大小

FileStat_Level(存储文件信息,按Compact Level维度统计)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
databasestring数据库名
levelstring数据文件Level
FileCountfloat数据库中,当前Level的数据文件总数
FileSizefloat数据库中,当前Level的数据文件总大小

Httpd(对外相关统计信息)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
WriteMapRowsDurationNsfloat
WriteStreamRoutineDurationNsfloat
WriteUpdateIndexDurationNsfloat暂未启用
authFailfloat用户认证失败次数
clientErrorfloat服务器返回4xx错误次数
connectionNumfloat客户端连接数量
fieldsWrittenfloat写入的field列数
pingReqfloat收到的ping请求数
pointsWrittenDroppedfloat批量写入时,部分写失败的数据总条数
pointsWrittenFailfloat写失败的数据条数(全部失败)
pointsWrittenOKfloat写成功的数据条数
query400ErrorStmtCountfloat查询时,服务器400错误的次数
queryErrorStmtCountfloat查询失败的查询语句数量
queryReqfloat接收到客户端查询请求数量
queryReqActivefloat当前活跃的查询请求数量
queryReqDurationNsfloat累计查询时延(ns)
queryRespBytesfloat查询返回的数据总量(按Byte计算)
queryStmtCountfloat查询语句总数
recoveredPanicsfloat处理程序Panic的总次数
reqfloat累计接收客户端请求数(含读和写)
reqActivefloat当前活跃请求数
reqDurationNsfloat所有请求的累计响应时延(ns)
scheduleUnmarshalDnsfloat数据反序列化累计耗时
serverErrorfloat服务器返回5xx错误累计次数
statusReqfloat'/status'接口接收到的请求数
write400ErrReqfloat找不到数据库、权限不足等问题导致的错误累计次数
write500ErrReqfloat写数据出现服务器内部错误的累计次数
writeCreateMstDurationNsfloat写时创表过程的时延(ns)
writeCreateSgDurationNsfloat写时创建ShardGroup过程的时延
writeReqfloat服务器接收到写请求累计次数
writeReqActivefloat当前活跃的写请求数量
writeReqDurationNsfloat写数据累计时延(ns)
writeReqBytesfloat写入成功的总数据量(按Byte计算)
writeReqBytesInfloat总的写数据量(含写失败和写成功)
writeReqParseDurationNsfloat解析写入数据格式的累计时延
writeStoresDurationNsfloat数据写存储引擎的累计时延
writeUnmarshalSkDurationNsfloat暂未启用
writeUpdateSchemaDurationNsfloat更新表元数据(如新增Field)过程产生的累计时延(ns)

IO

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
readActiveBytesfloat暂未启用
readActiveCountfloat暂未启用
readCacheCountfloat暂未启用
readCacheMemfloat存储引擎读文件时使用的block cache大小
readCacheRatiofloatblock cache命中率
readDurationfloat读文件的IO累计时延
readOkBytesfloat读文件IO成功读取的累计数据量(按Byte计算)
readOkCountfloat读文件IO成功的次数
readTotalBytesfloat读IO总的数据量(按Byte计算)
readTotalCountfloat读IO总的次数
snapshotSizefloat快照文件大小(累计,按Byte计算)
snapshotCountfloat快照次数
syncActiveCountfloat暂未启用
syncDurationfloat累计刷盘File.Sync()时延(ns)
syncOKCountfloat成功刷盘的次数
syncTotalCountfloat总的刷盘次数
writeActiveBytesfloat暂未启用
writeActiveCountfloat暂未启用
writeDurationfloat累计写IO时延(File.Write())
writeOkBytesfloat写文件IO成功写入的累计数据量(按Byte计算)
writeOkCountfloat写IO次数
writeTotalBytesfloat写IO总数据量(按Byte计算)
writeTotalCountfloat写IO总次数

Measurement_metric

指标名称数据类型说明
databasestring数据库名
measurementstring表名
seriesCountfloat时间线数量

Merge(文件合并相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
Measurementstring表名
ShardIdstring分片ID
Activefloat当前运行中的乱序数据合并任务数
CurrentOutOfOrderFilefloat暂未启用
Durationfloat暂未启用
Errorsfloat乱序合并时出现错误累计次数
MergeFileCountfloat单次任务,乱序合并后的文件总数
MergeFileSizefloat单次任务,乱序合并后的文件总大小
OrderFileCountfloat单次任务,有序文件总数
OrderFileSizefloat单次任务,有序文件总大小
SkipTotalfloat单次任务,不满足乱序合并条件,跳过合并的次数

Meta(元数据管理相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
Hoststringstore节点地址
NodeIDstringstore节点ID
LTimefloatts-meta管理的ts-store用的逻辑时钟,确保seriesID递增
LeaderSwitchTotalfloatleader节点故障导致切主的累计次数
SnapshotDataSizefloat将当前系统状态(如节点信息等)写入快照的数据大小
SnapshotTotalfloat保存系统状态的次数(通过快照保存)
SnapshotUnmarshalDurationfloatts-sql获取meta全量元数据时,meta向sql回复的快照数据反序列化时延(ns)
Statusfloatmeta节点状态,1(健康), 4(故障)
storeApplyTotalfloat集群管理类、DDL类命令需要在ts-meta上创建元数据,会调用Apply()方法存储数据,这里统计总次数

MetaRaft(ts-meta上Raft相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
NodeIDstringts-meta节点ID
Statusfloat节点角色,0(follower), 1(cadidate), 2(leader)
foofloat无意义,后期版本将删除

metadata(故障接管相关指标,共享存储支持)

performance(存储数据时的各项指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
FlushOrderRowsCountfloat下盘的有序数据总行数
FlushRowsCountfloat下盘的数据总行数(含有序和乱序)
FlushSnapshotCountfloat存储引擎缓存数据刷盘次数
FlushSnapshotDurationNsfloat缓存刷盘的累计时延(ns),包括申请资源、缓存数据排序、刷盘、资源释放、删除WAL日志等过程
FlushUnOrderRowsCountfloat下盘的乱序数据总行数
SnapshotFlushChunksNsfloat特指FlushChunks方法刷盘的累计时延(ns)
SnapshotHandleChunksNsfloat无意义,后期版本将删除
SnapshotSortChunksNsfloat特指刷盘前排序过程的累计时延(ns)
WriteActiveRequestsfloatts-store节点上, 当前正在写入的任务数
WriteAddSidRowCountNsfloat暂未启用
WriteCreateShardNsfloatts-store节点上,创建新的分片(shard)累计时延(ns)
WriteFieldsCountfloatts-store节点上,写入的指标列(Field)的总数
WriteGetMstInfoNsfloatts-sotre节点上,写入数据时查询表信息的累计时延
WriteGetTokenDurationNsfloatts-sotre节点上,写入数据时,流控逻辑中等待资源分配的累计时延(ns)
WriteIndexDurationNsfloatts-store节点上,写入数据时创建索引的累计时延(ns)
WriteMstInfoNsfloatts-store节点上,写入缓存的累计时延(特指在write_rows方法中的写时延)
WriteReqErrorsfloatts-store节点上,写数据出错的总次数
WriteRowsBatchfloatts-store节点上,批量写入的次数,衡量数据写入频次
WriteRowsCountfloatts-store节点上,数据写入总的行数
WriteRowsDurationNsfloatts-store节点上,写入缓存的累计时延(粒度比WriteMstInfoNs更粗)
WriteShardKeyIdxNsfloatts-store节点上,创建ShardKeyIndex的总时延
WriteSortIndexDurationNsfloatts-store节点上,写索引数据之前索引数据排序的总时延(ns)
WriteStorageDurationNsfloatts-store节点上,整个写入流程的总时延
WriteUnmarshalNsfloatts-store节点接收到数据后,反序列化所需时延(累计)
WriteWalDurationNsfloat写WAL累计时延(ns)

record(内存池相关指标)

openGemini内部大量使用内存池,根据作用范围可分为:

  • AggPool
  • CircularRecordPool
  • FileCursorPool
  • IntervalRecordPool
  • SequenceAggPool
  • SeriesPool
  • TsmMergePool
  • TsspSequencePool

每一种Pool采集Abort(累计值)/Get(累计值)/ReUse(累计值)/InUse(当前值)四类指标,分别表示对象申请内存空间过大,不再放回内存池,直接释放的次数;申请内存次数;内存复用的次数;正在使用的内存对象个数。可用于内核参数调优的依据。

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
AggPoolAbortfloat内存直接释放的次数
AggPoolGetfloat申请内存次数
AggPoolGetReUsefloat内存复用的次数
AggPoolInUsefloat正在使用内存的对象个数
CircularRecordPoolAbortfloat内存直接释放的次数
CircularRecordPoolGetfloat申请内存次数
CircularRecordPoolGetReUsefloat内存复用的次数
CircularRecordPoolInUsefloat正在使用内存的对象个数
FileCursorPoolAbortfloat内存直接释放的次数
FileCursorPoolGetfloat申请内存次数
FileCursorPoolGetReUsefloat内存复用的次数
FileCursorPoolInUsefloat正在使用内存的对象个数
IntervalRecordPoolAbortfloat内存直接释放的次数
IntervalRecordPoolGetfloat申请内存次数
IntervalRecordPoolGetReUsefloat内存复用的次数
IntervalRecordPoolInUsefloat正在使用内存的对象个数
SequenceAggPoolAbortfloat内存直接释放的次数
SequenceAggPoolGetfloat申请内存次数
SequenceAggPoolGetReUsefloat内存复用的次数
SequenceAggPoolInUsefloat正在使用内存的对象个数
SeriesPoolAbortfloat内存直接释放的次数
SeriesPoolGetfloat申请内存次数
SeriesPoolGetReUsefloat内存复用的次数
SeriesPoolInUsefloat正在使用内存的对象个数
TsmMergePoolAbortfloat内存直接释放的次数
TsmMergePoolGetfloat申请内存次数
TsmMergePoolGetReUsefloat内存复用的次数
TsmMergePoolInUsefloat正在使用内存的对象个数
TsspSequencePoolAbortfloat内存直接释放的次数
TsspSequencePoolGetfloat申请内存次数
TsspSequencePoolGetReUsefloat内存复用的次数
TsspSequencePoolInUsefloat正在使用内存的对象个数

RunTime(运行时内存指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
Allocfloat已分配但未释放的内存大小
CpuUsagefloatcpu利用率
Freesfloat累计释放堆对象的内存大小
HeapAllocfloat同Alloc
HeapIdlefloat空闲(未使用)Span内存大小,衡量内存碎片程度
HeapInUsefloat使用中的内存(最大值)
HeapObjectsfloat累计分配的堆对象总数
HeapReleasedfloat返还给OS的物理内存大小
HeapSysfloat从OS为堆申请的内存大小
Lookupsfloat运行时执行的指针查找数
Mallocsfloat分配堆对象的累计数量
NumGCfloat完成的GC数量
NumGoroutinefloat产生的Goroutine数量
PauseTotalNsfloat从程序开始时累计暂停时长(ns)
Sysfloat从OS申请的内存大小
TotalAllocfloat累计为对象分配的内存大小,衡量内存累计使用量

spdy(组件间连接复用相关指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
linkstring连接方向"sql2meta","sql2store"
remote_addrstring对端IP地址
connTotalfloat全部连接数(内部)
successCreateSessionTotalfloat成功创建的连接会话数量

stream(流计算相关指标)

指标名称数据类型说明
StreamFilterfloat流式聚合中条件过滤的次数
StreamFilterNumfloat流式聚合中条件过滤处理的数据行数
StreamInfloat流式聚合中,写管道次数
StreamInNumfloat流式聚合中,写入管道的总数据行数

Stream_window(流式窗口聚合指标)

指标名称数据类型说明
appstring组件名
hostnamestring组件IP地址和端口
windowstring流式聚合的窗口

System(节点指标)

指标名称数据类型说明
hoststring组件IP地址和端口
AuxDiskSizefloat辅助磁盘容量,一般将WAL文件存储在不同的磁盘上,提高数据的安全性,见ts-monitor.conf aux-disk-path配置项
AuxDiskUsagefloat辅助磁盘空间使用率
AuxDiskUsedfloat辅助磁盘已使用容量
CpuNumfloat节点CPU核数
CpuUsagefloat节点CPU利用率
DiskSizefloat节点主磁盘容量
DiskUsagefloat节点主磁盘空间使用率
DiskUsedfloat节点主磁盘已使用磁盘容量
IndexUsedfloat索引数据使用磁盘容量
MemCacheBufffloat内存的缓存和缓冲区大小
MemInUsefloat已使用的内存大小
MemSizefloat节点内存容量
MemUsagefloat节点内存使用率
MetaPidfloatts-meta的进程ID
MetaStatusfloatmeta进程状态,1(runing) 0(killed)
SqlPidfloatts-sql的进程ID
SqlStatusfloatsql进程状态,1(runing) 0(killed)
StorePidfloatts-store进程ID
StoreStatusfloatstore进程状态,1(runing) 0(killed)
Uptimefloat节点运行时长(s)