system.asynchronous_metrics
该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处。
描述
包含在后台定期计算得到的指标。例如,当前正在使用的 RAM 大小。
列
示例
指标说明
以下说明由 utils/generate-async-metrics-docs 根据 C++ 源代码生成。唯一的权威来源是 src/Common/AsynchronousMetrics.cpp、src/Interpreters/ServerAsynchronousMetrics.cpp 和 src/Coordination/KeeperAsynchronousMetrics.cpp 中各指标注册项旁边的字符串字面量。包含可变后缀 (按磁盘、按 CPU、按 interface 等) 的指标名称会以 *name* placeholder 的形式显示;运行中的服务器会将其替换为具体后缀后再上报。
AsynchronousHeavyMetricsCalculationTimeSpent
用于计算异步重型(与表相关)指标所花费的时间,单位为秒(即异步指标的额外开销)。
AsynchronousHeavyMetricsUpdateInterval
繁重(与表相关)指标的更新间隔
AsynchronousMetricsCalculationTimeSpent
用于计算异步指标所花费的时间(以秒为单位),即异步指标带来的额外开销。
AsynchronousMetricsUpdateInterval
异步指标更新间隔
AsyncLoggingmetric_firstQueueSize
此通道中已排队、等待写入日志的异步消息数
BlockActiveTime_name
块设备中 IO 请求处于队列中的时间(以秒为单位)。这是一个系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockActiveTimePerOp_name
与 BlockActiveTime 指标类似,但其数值会除以 IO 操作次数,以计算每次操作的耗时。
BlockDiscardBytes_name
块设备上被丢弃的字节数。这些操作主要适用于 SSD。ClickHouse 本身不会执行 discard 操作,但系统上的其他进程可能会使用。这是一个系统级指标,包含主机上所有进程的数据,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockDiscardMerges_name
从块设备请求并由操作系统 I/O 调度器合并的丢弃(discard)操作次数。这些操作与 SSD 相关。ClickHouse 本身不使用丢弃操作,但系统上的其他进程可能会使用。这是一个系统级别指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockDiscardOps_name
从块设备请求的 discard 操作次数。这些操作与 SSD 相关。ClickHouse 自身不会使用 discard 操作,但系统上的其他进程可能会使用它们。这是一个系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockDiscardTime_name
以秒为单位,表示在块设备上执行的 discard 请求操作所花费的时间,总计所有此类操作。这些操作主要与 SSD 相关。ClickHouse 本身不会使用 discard 操作,但系统上的其他进程可能会使用。这是一个系统范围的指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockInFlightOps_name
该值统计已发出到设备驱动程序但尚未完成的 I/O 请求数量。不包括仍在队列中但尚未发出到设备驱动程序的 I/O 请求。此为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockQueueTime_name
该值记录 IO 请求在此块设备上等待的毫秒数。如果同时有多个 IO 请求在等待,则该值会按照“等待的毫秒数 × 等待的请求数量”的乘积增长。该指标是系统级的,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockQueueTimePerOp_name
与 BlockQueueTime 指标类似,但该值会除以 IO 操作次数,以计算每次操作耗时。
BlockReadBytes_name
从块设备读取的字节数。由于使用了可节省 IO 的操作系统页缓存,该值可能小于从文件系统读取的字节数。该指标是系统范围的,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockReadMerges_name
从块设备请求的读操作数量,这些读操作由操作系统的 I/O 调度器合并在一起。该指标是系统级的,包含主机上的所有进程,而不仅仅是 clickhouse-server。数据来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockReadOps_name
从块设备请求的读操作次数。これは系统范围的指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockReadTime_name
以秒为单位,表示对块设备发起的所有读操作所耗费时间的总和。该指标为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockWriteBytes_name
写入到块设备的字节数。由于使用了可以节省 IO 的操作系统页面缓存,该值可能小于写入到文件系统的字节数。由于直写缓存机制,对块设备的写入可能会晚于对文件系统的相应写入。这是一个系统级指标,包含宿主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockWriteMerges_name
从块设备发起并由操作系统 IO 调度器合并的写操作请求次数。这是一个系统范围的指标,包含主机上所有进程,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockWriteOps_name
从块设备请求的写操作次数。这是一个系统级指标,包含主机上所有进程的操作,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
BlockWriteTime_name
以秒为单位,表示块设备上所有写入操作所耗费时间的总和。该指标为系统级指标,包含主机上所有进程的贡献,而不仅仅是 clickhouse-server。来源:/sys/block。参见 https://www.kernel.org/doc/Documentation/block/stat.txt
CGroupMaxCPU
根据 CGroups 确定的最大 CPU 核心数。
CGroupMemoryTotal
cgroup 中的内存总量,单位为字节。如果该值为 0,则限制与 OSMemoryTotal 相同。
CGroupMemoryUsed
cgroup 中已使用的内存量,单位为字节。在 cgroup v2 中,它指 anon + sock + 不可回收的内核内存;在 cgroup v1 中,它指 RSS。在这两种情况下,均不包括内核操作系统页缓存 (由文件支持的缓存) 。
CGroupMemoryUsedWithoutPageCache
cgroup 中已使用的内存量 (以字节为单位) ,不包括 ClickHouse 用户态页缓存。该值等于 CGroupMemoryUsed 减去用户态页缓存的大小。禁用用户态页缓存时,此值等于 CGroupMemoryUsed。
CGroupSystemTime
CPU 核心用于运行操作系统内核 (system) 代码的时间占比。
CGroupSystemTimeNormalized
该值与 CGroupSystemTime 类似,但会除以可用 CPU 核心数,因此无论核心数量多少,结果都会落在 [0..1] 区间内。这样一来,即使集群中多台服务器的核心数并不一致,你也可以对该指标在这些服务器上的值取平均,仍然得到平均资源利用率指标。如果指定了 Cgroup CPU 配额,则可以用其除以周期得到的值来代替实际 CPU 核心数;在这种情况下,该指标的值在某些时刻可能会超过 1。
CGroupUserTime
CPU 核心运行用户态代码时间的占比。这也包括由于 CPU 内部原因导致 CPU 未被充分利用的时间 (例如内存加载、流水线停顿、分支预测失败、在同一物理核上的另一 SMT 逻辑核心运行) 。
CGroupUserTimeNormalized
该值与 CGroupUserTime 类似,但会除以可用的 CPU 核心数,因此无论核心数多少,结果都会落在 [0..1] 区间内。这使您即使在集群中各服务器的核心数不一致,也能对该指标在多台服务器上的值求平均,并仍然得到平均资源利用率指标。如果指定了 Cgroup CPU 配额,也可以用其配额除以周期的结果来代替实际的 CPU 核心数;在这种情况下,该指标的值在某些时刻可能会超过 1。
CPUFrequencyMHz_core_id
CPU 当前的频率,单位为 MHz。大多数现代 CPU 会出于节能和 Turbo Boost 的目的动态调整频率。
DictionaryMaxUpdateDelay
字典更新的最大延迟时间 (以秒为单位)
DictionaryTotalFailedUpdates
自上次成功加载以来,所有字典发生的错误总数。
DiskAvailable_name
磁盘 (虚拟文件系统) 上的可用字节数。远程文件系统可能不会提供此信息,并且可能会显示一个很大的值,例如 16 EiB。
DiskGetObjectThrottlerAvailable_name
当前磁盘 (虚拟文件系统) 上在不触发限流的情况下可发出的 GetObject 请求数量。本地文件系统可能不会提供此信息。
DiskGetObjectThrottlerRPS_name
磁盘上 GetObject 请求的限流上限,以每秒请求数表示 (虚拟文件系统) 。本地文件系统可能不提供此信息。
DiskPutObjectThrottlerAvailable_name
磁盘 (虚拟文件系统) 上当前可发出的 PutObject 请求数,且不会达到限流阈值。本地文件系统可能不提供此信息。
DiskPutObjectThrottlerRPS_name
磁盘上的 PutObject 请求限流上限,单位为每秒请求数 (虚拟文件系统) 。本地文件系统可能不提供此信息。
DiskTotal_name
磁盘 (虚拟文件系统) 的总大小 (以字节为单位) 。远程文件系统可能不提供此信息,并且可能会显示一个非常大的数值,例如 16 EiB。
DiskUnreserved_name
磁盘 (虚拟文件系统) 在不包括为合并、拉取和移动预留空间时的可用字节数。远程文件系统可能不提供此信息,并且可能会显示类似 16 EiB 这样的大值。
DiskUsed_name
磁盘 (虚拟文件系统) 上已使用的字节数。远程文件系统不一定总能提供此信息。
EDACi_Correctable
可纠正的 ECC 内存错误数量。该值偏高表明 RAM 可能存在故障,必须立即更换,因为当已纠正错误数量较多时,也可能同时出现静默错误,从而导致数据损坏。来源:/sys/devices/system/edac/mc/
EDACi_Uncorrectable
不可纠正的 ECC 内存错误数。该值非零表示 RAM 存在故障,必须立即更换,因为这表明可能发生数据损坏。来源:/sys/devices/system/edac/mc/
FilesystemCacheBytes
cache 虚拟文件系统中缓存占用的总字节数。该缓存存储在磁盘上。
FilesystemCacheCapacity
cache 虚拟文件系统中的总容量。此缓存存储在磁盘上。
FilesystemCacheFiles
cache 虚拟文件系统中缓存的文件段总数。此缓存驻留在磁盘上。
FilesystemLogsPathAvailableBytes
ClickHouse 日志路径所在卷上可用的字节数。若该值接近零,应在配置文件中调整日志轮转策略。
FilesystemLogsPathAvailableINodes
在挂载了 ClickHouse 日志路径的卷上可用的 inode 数量。
FilesystemLogsPathTotalBytes
挂载了 ClickHouse 日志路径的卷的大小,以字节为单位。建议为日志预留至少 10 GB 的空间。
FilesystemLogsPathTotalINodes
ClickHouse 日志路径所在卷上的 inode 总数。
FilesystemLogsPathUsedBytes
在挂载 ClickHouse 日志路径的卷上已使用的字节数。
FilesystemLogsPathUsedINodes
挂载了 ClickHouse 日志路径的卷上已使用的 inode 数量。
FilesystemMainPathAvailableBytes
挂载主 ClickHouse 路径的卷上可用的字节数。
FilesystemMainPathAvailableINodes
在挂载了 ClickHouse 主路径的卷上可用 inode 的数量。如果该值接近零,则表示存在配置错误,即使磁盘尚未已满,你也会遇到 “no space left on device” 错误。
FilesystemMainPathTotalBytes
主 ClickHouse 路径所挂载的卷大小,以字节为单位。
FilesystemMainPathTotalINodes
主 ClickHouse 目录所在卷上的 inode 总数。若该值小于 2500 万,则表示存在配置错误。
FilesystemMainPathUsedBytes
主 ClickHouse 路径所在卷上已使用的字节数。
FilesystemMainPathUsedINodes
在挂载 ClickHouse 主路径的卷上已使用的 inode 数量。该值通常与文件数量大致相对应。
GRPCRejectedConnections
GRPC 协议的被拒绝连接数。
GRPCThreads
GRPC 协议服务器使用的线程数。
HashTableStatsCacheEntries
哈希表大小缓存中的条目数量。哈希表大小缓存用于对 GROUP BY 做预测性优化。
HashTableStatsCacheHits
哈希表大小预测正确的次数。
HashTableStatsCacheMisses
哈希表大小预测错误的次数。
HTTPConnectionPoolgroup_nameTCPRcvBufTotalBytes
所有 HTTP 连接池套接字的内核 TCP 接收缓冲区内存 (sk_rmem_alloc) 总量。
HTTPConnectionPoolgroup_nameTCPSndBufTotalBytes
所有 HTTP 连接池套接字的内核 TCP 发送缓冲区内存 (sk_wmem_alloc) 总和。
HTTPRejectedConnections
HTTP 接口 (未使用 TLS) 的拒绝连接数。
HTTPSecureRejectedConnections
HTTPS 接口的被拒绝连接数。
HTTPSecureThreads
HTTPS 接口服务器所使用的线程数。
HTTPThreads
HTTP 接口服务器的线程数(不包括 TLS)。
InterserverRejectedConnections
副本间通信协议 (不使用 TLS) 的被拒绝连接数。
InterserverSecureRejectedConnections
使用 TLS 的副本通信协议的被拒绝连接数。
InterserverSecureThreads
用于副本间通信协议的服务器线程数量(使用 TLS)。
InterserverThreads
用于副本间通信协议服务器的线程数量(不使用 TLS)。
jemalloc.active
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.allocated
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.arenas.all.dirty_purged
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.arenas.all.muzzy_purged
底层内存分配器(jemalloc)的内部指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.arenas.all.pactive
底层内存分配器(jemalloc)的内部指标。详见 https://jemalloc.net/jemalloc.3.html
jemalloc.arenas.all.pdirty
底层内存分配器(jemalloc)的内部指标。请参阅 https://jemalloc.net/jemalloc.3.html
jemalloc.arenas.all.pmuzzy
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.arenas.dirty_decay_ms
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.background_thread.num_runs
低层内存分配器(jemalloc)的内部度量指标。详见 https://jemalloc.net/jemalloc.3.html
jemalloc.background_thread.num_threads
底层内存分配器(jemalloc)的内部指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.background_thread.run_intervals
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.cache_arena.pactive
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.cache_arena.pdirty
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.epoch
jemalloc(Jason Evans 的内存分配器)统计信息的内部增量更新序号,在所有其他 jemalloc 指标中都会使用。
jemalloc.mapped
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.mergetree_arena.active_bytes
专用 jemalloc MergeTree arena 中的活跃字节数。它保存生命周期较长的 MergeTree 堆状态:包括每个 part 的元数据 (NamesAndTypesList、SerializationInfoByName、serializations map、column_name_to_position、MergeTreeDataPartChecksums 树、每个 IMergeTreeDataPart 内部的 Poco::LRUCache<String, ColumnSize> 委托对象、每个 part 的 ColumnSize/IndexSize map、MinMaxIndex、VersionMetadataOnDisk,以及 MergeTreeDataPart{Compact,Wide} 对象本身) ,以及每个表的元数据 (由 setProperties 建立的 StorageInMemoryMetadata / ColumnsDescription / VirtualColumnsDescription 克隆、serialization_hints 聚合,以及 columns_descriptions_cache) 。活动 parts 和等待清理的过期分区片段都会计入。它与缓存 arena 和 JIT arena 相互独立。每个 part 的列 system.parts.primary_key_bytes_in_memory[_allocated] 和 system.parts.index_granularity_bytes_in_memory[_allocated] 都是此指标的子集 (当其值非零时——它们也可能位于 PrimaryIndexCacheBytes 中;后者属于缓存 arena,因此不计入这里) 。
jemalloc.mergetree_arena.dirty_bytes
MergeTree arena 中可回收并返还给操作系统的脏字节数。
jemalloc.mergetree_arena.pactive
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.mergetree_arena.pdirty
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.metadata
底层内存分配器(jemalloc)的内部度量指标。请参见 https://jemalloc.net/jemalloc.3.html
jemalloc.metadata_thp
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.prof.active
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.prof.lg_sample
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.prof.thread_active_init
底层内存分配器 (jemalloc) 的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.resident
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
jemalloc.retained
底层内存分配器(jemalloc)的内部度量指标。参见 https://jemalloc.net/jemalloc.3.html
抖动
用于计算异步指标的线程计划唤醒时间与其实际被唤醒时间之间的差值。是衡量整体系统延迟和响应性的一个间接指标。
KeeperApproximateDataSize
ClickHouse Keeper 的近似数据大小 (以字节为单位) 。
KeeperAvgLatency
ClickHouse Keeper 的平均请求延迟。
KeeperCommitLogsCacheEntries
内存缓存中存储的待提交后续日志条目数
KeeperCommitLogsCacheSize
用于缓存下一批待提交日志的内存总大小
KeeperEphemeralsCount
ClickHouse Keeper 中临时节点的数量。
KeeperFollowers
ClickHouse Keeper 的 follower 节点数量。
KeeperIsExceedingMemorySoftLimitHit
如果 ClickHouse Keeper 超过内存软限制,则为 1,否则为 0。
KeeperIsFollower
如果 ClickHouse Keeper 是跟随者,则为 1;否则为 0。
KeeperIsLeader
如果 ClickHouse Keeper 为 leader,则值为 1;否则为 0。
KeeperIsObserver
如果 ClickHouse Keeper 是观察者,则为 1;否则为 0。
KeeperIsStandalone
如果 ClickHouse Keeper 处于独立模式,则值为 1;否则为 0。
KeeperKeyArenaSize
ClickHouse Keeper 中用于键的内存区域大小 (以字节为单位) 。
KeeperLastCommittedLogIdx
ClickHouse Keeper 中最后一个已提交日志条目的索引。
KeeperLastLogIdx
ClickHouse Keeper 中存储的最后一条日志的索引。
KeeperLastLogTerm
ClickHouse Keeper 中存储的最后一条日志的 Raft 任期。
KeeperLastSnapshotIdx
最近一次创建的快照中最后一条日志的索引。
KeeperLatestLogsCacheEntries
内存中缓存的最新日志条目数
KeeperLatestLogsCacheSize
最新日志的内存中缓存总大小
KeeperLatestSnapshotSize
ClickHouse Keeper 创建的最新 snapshot 的未压缩大小,以字节为单位。
KeeperMaxFileDescriptorCount
ClickHouse Keeper 中打开的文件描述符数量上限。
KeeperMaxLatency
ClickHouse Keeper 的最大请求延迟。
KeeperMinLatency
ClickHouse Keeper 的最低请求延迟。
KeeperOpenFileDescriptorCount
ClickHouse Keeper 中已打开的文件描述符数量。
KeeperPacketsReceived
ClickHouse Keeper 接收到的数据包数量。
KeeperPacketsSent
ClickHouse Keeper 已发送的数据包数量。
KeeperPathsWatched
ClickHouse Keeper 客户端监听的不同路径数。
KeeperSessionWithWatches
带有 watch 的 ClickHouse Keeper 客户端会话数量。
KeeperSyncedFollowers
处于同步状态的 ClickHouse Keeper 跟随者数量。
KeeperTargetCommitLogIdx
在 ClickHouse Keeper 中,日志可提交到的最大索引位置。
KeeperTCPRejectedConnections
Keeper TCP 协议 (不使用 TLS) 的拒绝连接数。
KeeperTCPSecureRejectedConnections
使用 TLS 的 Keeper TCP 协议被拒绝的连接数。
KeeperTCPSecureThreads
启用 TLS 的 Keeper TCP 协议服务器的线程数。
KeeperTCPThreads
Keeper TCP 协议服务器的线程数(未启用 TLS)。
KeeperWatchCount
ClickHouse Keeper 中 watch 的数量。
KeeperZnodeCount
ClickHouse Keeper 中的节点 (数据条目) 总数。
KeeperZxid
ClickHouse Keeper 中当前的事务 ID (zxid) 。
LoadAverage1
整个系统负载,使用 1 分钟时间窗口的指数平滑计算得到的平均值。该负载表示在所有进程中 (即 OS 内核的调度实体) ,当前正在 CPU 上运行、等待 I/O,或已就绪但此刻尚未被调度运行的线程数量。这个数量包含所有进程,而不仅仅是 clickhouse-server。若系统过载,许多进程已就绪但在等待 CPU 或 I/O,则该数值可以大于 CPU 核心数。
LoadAverage15
整个系统负载,使用 15 分钟时间窗口的指数平滑计算得到的平均值。该负载表示在所有进程中 (即 OS 内核的调度实体) ,当前正在 CPU 上运行、等待 I/O,或已就绪但此刻尚未被调度运行的线程数量。这个数量包含所有进程,而不仅仅是 clickhouse-server。若系统过载,许多进程已就绪但在等待 CPU 或 I/O,则该数值可以大于 CPU 核心数。
LoadAverage5
整个系统负载,使用 5 分钟时间窗口的指数平滑计算得到的平均值。该负载表示在所有进程中 (即 OS 内核的调度实体) ,当前正在 CPU 上运行、等待 I/O,或已就绪但此刻尚未被调度运行的线程数量。这个数量包含所有进程,而不仅仅是 clickhouse-server。若系统过载,许多进程已就绪但在等待 CPU 或 I/O,则该数值可以大于 CPU 核心数。
LongestRunningMerge
当前正在运行的后台合并任务中,耗时最长的那个已运行的时间(秒)。
MaxPartCountForPartition
在所有 MergeTree 系列表的所有分区中,单个分区允许存在的最大分区片段数量。数值大于 300 通常表示存在配置错误、过载或大规模数据加载。
MemoryCode
为服务器进程的机器代码页映射的虚拟内存量(以字节为单位)。
MemoryDataAndStack
为栈和已分配内存映射的虚拟内存大小,单位为字节。是否包含每个线程的栈,以及大部分通过 mmap 系统调用分配的内存,并未明确规定。此指标仅为完整性而存在。建议使用 MemoryResident 指标进行监控。
MemoryResident
服务器进程占用的物理内存大小(字节)。
MemoryResidentMax
服务器进程占用的物理内存最大值(以字节为单位)。
MemoryResidentWithoutPageCache
服务器进程占用的物理内存大小 (以字节为单位) ,不包括用户态页缓存。在使用用户态页缓存时,该指标能更准确地反映实际内存使用情况。禁用用户态页缓存时,该值等于 MemoryResident。
MemoryShared
服务器进程使用的、同时也被其他进程共享的内存量,以字节为单位。ClickHouse 本身并不使用共享内存,但操作系统可能会出于自身原因将部分内存标记为共享内存。这个指标通常没有太大的监控价值,仅仅是为了指标的完整性而提供。
MemoryVirtual
服务器进程分配的虚拟地址空间大小(以字节为单位)。虚拟地址空间的大小通常远大于实际物理内存消耗,因此不应将其用作内存消耗的估算值。该指标数值较大是完全正常的,本身只在技术层面具有意义。
MySQLRejectedConnections
MySQL 兼容协议的连接被拒次数。
MySQLThreads
MySQL 兼容协议服务器中的线程数。
NetworkReceiveBytes_interface_name
通过网络接口接收的字节数。这是一个系统级指标,包含主机上所有进程的数据,而不仅仅是 clickhouse-server。
NetworkReceiveDrop_interface_name
通过网络接口接收数据包时被丢弃的字节数。该指标是系统级指标,涵盖主机上的所有进程,而不仅仅是 clickhouse-server。
NetworkReceiveErrors_interface_name
通过网络接口接收数据时发生错误的次数。该指标为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。
NetworkReceivePackets_interface_name
通过网络接口接收的网络数据包数量。这是一个系统级指标,包含主机上所有进程的数据,而不仅仅是 clickhouse-server。
NetworkSendBytes_interface_name
通过网络接口发送的字节数。此为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。
NetworkSendDrop_interface_name
通过网络接口发送时被丢弃的数据包次数。这是系统级指标,包含主机上的所有进程,而不仅仅是 clickhouse-server。
NetworkSendErrors_interface_name
通过网络接口发送数据时发生错误 (例如 TCP 重传) 的次数。这是系统级指标,统计主机上所有进程的情况,而不仅仅是 clickhouse-server。
NetworkSendPackets_interface_name
通过网络接口发送的网络数据包数量。这是一个系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。
NetworkTCPReceiveQueue
服务器上通过 TCPv4 和 TCPv6 使用的网络套接字接收队列的总大小。
NetworkTCPSocketRemoteAddresses
服务器上通过 TCPv4 和 TCPv6 使用的网络套接字中,唯一远程地址的总数。
NetworkTCPSockets
服务器上 TCPv4 和 TCPv6 在所有状态下使用的网络套接字总数。
NetworkTCPSockets_描述
服务器上处于特定状态的网络套接字总数,包含 TCPv4 和 TCPv6。
NetworkTCPTransmitQueue
服务器上 TCPv4 和 TCPv6 网络套接字发送队列的总大小。
NetworkTCPUnrecoveredRetransmits
服务器上使用的 TCPv4 和 TCPv6 网络套接字当前未恢复重传的总大小。
NumberOfDatabases
服务器上的数据库总数。
NumberOfDetachedByUserParts
通过执行 ALTER TABLE DETACH 查询由用户从 MergeTree 表中分离的parts总数 (与意外的、损坏的或被忽略的parts相对) 。服务器不会关心这些已分离的parts,可以将其删除。
NumberOfDetachedParts
从 MergeTree 表中分离的parts总数。parts可以由用户通过 ALTER TABLE DETACH 查询分离,也可以在parts损坏、异常或不再需要时由服务器自行分离。服务器不会再关心这些已分离的parts,它们可以被安全删除。
NumberOfPendingMutations
尚待执行的变更总数。
超过执行时间的待处理变更数量
超过指定 max_pending_mutations_execution_time_to_warn 设置值,且仍有数据parts尚未完成变更的变更总数。
NumberOfTables
服务器上所有数据库中表的总数量,但不包括那些不能包含 MergeTree 表的数据库。被排除的数据库引擎是在运行时动态生成表集合的引擎,例如 Lazy、MySQL、PostgreSQL、SQLite。
NumberOfTablesSystem
服务器上 system 数据库中存储在 MergeTree 家族表里的表总数。
OSContextSwitches
系统在主机上发生的上下文切换总次数。该指标为系统级指标,包含主机上的所有进程,而不仅仅是 clickhouse-server。
OSCPUOverload
相对 CPU 缺口,计算方式为:等待 CPU 的线程数相对于正在占用 CPU 的线程数的比例。如果该值大于零,说明服务器可从更多 CPU 资源中获益。如果该值明显大于零,服务器可能会失去响应。该指标在异步指标两次更新之间累积。
OSGuestNiceTimecpu_suffix
在 Linux 内核控制下为来宾操作系统运行虚拟 CPU、且该来宾系统被设置为较高优先级时所花费时间的比例 (参见 man procfs) 。这是一个系统级指标,包含宿主机上的所有进程,而不仅仅是 clickhouse-server。此指标对 ClickHouse 并无实际意义,仅为保证指标集完整而保留。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的取值通过对各核心求和计算,范围为 [0..num cores]。
OSGuestNiceTimeNormalized
该值与 OSGuestNiceTime 类似,但会除以 CPU 核心数量,使其在不考虑核心数量的情况下归一化到 [0..1] 区间内。这样即使集群中各服务器的核心数量不一致,也可以在多台服务器之间对该指标进行平均,并且仍然能够得到平均资源利用率指标。如果进行了相应配置,可以使用 Cgroup CPU QUOTA 除以其周期得到的值来代替实际的 CPU 核心数,在这种情况下,该指标的值在某些时刻可能会超过 1。
OSGuestTimecpu_suffix
在 Linux 内核控制下,为来宾操作系统运行虚拟 CPU 所花费时间的比例 (参见 man procfs) 。这是一个系统级指标,包含宿主机上的所有进程,而不仅仅是 clickhouse-server。此指标对 ClickHouse 而言基本无关紧要,但为完整性起见仍然保留。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的值为各核心数值之和,其范围为 [0..num cores]。
OSGuestTimeNormalized
该值与 OSGuestTime 类似,但会除以 CPU 核心数,从而在与核心数量无关的情况下,将其规范化到 [0..1] 区间。这样,即使集群中各服务器的 CPU 核心数不一致,您也可以在多台服务器之间对该指标进行平均,并仍然获得平均资源利用率指标。如果进行了相应配置,可以使用 Cgroup 中 CPU QUOTA 与其周期的比值来代替实际的 CPU 核心数,此时该指标在某些时刻的取值可能会超过 1。
OSIdleTimecpu_suffix
从操作系统内核的角度来看,CPU 核心处于空闲状态 (甚至还未准备好运行等待 IO 的进程) 的时间比率。该指标是系统级指标,包含宿主机上的所有进程,而不仅仅是 clickhouse-server。它不包括由于 CPU 内部原因 (如内存访问/加载、流水线停顿、分支预测失败、运行另一个 SMT 逻辑核心) 导致 CPU 未被充分利用的时间。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的总体取值是对各核心数值求和,范围为 [0..num cores]。
OSIdleTimeNormalized
该值与 OSIdleTime 类似,但会再除以 CPU 核心数量,使其无论核心数量多少,始终归一化到 [0..1] 区间。这样即使集群中各服务器的核心数不一致,也可以对该指标在多台服务器之间进行平均,从而仍然获得整体的平均资源利用率指标。如果进行了相应设置,可以使用将 Cgroup CPU QUOTA 除以其周期得到的值来代替实际的 CPU 核心数,此时该指标的数值在某些时刻可能会超过 1。
OSInterrupts
主机上的中断次数。此为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。
OSIOWaitTimecpu_suffix
CPU 核心未运行代码、但由于进程在等待 IO 而 OS 内核也未在该 CPU 上运行任何其他进程的时间占比。此为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的值通过对各核心求和计算,范围为 [0..核心数量]。
OSIOWaitTimeNormalized
该值类似于 OSIOWaitTime,但会除以 CPU 核心数,从而将该指标归一化到 [0..1] 区间内,与核心数量无关。这样,即使集群中各服务器的 CPU 核心数不一致,你仍然可以在多台服务器之间对该指标进行平均,并得到可比的平均资源利用率指标。如果指定了 Cgroup CPU 配额,则可以使用其与周期的比值来代替实际 CPU 核心数,在这种情况下,该指标的值在某些时刻可能会超过 1。
OSIrqTimecpu_suffix
在 CPU 上执行硬件中断请求所花费时间的占比。该指标是系统级的,包含主机上所有进程,而不仅仅是 clickhouse-server。该指标值偏高可能表示硬件配置错误或异常高的网络负载。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的值为各核心值的总和,范围为 [0..CPU 核心数量]。
OSIrqTimeNormalized
该数值与 OSIrqTime 类似,但会除以 CPU 核心数,使其在 [0..1] 区间内进行度量,而不受核心数量影响。这样,即使集群中各服务器的核心数量不一致,也可以对该指标在多台服务器之间进行平均,仍然能够得到平均资源利用率指标。如果进行了相应配置,则可以使用 Cgroup CPU QUOTA 与其周期的比值来代替实际 CPU 核心数,此时该指标在某些时刻的取值可能会超过 1。
OSMemoryAvailable
可供程序使用的内存大小(以字节为单位)。这与 OSMemoryFreePlusCached 指标非常相似。该指标是系统级指标,涵盖宿主机上的所有进程,而不仅仅是 clickhouse-server。
OSMemoryBuffers
OS 内核缓冲区使用的内存量(以字节为单位)。该值通常应较小,数值过大可能表明操作系统配置不当。这是一个系统级指标,包括主机上所有进程,而不仅仅是 clickhouse-server。
OSMemoryCached
操作系统页面缓存使用的内存量(以字节为单位)。通常情况下,几乎所有可用内存都会被操作系统页面缓存占用——该指标数值较高是正常且预期的。这是一个系统级指标,包含主机上所有进程的内存使用情况,而不仅仅是 clickhouse-server。
OSMemoryFreePlusCached
主机系统中空闲内存与操作系统页缓存内存之和,以字节为单位。此内存可供程序使用。其值应与 OSMemoryAvailable 非常接近。该指标是系统级的,包含主机上的所有进程,而不仅仅是 clickhouse-server。
OSMemoryFreeWithoutCached
主机系统上的空闲内存量,以字节为单位。不包括操作系统页缓存占用的内存,同样以字节为单位。由于页缓存同样可以被程序使用,因此该指标的值可能会令人困惑。请参阅 OSMemoryAvailable 指标。为方便起见,我们还提供了 OSMemoryFreePlusCached 指标,其值应与 OSMemoryAvailable 大致相似。另见 https://www.linuxatemyram.com/。这是一个系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。
OSMemorySwapCached
交换空间中同时已加载到 RAM 的内存量。生产系统中应禁用交换空间。如果该指标的值较大,则表明存在配置错误。这是一个系统级指标,包含主机上所有进程的数据,而不仅仅是 clickhouse-server。
OSMemoryTotal
主机系统上的内存总量(以字节为单位)。
OSNiceTimecpu_suffix
CPU 核心以较高优先级运行用户态代码的时间占比。这是一个系统级指标,包含主机上的所有进程,而不仅仅是 clickhouse-server。单个 CPU 核心的值位于区间 [0..1]。所有 CPU 核心的值是对各核心数值求和计算得到,范围为 [0..num cores]。
OSNiceTimeNormalized
该值类似于 OSNiceTime,但会除以 CPU 核心数,从而在与核心数量无关的情况下,将结果归一化到 [0..1] 区间。这样,即使集群中各服务器的核心数量不一致,也可以在多台服务器之间对该指标取平均值,仍然能够得到平均资源利用率指标。如果进行了相应配置,则可以使用 Cgroup CPU QUOTA 与其周期的比值来代替实际的 CPU 核心数,在这种情况下,该指标的值在某些时刻可能会超过 1。
OSOpenFiles
主机上已打开文件的总数。这个是系统级指标,包含主机上所有进程打开的文件,而不仅仅是 clickhouse-server。
OSProcessesBlocked
等待 I/O 完成而被阻塞的线程数量(man procfs)。这是一个针对整个系统的指标,包含主机上的所有进程,而不仅仅是 clickhouse-server。
OSProcessesCreated
创建的进程数量。这是一个系统级指标,包含宿主机上的所有进程,而不仅仅是 clickhouse-server 的进程。
OSProcessesRunning
操作系统层面可运行(正在运行或已准备好运行)的线程数量。这是一个系统级指标,包含主机上的所有进程,而不仅仅是 clickhouse-server 进程。
OSSoftIrqTimecpu_suffix
在 CPU 上处理软件中断请求所花费时间的比例。此为系统级指标,包含主机上的所有进程,而不仅仅是 clickhouse-server。该指标数值较高可能表示系统上运行的软件效率较低。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的取值通过对各核心数值求和得到,范围为 [0..num cores]。
OSSoftIrqTimeNormalized
该值与 OSSoftIrqTime 类似,但会除以 CPU 核心数量,将结果归一化到与核心数无关的 [0..1] 区间。这样,即使集群中各服务器的核心数不一致,也可以在多台服务器之间对该指标进行平均,并且仍然能够获得资源利用率的平均值。如果进行了相应设置,则可以使用 Cgroup CPU QUOTA 与其周期的比值来替代实际的 CPU 核心数量,在这种情况下,该指标的值在某些时刻可能会超过 1。
OSStealTimecpu_suffix
在虚拟化环境中运行时,CPU 花费在其他操作系统上的时间占比。该指标为系统级指标,包含主机上所有进程,而不仅仅是 clickhouse-server。并非所有虚拟化环境都会提供该指标,而且大多数都不会。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的值通过对各核心求和计算,范围为 [0..num cores]。
OSStealTimeNormalized
该值与 OSStealTime 类似,但会除以 CPU 核心数,从而在不考虑核心数量的情况下将指标归一化到 [0..1] 区间。这样,即使集群中各服务器的核心数不一致,也可以在多台服务器上对该指标求平均,从而得到平均资源利用率指标。如果指定的话,可以使用 Cgroup CPU QUOTA 与其周期的比值来代替实际的 CPU 核心数,在这种情况下,该指标的值在某些时刻可能会超过 1。
OSSystemTimecpu_suffix
CPU 核心用于运行操作系统内核 (system) 代码的时间占比。这是一个系统级指标,包含主机上所有进程的用量,而不仅仅是 clickhouse-server。单个 CPU 核心的取值范围为 [0..1]。所有 CPU 核心的取值通过对各核心数值求和得到,范围为 [0..num cores]。
OSSystemTimeNormalized
该值与 OSSystemTime 类似,但会除以 CPU 核心数,从而在与核心数无关的前提下,将其标准化到 [0..1] 区间。这样,即使集群中各服务器的核心数不一致,也可以在多台服务器之间对该指标进行平均,仍然得到平均资源利用率指标。如果进行了相应配置,还可以使用 Cgroup CPU QUOTA 与其 period 的比值来代替实际的 CPU 核心数,此时该指标在某些时刻的数值可能会超过 1。
OSThreadsRunnable
从操作系统内核调度器视角统计的“可运行”线程总数。
OSThreadsTotal
线程总数,即在操作系统内核调度器视角下看到的线程数量。
OSUptime
主机服务器(运行 ClickHouse 的机器)的已运行时长,以秒为单位。
OSUserTimecpu_suffix
CPU 核心运行用户态代码时间的占比。该指标是系统级的,包含主机上所有进程,而不仅仅是 clickhouse-server。这也包括由于 CPU 内部原因导致 CPU 未被充分利用的时间 (例如内存加载、流水线停顿、分支预测失败、在同一物理核上的另一 SMT 逻辑核心运行) 。单个 CPU 核心的取值区间为 [0..1]。所有 CPU 核心的值通过对各核心求和计算,区间为 [0..num cores]。
OSUserTimeNormalized
该值与 OSUserTime 类似,但会除以 CPU 核心数,从而在不考虑核心数量的情况下,将结果归一化到 [0..1] 区间。这使你能够在集群中跨多台服务器对该指标进行平均,即使各服务器的核心数量不一致,仍然可以得到平均资源利用率指标。如果进行了相应配置,则可以使用 Cgroup CPU QUOTA 与其周期的比值来替代实际的 CPU 核心数,在这种情况下,该指标在某些时刻可能会超过 1。
PageCacheMaxBytes
当前用户态页缓存大小限制,单位为字节。
PostgreSQLRejectedConnections
PostgreSQL 兼容协议的被拒绝连接数。
PostgreSQLThreads
使用 PostgreSQL 兼容协议的服务器中的线程数。
ProcessSignalQueueLimit
信号队列的总上限 (达到 ProcessSignalQueueSize 后,可能会出现 CANNOT_CREATE_TIMER 错误)
ProcessSignalQueueSize
信号队列大小 (待处理信号、用于查询性能分析的定时器)
PrometheusRejectedConnections
Prometheus 端点的被拒绝连接数。注意:Prometheus 端点也可通过常规的 HTTP/HTTPS 端口访问。
PrometheusThreads
Prometheus 端点服务器中的线程数。注意:Prometheus 端点也可以通过常规 HTTP/HTTPS 端口访问。
PSI_type_stall_type
自上次测量以来的停滞时间 (以微秒计) 。有关这些指标及其解读方式的上游文档,请参见 https://docs.kernel.org/accounting/psi.html
QueriesMemoryUsage
服务器上所有正在运行的查询当前占用的总内存,以字节为单位。可用于将内存压力归因于并发查询负载。
QueriesPeakMemoryUsage
ProcessList 中所有被跟踪用户的单用户查询内存峰值总和,单位为字节。每个用户的峰值是其 memory tracker 的最高水位;当该用户没有正在运行的查询时,该值会重置。因此,这里汇总的是当前正在跟踪的各用户峰值,而不是服务器启动以来所有查询的单一全局峰值。
ReplicasMaxAbsoluteDelay
在所有 Replicated 表中,最新已复制的数据部分与仍待复制的最新数据部分之间的最大时间差(以秒为单位)。非常大的数值通常表示某个副本没有数据。
ReplicasMaxInsertsInQueue
所有 Replicated 表的队列中尚未复制的 INSERT 操作的最大数量。
ReplicasMaxMergesInQueue
在所有 Replicated 表中,队列中(尚未执行)的合并操作的最大允许数量。
ReplicasMaxQueueSize
所有 Replicated 表的最大队列长度(按 get、merge 等操作数量计算)。
ReplicasMaxRelativeDelay
在所有 Replicated 表中,对于同一张表,各副本延迟与该表最新副本延迟之间允许的最大差值。
ReplicasSumInsertsInQueue
所有 Replicated 表中队列里尚未复制的 INSERT 操作总数。
ReplicasSumMergesInQueue
所有 Replicated 表上队列中(尚未执行)的合并操作数量总和。
ReplicasSumQueueSize
跨所有 Replicated 表的队列大小总和(按操作数计,例如 get、merge)。
TCPRejectedConnections
TCP 协议 (不使用 TLS) 的拒绝连接数。
TCPSecureRejectedConnections
使用 TLS 的 TCP 协议被拒绝的连接数。
TCPSecureThreads
TCP 协议服务器在启用 TLS 时的线程数量。
TCPThreads
TCP 协议服务器的线程数(不使用 TLS)。
Temperaturei
对应设备的温度 (℃) 。传感器可能会返回不合理的数值。来源:/sys/class/thermal
Temperature_hwmon_name
由对应的硬件监控设备报告的温度 (单位:℃) 。传感器有时可能返回不合理的数值。来源:/sys/class/hwmon
Temperature_hwmon_name_sensor_name
由对应的硬件监控设备及其传感器报告的温度 (单位:℃) 。传感器有时可能返回不合理的数值。来源:/sys/class/hwmon
TotalBytesOfMergeTreeTables
所有 MergeTree 系列表中存储的总字节数(压缩后,包括数据和索引)。
system 数据库中 MergeTree 家族表的总字节数
system 数据库中 MergeTree 家族表中存储的总字节数 (压缩后,包括数据和索引) 。
TotalIndexGranularityBytesInMemory
索引粒度占用的内存总量 (以字节为单位,仅统计活动 parts) 。
TotalIndexGranularityBytesInMemoryAllocated
为索引粒度预留的内存总量 (以字节为单位,仅统计活跃 parts) 。
TotalPartsOfMergeTreeTables
所有 MergeTree 家族表中数据 parts 的总数。当该数值大于 10 000 时,会对服务器启动时间产生不利影响,也可能表明分区键的选择不合理。
TotalPartsOfMergeTreeTablesSystem
system 数据库中所有 MergeTree 家族表中数据 parts 的总数。
TotalPrimaryKeyBytesInMemory
主键值在内存中占用的总字节数(仅考虑活跃分区片段)。
TotalPrimaryKeyBytesInMemoryAllocated
为主键值预留的内存总量(字节数)(仅计算活跃分区片段)。
TotalProjectionIndexGranularityBytesInMemory
投影索引粒度占用的内存总量 (以字节为单位,仅计算活动 parts) 。
TotalProjectionIndexGranularityBytesInMemoryAllocated
为投影索引粒度预留的内存总量 (以字节为单位,仅统计活跃 parts) 。
TotalProjectionPrimaryKeyBytesInMemory
Projection 主键值占用的内存总量 (以字节为单位,仅计算活动 parts) 。
TotalProjectionPrimaryKeyBytesInMemoryAllocated
为投影主键值预留的内存总量 (以字节为单位,仅计算处于活动状态的 parts) 。
TotalRowsOfMergeTreeTables
存储在所有 MergeTree 系列表中的总行数(记录数)。
TotalRowsOfMergeTreeTablesSystem
存储在 system 数据库中 MergeTree 家族各表内的总行数 (记录数) 。
TrackedMemory
ClickHouse 跟踪的内存 (应与 MemoryTracking 指标相等) ,单位为字节。
Uptime
以秒为单位的服务器运行时长。它也包括服务器在开始接受连接之前用于初始化的时间。
VMMaxMapCount
一个进程可拥有的内存映射最大数量 (/proc/sys/vm/max_map_count) 。
VMNumMaps
进程当前的内存映射数 (/proc/self/maps) 。如果该值接近最大值 (VMMaxMapCount) ,则应在 /etc/sysctl.conf 中提高 vm.max_map_count 的限制
ZooKeeperClientLastZXIDSeen
当前 ZooKeeper 客户端 session 所见的最后一个 ZXID。随着客户端观察到来自 ZooKeeper 的事务,此值会单调递增。
另请参阅
- Monitoring — ClickHouse 监控的基本概念。
- system.metrics — 包含即时计算得出的指标。
- system.events — 包含已发生事件的数量。
- system.metric_log — 包含来自
system.metrics和system.events表的指标值历史记录。