指标参考
本文列出指标名称、单位、标签、来源及统计口径。功能与排查场景见内核全景观测。
阅读说明
本文按 CPU、内存、网络、I/O、系统事件和 GPU 分类说明常用指标,供查询和排障时参考。实际输出取决于内核接口、设备驱动、采集器开关和过滤配置,完整指标以节点的 /metrics 输出为准。启用方式见节点配置。
- 名称:表格统一省略
huatuo_bamai_前缀。例如,cpu_util_total的完整名称为huatuo_bamai_cpu_util_total。 - 标签:所有指标带有
host、region;容器指标另带container_host、container_hostnamespace、container_level、container_name、container_type。表格仅列附加标签,—表示无附加标签。 - 计数与单位:计数值表示事件或对象数量,不等于延迟值。累计 Counter 可用
rate()或increase()分析变化;部分内核累计统计以 Gauge 导出,需结合字段语义判断,不能仅凭类型或名称推断。 - 示例:下列数值仅用于说明输出格式,不代表诊断阈值。未输出指标不等于指标值为零。
# TYPE huatuo_bamai_runqlat_latency counter
huatuo_bamai_runqlat_latency{host="hostname",region="dev",zone="0"} 35100
# TYPE huatuo_bamai_runqlat_container_latency counter
huatuo_bamai_runqlat_container_latency{container_host="coredns-855c4dd65d-8v5kg",container_hostnamespace="kube-system",container_level="burstable",container_name="coredns",container_type="normal",host="hostname",region="dev",zone="0"} 226
此例分别展示宿主机和容器的调度延迟分桶计数,zone 的范围见下文。
构建信息
huatuo_bamai_build_info 和 huatuo_apiserver_build_info 是值恒为 1 的
Gauge,分别表示 bamai 和 apiserver 当前运行的构建。两者由各自程序的
/metrics 暴露,构建信息与该程序的 /version 一致。它们包含既有公共标签
host、region(apiserver 中为空),以及以下构建标签:
| 标签 | 含义 |
|---|---|
name |
程序名称,与 /version 中的 name 一致 |
version |
程序发布版本,与 /version 中的 version 一致 |
git_commit |
构建的 Git 标识,与 /version 中的 git_commit 一致;不保证是完整 SHA |
git_tree_state |
构建时的工作区状态:clean、dirty 或 unknown |
build_time |
/version 中的时间戳:优先使用注入的构建时间,缺失时回退为 VCS 提交时间或 (devel) |
go_version |
构建程序所用的 Go 工具链版本 |
compiler |
Go 编译器,例如 gc |
platform |
操作系统和架构,例如 linux/amd64 |
未提供发布版本时,version 使用 (devel)。git_commit 优先使用注入值,
其次读取 Go 构建信息中的 VCS 提交标识,两者均不可用时使用 (devel)。构建标签只附加到该指标,
业务指标的标签保持不变。Prometheus 抓取后,可通过相同的 job、instance
将构建信息与业务指标关联;跨集群查询还需纳入实际用于区分目标的集群标签。
CPU
调度延迟
调度延迟指任务进入可运行状态到实际获得 CPU 的等待时间。以下指标为 eBPF 采集的累计 Counter,按 zone 分桶:0 为 [0, 10) ms,1 为 [10, 20) ms,2 为 [20, 50) ms,3 为 ≥50 ms。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
runqlat_container_latency |
调度延迟分桶计数 | 计数 | 容器 | eBPF | zone |
runqlat_latency |
调度延迟分桶计数 | 计数 | 宿主机 | eBPF | zone |
软中断延迟
统计各 CPU 上软中断从触发到开始处理的等待时间,当前仅输出 NET_RX、NET_TX。该指标为累计 Counter;zone:0 为 [0, 10) μs,1 为 [10, 100) μs,2 为 [100, 1000) μs,3 为 ≥1 ms。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
softirq_latency |
软中断响应延迟分桶计数 | 计数 | 宿主机 | eBPF | cpuid, type, zone |
利用率
宿主机利用率按在线 CPU 核数归一化,容器利用率按可用 CPU 容量归一化,输出范围为 0–100%。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
cpu_util_sys |
CPU 内核态利用率 | % | 宿主机 | — |
cpu_util_usr |
CPU 用户态利用率 | % | 宿主机 | — |
cpu_util_total |
CPU 总利用率 | % | 宿主机 | — |
cpu_util_container_sys |
CPU 内核态利用率 | % | 容器 | — |
cpu_util_container_usr |
CPU 用户态利用率 | % | 容器 | — |
cpu_util_container_total |
CPU 总利用率 | % | 容器 | — |
可用核数
容器可用 CPU 容量取配额折算核数与有效 CPU 集合大小的较小值;未限制配额时使用有效 CPU 集合大小,无法获取有效集合时回退到宿主机在线核数。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
cpu_util_container_cores |
可用 CPU 容量(可为小数) | 核 | 容器 | — |
限流与争抢
限流统计来自 cgroup CPU 接口,仅输出内核提供的字段。等待占比还要求内核导出 wait_sum,并启用 kernel.sched_schedstats=1。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
cpu_stat_container_nr_throttled |
cgroup 发生 CPU 限流的累计周期数 | 计数 | 容器 | — |
cpu_stat_container_throttled_time |
cgroup 被限流的累计时间 | 纳秒 | 容器 | — |
cpu_stat_container_wait_sum_percent |
采集区间内 cgroup 在父运行队列的等待时间占可调度时间的比例 | % | 容器 | — |
等待占比按采集区间计算:等待时间增量 /(等待时间增量 + CPU 使用时间增量)× 100%。它描述可调度时间中的等待比例,不是限流时间占比。
参考:
突发使用
统计 cgroup 使用突发 CPU 容量的周期数和时间,仅在内核提供对应字段时输出。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
cpu_stat_container_burst_time |
使用突发 CPU 容量的累计时间 | 纳秒 | 容器 | — |
cpu_stat_container_nr_bursts |
使用突发 CPU 容量的累计周期数 | 计数 | 容器 | — |
负载
宿主机输出 1、5、15 分钟平均负载;容器输出当前可运行和不可中断任务数,两者不是相同时间窗口的统计。
| 指标 | 说明 | 单位 | 范围 | 附加标签 | 备注 |
|---|---|---|---|---|---|
loadavg_load1 |
系统过去 1 分钟的平均负载 | 任务数 | 宿主机 | — | — |
loadavg_load5 |
系统过去 5 分钟的平均负载 | 任务数 | 宿主机 | — | — |
loadavg_load15 |
系统过去 15 分钟的平均负载 | 任务数 | 宿主机 | — | — |
loadavg_container_nr_running |
当前可运行任务数(含正在运行和等待 CPU 的任务) | 计数 | 容器 | — | 只支持 cgroup v1 |
loadavg_container_nr_uninterruptible |
容器中不可中断任务的数量 | 计数 | 容器 | — | 只支持 cgroup v1 |
内存
内存回收
内存回收和规整可能阻塞任务。以下指标分别记录宿主机累计耗时和容器直接回收事件数。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
memory_free_allocpages_stall |
宿主机直接回收累计耗时 | 毫秒 | 宿主机 | eBPF | — |
memory_free_compaction_stall |
宿主机内存规整累计耗时 | 毫秒 | 宿主机 | eBPF | — |
memory_reclaim_container_directstall |
容器直接回收事件次数 | 计数 | 容器 | eBPF | — |
memory_others_container_directstall_time、memory_others_container_asyncreclaim_time、memory_others_container_local_direct_reclaim_time 依赖滴滴定制内核的 memory.directstall_stat、memory.asynreclaim_stat、memory.local_direct_reclaim_time 接口。
主线及常见发行版内核缺少这些接口时不会输出对应指标,无需额外加载模块。标准内核上的容器直接回收次数可使用 memory_reclaim_container_directstall 观测。
内存状态
容器字段来自 memory.stat,宿主机字段来自 /proc/vmstat,均受 MetricCollector.Vmstat 过滤规则影响。字段是否存在及其含义取决于内核和 cgroup 版本。
容器内存
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_container_active_file |
活跃文件内存大小 | 字节 | 容器 | — |
memory_vmstat_container_active_anon |
活跃匿名内存大小 | 字节 | 容器 | — |
memory_vmstat_container_inactive_file |
非活跃文件内存大小 | 字节 | 容器 | — |
memory_vmstat_container_inactive_anon |
非活跃匿名内存大小 | 字节 | 容器 | — |
memory_vmstat_container_file_dirty |
已修改且还未写入磁盘的文件内存大小 | 字节 | 容器 | — |
memory_vmstat_container_file_writeback |
正在写回的文件内存大小 | 字节 | 容器 | — |
memory_vmstat_container_dirty |
已修改且还未写入磁盘的内存大小 | 字节 | 容器 | — |
memory_vmstat_container_writeback |
正在写回的内存大小 | 字节 | 容器 | — |
memory_vmstat_container_pgdeactivate |
将页面从 active LRU 移动到 inactive LRU 的数量 | 页 | 容器 | — |
memory_vmstat_container_pgrefill |
在 active LRU 链表上被扫描的页面总数 | 页 | 容器 | — |
memory_vmstat_container_pgscan_direct |
直接回收时,在 inactive LRU 上扫描过的页面总数 | 页 | 容器 | — |
memory_vmstat_container_pgscan_kswapd |
kswapd 在 inactive LRU 链表上扫描过的页面总数 | 页 | 容器 | — |
memory_vmstat_container_pgsteal_direct |
直接回收时,成功从 inactive LRU 回收的页面总数 | 页 | 容器 | — |
memory_vmstat_container_pgsteal_kswapd |
kswapd 成功从 inactive LRU 回收的页面总数 | 页 | 容器 | — |
memory_vmstat_container_unevictable |
不可回收的页面字节数 | 字节 | 容器 | — |
宿主机内存
以下名称已包含 memory_vmstat_ 前缀;底层字段值原样导出,不统一换算为字节。pgpgin、pgpgout 按内核的 KiB 口径读取,见 Linux vmstat 实现。
页面状态与 LRU
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_nr_free_pages |
空闲页面总数(伙伴系统可直接分配)。 | 页 | 宿主机 | — |
memory_vmstat_nr_inactive_anon |
非活跃匿名页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_inactive_file |
非活跃文件页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_active_anon |
活跃匿名页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_active_file |
活跃文件页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_unevictable |
不可回收页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_mlock |
被 mlock() 锁定的页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_shmem |
tmpfs / shmem 使用的页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_slab_reclaimable |
可回收 Slab 占用的页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_slab_unreclaimable |
不可回收 Slab 占用的页面数 | 页 | 宿主机 | — |
脏页与写回
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_nr_dirty |
当前脏页数 | 页 | 宿主机 | — |
memory_vmstat_nr_writeback |
正在写回的页面数 | 页 | 宿主机 | — |
memory_vmstat_nr_dirty_threshold |
触发脏页限流的阈值 | 页 | 宿主机 | — |
memory_vmstat_nr_dirty_background_threshold |
后台写回开始的阈值 | 页 | 宿主机 | — |
缺页与换页
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_pgfault |
总缺页异常次数 | 计数 | 宿主机 | — |
memory_vmstat_pgmajfault |
主缺页异常次数 | 计数 | 宿主机 | — |
memory_vmstat_pgpgin |
从块设备读入的数据量 | KiB | 宿主机 | — |
memory_vmstat_pgpgout |
写出到块设备的数据量 | KiB | 宿主机 | — |
memory_vmstat_pswpin |
从 Swap 换入的页面数 | 页 | 宿主机 | — |
memory_vmstat_pswpout |
换出到 Swap 的页面数 | 页 | 宿主机 | — |
回收与扫描
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_pgscan_kswapd |
kswapd 扫描的页面数 | 页 | 宿主机 | — |
memory_vmstat_pgscan_direct |
直接回收扫描的页面数 | 页 | 宿主机 | — |
memory_vmstat_pgscan_khugepaged |
khugepaged 扫描的页面数 | 页 | 宿主机 | — |
memory_vmstat_pgsteal_kswapd |
kswapd 成功回收的页面数 | 页 | 宿主机 | — |
memory_vmstat_pgsteal_direct |
直接回收成功回收的页面数 | 页 | 宿主机 | — |
memory_vmstat_pgsteal_khugepaged |
khugepaged 成功回收的页面数 | 页 | 宿主机 | — |
透明大页(THP)
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_thp_fault_alloc |
缺页时成功分配 THP 的次数 | 计数 | 宿主机 | — |
memory_vmstat_thp_fault_fallback |
缺页时分配 THP 失败而回落普通页的次数 | 计数 | 宿主机 | — |
memory_vmstat_thp_collapse_alloc |
khugepaged 折叠成 THP 的成功次数 | 计数 | 宿主机 | — |
memory_vmstat_thp_collapse_alloc_failed |
khugepaged 折叠 THP 的失败次数 | 计数 | 宿主机 | — |
NUMA
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_vmstat_numa_hit |
在首选 NUMA 节点分配成功的页面数 | 页 | 宿主机 | — |
memory_vmstat_numa_miss |
首选其他节点但在本节点分配的页面数 | 页 | 宿主机 | — |
memory_vmstat_numa_foreign |
首选本节点但在其他节点分配的页面数 | 页 | 宿主机 | — |
memory_vmstat_numa_local |
在当前 CPU 所属 NUMA 节点分配的页面数 | 页 | 宿主机 | — |
memory_vmstat_numa_other |
在当前 CPU 所属节点以外分配的页面数 | 页 | 宿主机 | — |
memory_vmstat_numa_pages_migrated |
由于自动 NUMA 平衡而成功迁移的页面总数 | 页 | 宿主机 | — |
参考:
内存事件
以下字段来自 memory.events,记录回收、内存限制和 OOM 事件。主线内核在 cgroup v2 中提供该接口;滴滴定制内核也可在 cgroup v1 中提供。接口缺失时不输出。各字段的统计条件不同,不能相加作为独立事件总数。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
memory_events_container_low |
低于 memory.low 仍因压力发生回收的次数,通常表示低水位保护过量配置 | 计数 | 容器 | — |
memory_events_container_high |
超过 memory.high 后被节流并进入直接回收的次数 | 计数 | 容器 | — |
memory_events_container_max |
内存使用量即将超过 memory.max 的次数 | 计数 | 容器 | — |
memory_events_container_oom |
内存达到限制、分配即将失败并考虑 OOM 处理的次数 | 计数 | 容器 | — |
memory_events_container_oom_kill |
属于该 cgroup、被任意 OOM killer 杀死的进程数 | 计数 | 容器 | — |
memory_events_container_oom_group_kill |
发生组 OOM kill 的次数 | 计数 | 容器 | — |
空闲内存块
展示每个 NUMA 节点、内存区域和阶数的空闲内存块数量。order=n 表示每块包含 2^n 个连续页面;指标值是块数,不是页面数。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
memory_buddyinfo_blocks |
指定 NUMA 节点、内存区域和阶数的空闲块数 | 块 | 宿主机 | procfs | node, order, zone |
容器直接回收与内存规整累计耗时
| 指标 | 意义 | 单位 | 对象 | 取值 | 标签 |
|---|---|---|---|---|---|
| memory_free_container_allocpages_stall | 容器任务参与全局直接回收的累计耗时 | 毫秒 | 容器 | eBPF | container_host, container_hostnamespace, container_level, container_name, container_type, host, region |
| memory_free_container_compaction_stall | 容器任务参与直接内存规整的累计耗时 | 毫秒 | 容器 | eBPF | 同上 |
两项为累计耗时 Gauge,统计全局直接回收与规整中的任务耗时。主机总量包含容器工作;缺失或归属不明确的容器记录不输出。容器采集失败仍保留主机数据,加载依赖容器探针,加载或挂载失败时该采集器不可用。容器重建后对应容器累计值重新开始,主机累计值不受影响;BPF 重载后两者均归零。
主机 memcg 回收累计次数
| 指标 | 意义 | 单位 | 对象 | 取值 | 标签 |
|---|---|---|---|---|---|
| memory_reclaim_directstall | 整台主机 memcg 限额回收累计次数 | 计数 | 物理机 | eBPF | host, region |
该 Gauge 统计全机 memcg 回收次数,排除 kswapd,不是全局回收次数或耗时。主机总量包含容器活动,不能与容器计数相加;BPF 重载后归零。
网络
TCP 内存
记录 TCP 内存使用量及其相对限制的占比。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
tcp_memory_limit_pages |
系统可使用的 TCP 总内存大小 | 页 | 宿主机 | — |
tcp_memory_usage_bytes |
系统已使用的 TCP 内存大小 | 字节 | 宿主机 | — |
tcp_memory_usage_pages |
系统已使用的 TCP 内存大小 | 页 | 宿主机 | — |
tcp_memory_usage_percent |
系统已使用的 TCP 内存百分比(相对 TCP 内存总限制) | % | 宿主机 | — |
连接跟踪
宿主机 nf_conntrack 表的占用与容量,分别来自
/proc/sys/net/netfilter/nf_conntrack_count 与
/proc/sys/net/netfilter/nf_conntrack_max。仓库配置默认通过 BlackList 禁用 net_conntrack。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
net_conntrack_entry_count |
当前 nf_conntrack 表中的条目数 | 个 | 宿主机 | — |
net_conntrack_entry_max |
nf_conntrack 表可容纳的最大条目数 | 个 | 宿主机 | — |
ARP 邻居项
按宿主机和容器网络命名空间统计 ARP 邻居项。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
arp_entries |
宿主机网络命名空间 ARP 条目数量 | 计数 | 宿主命名空间 | — |
arp_total |
宿主机所有网络命名空间 ARP 条目数量总和 | 计数 | 宿主机 | — |
arp_container_entries |
容器网络命名空间 ARP 条目数量 | 计数 | 容器 | — |
发送队列
Qdisc 指标描述发送队列积压、发送量、丢包和重入队次数,不直接提供排队延迟。仅采集匹配设备的根 Qdisc,跳过 noqueue。仓库配置默认通过 BlackList 禁用 netdev_qdisc。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
netdev_qdisc_backlog |
排队待发送的字节数 | 字节 | 宿主机 | device, kind |
netdev_qdisc_current_queue_length |
当前排队报文数 | 计数 | 宿主机 | device, kind |
netdev_qdisc_overlimits_total |
超限次数 | 计数 | 宿主机 | device, kind |
netdev_qdisc_requeues_total |
由于网卡/驱动暂时无法发送而被重新入队的次数 | 计数 | 宿主机 | device, kind |
netdev_qdisc_drops_total |
主动丢弃的包数(因队列满、限速策略等原因) | 计数 | 宿主机 | device, kind |
netdev_qdisc_bytes_total |
累计发送字节数 | 字节 | 宿主机 | device, kind |
netdev_qdisc_packets_total |
已发送的包数 | 计数 | 宿主机 | device, kind |
硬件丢包
统计支持的网卡驱动在接收方向的硬件丢包。优先使用 rx_missed_errors,否则尝试从 rx_dropped 中扣除 eBPF 统计的软件丢包。仓库配置默认通过 BlackList 禁用 netdev_hw。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
netdev_hw_rx_dropped_total |
接收方向硬件丢包累计数 | 计数 | 宿主机 | sysfs、eBPF | device, driver |
RDMA 端口统计
netdev_rdma_link_<counter> 输出内核的逐端口计数,具体名称取决于驱动。附加标签为 device、nodeguid、index、num_ports 和 port。
新增 port 标签会产生新的时间序列,单端口设备也受影响。端口级查询保留该标签;对选定计数器,设备总量使用 sum by (region, host, device) (<metric>),设备速率使用 sum by (region, host, device) (rate(<metric>[5m])),将 <metric> 替换为完整指标名。只按 device 聚合会混合不同主机上的同名设备。
网卡统计
通过 proc 或 netlink 采集网卡统计,公共指标遵循 Linux /proc/net/dev 的统计口径:
receive_dropped:rx_dropped + rx_missed_errors。receive_frame_errors:rx_length_errors + rx_over_errors + rx_crc_errors + rx_frame_errors。transmit_carrier_errors:tx_carrier_errors + tx_aborted_errors + tx_window_errors + tx_heartbeat_errors。
netlink 还提供细分错误指标和 receive_nohandler,细分错误可能已包含在上述聚合值中,不能与聚合值重复相加。表中列宿主机名称;容器名称在 netdev_ 后增加 container_。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
netdev_receive_bytes_total |
成功接收的总字节数 | 字节 | 宿主机、容器 | device |
netdev_receive_packets_total |
成功接收的数据包总数 | 计数 | 宿主机、容器 | device |
netdev_receive_multicast_total |
接收的组播包数 | 计数 | 宿主机、容器 | device |
netdev_receive_compressed_total |
接收到的已压缩数据包数 | 计数 | 宿主机、容器 | device |
netdev_receive_frame_errors_total |
接收长度、溢出、CRC 和帧对齐错误总数 | 计数 | 宿主机、容器 | device |
netdev_receive_errors_total |
接收错误总数 | 计数 | 宿主机、容器 | device |
netdev_receive_dropped_total |
接收丢包数,包含 missed errors | 计数 | 宿主机、容器 | device |
netdev_receive_fifo_errors_total |
接收 FIFO/环形缓冲区溢出错误数 | 计数 | 宿主机、容器 | device |
netdev_transmit_bytes_total |
成功发送的总字节数 | 字节 | 宿主机、容器 | device |
netdev_transmit_packets_total |
成功发送的数据包总数 | 计数 | 宿主机、容器 | device |
netdev_transmit_collisions_total |
发送冲突次数 | 计数 | 宿主机、容器 | device |
netdev_transmit_errors_total |
发送错误总数 | 计数 | 宿主机、容器 | device |
netdev_transmit_dropped_total |
发送过程中被丢弃的包数(队列满、策略丢弃等) | 计数 | 宿主机、容器 | device |
netdev_transmit_fifo_errors_total |
发送 FIFO/环形缓冲区错误数 | 计数 | 宿主机、容器 | device |
netdev_transmit_carrier_errors_total |
发送载波、中止、窗口和心跳错误总数 | 计数 | 宿主机、容器 | device |
netdev_transmit_compressed_total |
发送的已压缩数据包数 | 计数 | 宿主机、容器 | device |
TCP 统计
读取网络命名空间的 /proc/<pid>/net/netstat 和 snmp,受 MetricCollector.Netstat 过滤规则影响。表中列宿主机名称;容器名称在 netstat_ 后增加 container_。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
netstat_TcpExt_ArpFilter |
因 ARP 过滤规则而被丢弃的数据包数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_BusyPollRxPackets |
通过 busy polling 机制接收到的数据包数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_DelayedACKLocked |
延迟 ACK 定时器到期,但 Socket 被用户态锁定而推迟发送的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_DelayedACKLost |
收到已确认报文的次数,可能由 ACK 丢失或网络重复报文导致 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_DelayedACKs |
延迟 ACK 定时器到期并发送 ACK 的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_EmbryonicRsts |
在 SYN_RECV 状态收到带 RST/SYN 标记的包个数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_ListenDrops |
LISTEN 状态 Socket 丢弃报文的次数,包括接受队列溢出、内存分配失败等情况 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_ListenOverflows |
TCP 接受队列溢出次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_OfoPruned |
乱序队列因内存不足被修剪的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_OutOfWindowIcmps |
收到的与当前 TCP 窗口无关的 ICMP 错误报文数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_PruneCalled |
因内存不足触发缓存清理的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_RcvPruned |
接收队列因内存不足被修剪(丢弃数据包)的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_SyncookiesFailed |
验证失败的 SYN cookie 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_SyncookiesRecv |
接收的 SYN cookie 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_SyncookiesSent |
发送的 SYN cookie 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPACKSkippedChallenge |
在处理 Challenge ACK 过程中跳过的其他 ACK 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPACKSkippedFinWait2 |
在 FIN-WAIT-2 状态下跳过的 ACK 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPACKSkippedPAWS |
因 PAWS 检查失败而跳过的 ACK 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPACKSkippedSeq |
因为序列号检查而跳过的 ACK 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPACKSkippedTimeWait |
在 TIME-WAIT 状态下跳过的 ACK 数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPAbortOnClose |
应用关闭连接时仍有未读取数据而中止连接的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPAbortOnData |
仍有在途数据时中止连接并发送 RST 的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPAbortOnLinger |
在 LINGER 状态下等待超时后中止连接的数量 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPAbortOnMemory |
因内存问题关闭连接的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPAbortOnTimeout |
因各种计时器的重传次数超过上限而关闭连接的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPLossFailures |
丢失数据包而进行恢复失败的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPLossProbeRecovery |
通过 TLP 检测并恢复丢包的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPLossProbes |
发送尾部丢包探测(TLP)报文的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPLossUndo |
在恢复过程中检测到丢失而撤销的次数 | 计数 | 宿主机、容器 | — |
netstat_TcpExt_TCPLostRetransmit |
丢包重传的数量 | 计数 | 宿主机、容器 | — |
表中仅列部分 TcpExt 字段;其余字段及版本差异见 Linux 内核文档。
参考:
Socket 使用量
读取网络命名空间的 /proc/<pid>/net/sockstat。表中列宿主机名称;容器名称在 sockstat_ 后增加 container_。mem、mem_bytes 仅在宿主机输出。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
sockstat_sockets_used |
当前使用的 Socket 数 | 计数 | 宿主机、容器 | — |
sockstat_TCP_inuse |
当前处于 TCP 连接状态(如 ESTABLISHED、LISTEN 等,除 TIME_WAIT 外)的 socket 数量 | 计数 | 宿主机、容器 | — |
sockstat_TCP_orphan |
不再关联用户态文件句柄的 TCP Socket 数 | 计数 | 宿主机、容器 | — |
sockstat_TCP_tw |
当前处于 TIME_WAIT 状态的 TCP Socket 数量 | 计数 | 宿主机、容器 | — |
sockstat_TCP_alloc |
当前已分配的 TCP Socket 对象总数 | 计数 | 宿主机、容器 | — |
sockstat_TCP_mem |
TCP 套接字当前占用的内核内存页数 | 页 | 宿主机 | — |
sockstat_UDP_inuse |
当前已绑定了本地端口的 UDP Socket 数量 | 计数 | 宿主机、容器 | — |
I/O
配置
iotracing、iolatency、blk_throtl、iocost 和 io_health 默认启用。
向全局 BlackList 添加对应名称并重启 Huatuo 可关闭该功能。
关闭 iotracing 会同时停止磁盘指标和自动诊断;关闭 io_health 会停止
健康事件、取证及其指标,不影响 iotracing。
磁盘性能
通过以下指标观测磁盘性能。指标使用 huatuo_bamai_iotracing_ 前缀,
均为区间 Gauge,带 disk 标签。
| 指标后缀 | 含义 |
|---|---|
read_bps、write_bps |
读写吞吐量,单位字节/秒 |
read_iops、write_iops |
每秒读写操作数 |
read_await_ms、write_await_ms |
读写平均完成时间,单位毫秒 |
io_util_percent |
磁盘忙碌时间占比 |
average_queue_size |
平均 IO 队列长度 |
指标覆盖整盘和支持的逻辑设备,不包含分区及 loop、ram、zram、fd 等伪设备。
延时与 IO 大小分布
iolatency 统计 SCSI/SAS、NVMe、virtio 磁盘及容器读写 IO 的延时和大小分布。
仅采集启动时已开启 iostats 和请求时间统计的磁盘,运行中不支持关闭这些配置。
启动时若软件 blk-crypto fallback 已初始化,整个 iolatency 不启动。
SCSI 下发大小沿用内核的 16 位扇区计数,达到 32 MiB 会回绕。 跨 blkcg 合并 request 时,容器下发大小为近似归属,宿主机统计不受影响。
块设备增删或重建时,iolatency、blk_throtl 和 iocost 重新开始统计,
过渡期间的所有磁盘数据可能缺失。
桶值为采集区间内小于等于 le 上界的 IO 数量,+Inf 为总数;延时边界
单位为秒,大小边界单位为字节。指标为区间 Gauge。
# TYPE huatuo_bamai_iolatency_q2d_seconds_bucket gauge
huatuo_bamai_iolatency_q2d_seconds_bucket{disk="sda",operation="read",host="hostname",region="dev",le="0.001"} 3
huatuo_bamai_iolatency_q2d_seconds_bucket{disk="sda",operation="read",host="hostname",region="dev",le="+Inf"} 5
# TYPE huatuo_bamai_iolatency_d2c_seconds_bucket gauge
huatuo_bamai_iolatency_d2c_seconds_bucket{disk="sda",operation="read",host="hostname",region="dev",le="+Inf"} 5
# TYPE huatuo_bamai_iolatency_q2g_seconds_bucket gauge
huatuo_bamai_iolatency_q2g_seconds_bucket{disk="sda",operation="read",host="hostname",region="dev",le="+Inf"} 5
# TYPE huatuo_bamai_iolatency_container_q2g_seconds_bucket gauge
huatuo_bamai_iolatency_container_q2g_seconds_bucket{container_host="etcd-hostname",container_hostnamespace="kube-system",container_level="burstable",container_name="etcd",container_type="normal",disk="sda",operation="read",host="hostname",region="dev",le="+Inf"} 2
| 指标 | 意义 | 单位 | 对象 |
|---|---|---|---|
| iolatency_q2d_seconds_bucket | 入队到最后一次下发的延时分布 | 计数 | 宿主 |
| iolatency_d2c_seconds_bucket | 最后一次下发到完成的延时分布 | 计数 | 宿主 |
| iolatency_q2g_seconds_bucket | 入队到 request 起始时间的延时分布 | 计数 | 宿主 |
| iolatency_container_q2d_seconds_bucket | 入队到最后一次下发的延时分布 | 计数 | 容器 |
| iolatency_container_d2c_seconds_bucket | 最后一次下发到完成的延时分布 | 计数 | 容器 |
| iolatency_container_q2g_seconds_bucket | 入队到 request 起始时间的延时分布 | 计数 | 容器 |
| iolatency_queued_io_size_bytes_bucket | 入队 bio 大小分布 | 计数 | 宿主 |
| iolatency_issued_io_size_bytes_bucket | request 大小分布;SCSI 取最后一次下发的完整大小,NVMe/virtio 取完成字节数 | 计数 | 宿主 |
| iolatency_container_queued_io_size_bytes_bucket | 入队 bio 大小分布 | 计数 | 容器 |
| iolatency_container_issued_io_size_bytes_bucket | request 大小分布;SCSI 取最后一次下发的完整大小,NVMe/virtio 取完成字节数 | 计数 | 容器 |
| iolatency_interval_start_timestamp_seconds | 本区间开始时间 | Unix 秒 | 宿主 |
| iolatency_interval_end_timestamp_seconds | 本区间结束时间 | Unix 秒 | 宿主 |
17 个延时桶界(秒)为 0.00005、0.0001、0.00025、0.0005、
0.001、0.002、0.004、0.008、0.016、0.032、0.064、0.128、
0.256、0.512、1、2、+Inf。
Grafana
IO 总览展示各采集区间的延时分布和 IO 数量,点击柱状图可查看该时段的
延时与大小直方图。面板使用 Business Charts(volkovlabs-echarts-panel)。
旧指标变更指南
升级后需更新自定义面板和告警,以下省略 huatuo_bamai_ 前缀:
| 旧指标 | 替换方式 |
|---|---|
iolatency_blkdisk_d2c |
iolatency_d2c_seconds_bucket |
iolatency_container_blkdisk_d2c |
iolatency_container_d2c_seconds_bucket |
iolatency_blkdisk_q2c、iolatency_container_blkdisk_q2c |
无直接等价指标,按所需阶段选择 Q2G、Q2D 或 D2C |
iolatency_blkdisk_freeze |
io_health_blkdisk_freeze,仍为 Counter |
disk 从 8:0 等设备号改为 sda 等磁盘名,新增 operation 区分读写。
旧 zone 编号改为以秒为单位的 le 累计上界;桶界见上文,不能按编号直接替换。
统计 (a, b] 范围的数量时,用 le=b 的值减去 le=a 的值。
旧延时指标仅统计 20 ms 及以上的 IO;新指标覆盖支持盘的全部读写 IO, D2C 从最后一次下发计时。旧告警需按新的阶段和桶界调整,不能只改指标名称。
新延时桶由累积 Counter 改为区间 Gauge,不能继续使用 rate() 或 increase()。
单个采集区间直接查询;例如,统计最近五分钟某盘读 IO 的 D2C 样本总数:
sum_over_time(huatuo_bamai_iolatency_d2c_seconds_bucket{disk="sda",operation="read",le="+Inf"}[5m])
硬件
# HELP huatuo_bamai_io_health_blkdisk_freeze the disk freeze event count
# TYPE huatuo_bamai_io_health_blkdisk_freeze counter
huatuo_bamai_io_health_blkdisk_freeze{disk="sda",host="hostname",region="dev"} 0
| 指标 | 意义 | 单位 | 对象 | 标签 |
|---|---|---|---|---|
| io_health_blkdisk_freeze | 宿主机磁盘 freeze 次数,换盘清零 | 计数 | 宿主 | host, region, disk |
可在宿主机仪表盘的 Overview → Selected Metric 中选择此指标。
blk-throttle 排队等待
blk_throtl 统计 IO 因 blk-throttle 限速而排队的数量和平均等待时间。
每个 IO 结束排队后计数一次,等待时间从首次排队算起。
| 指标 | 含义 |
|---|---|
blk_throtl_delayed_io_count |
采集区间内完成等待的 IO 数量 |
blk_throtl_average_wait_ms |
这些 IO 的平均排队时间,单位毫秒 |
blk_throtl_container_delayed_io_count |
容器采集区间内完成等待的 IO 数量 |
blk_throtl_container_average_wait_ms |
容器 IO 的平均排队时间,单位毫秒 |
指标按 disk 和 operation(read 或 write)区分,scope=host
表示宿主机总量,scope=other 表示其中无法归属容器的部分。
容器指标使用容器标签,不带 scope。四项均为区间 Gauge。
容器发现可选,宿主机采集不依赖 kubelet。容器查询失败或标签无效时,本轮数据
归入 other;关联恢复后不补报历史数据。临时采集失败后,首次成功采集仅重建
基线,下一次成功采集恢复输出,不补报失败区间。若错误导致采集停止,需排障后
重启 Huatuo。
cgroup 实际释放后,尚未采集的尾部等待增量归入 Host 和 Other,不再关联容器。 两次成功采集之间,同一统计项在单 CPU 上完成至少 67,108,864 次等待,或累计 等待约 274.9 万秒时,计数回绕可能导致少计。
IOCOST 等待统计
iocost 统计预算不足造成的等待。等待时间从 IO 进入等待队列算到最终被唤醒,
计入等待结束所在的采集区间。
| 指标 | 含义 |
|---|---|
iocost_waitq_io_count |
本轮完成等待的读写 IO 数量 |
iocost_average_wait_ms |
这些 IO 的平均等待时间,单位毫秒 |
iocost_container_waitq_io_count |
容器本轮完成等待的读写 IO 数量 |
iocost_container_average_wait_ms |
容器 IO 的平均等待时间,单位毫秒 |
这些区间 Gauge 按 disk(如 sda、nvme0n1)和 operation
(read、write)分组。scope=host 表示设备总量,包含所有
容器;scope=other 表示其中未归属容器的部分。
容器发现可选,宿主机采集不依赖 kubelet。容器查询失败或标签无效时,本轮数据
归入 other;关联恢复后不补报历史数据。临时采集失败后,首次成功采集仅重建
基线,下一次成功采集恢复输出,不补报失败区间。若错误导致采集停止,需排障后
重启 Huatuo。
cgroup 实际释放后,尚未采集的尾部等待增量归入 Host 和 Other,不再关联容器。 两次成功采集之间,同一统计项在单 CPU 上完成至少 67,108,864 次等待,或累计 等待约 274.9 万秒时,计数回绕可能导致少计。例如,同一统计项的 10,240 次等待 各持续 270 秒、在同一区间由同一 CPU 结算,会超出等待时间容量。
采集需要支持 IOCOST 的非 PREEMPT_RT Linux 内核,具备 BPF/BTF 和 kprobe 能力。
设备健康
io_health 记录以下事件:
| 事件类型 | 触发条件 |
|---|---|
block_error |
普通 block 请求完成时返回错误 |
nvme_timeout |
NVMe 请求超时 |
nvme_reset |
NVMe 控制器已接纳重置请求,不代表重置完成;仅记录事件,不触发取证 |
nvme_state_change |
NVMe controller 状态发生变化 |
scsi_timeout |
SCSI command 超时 |
scsi_dispatch_error |
SCSI command 派发失败 |
md_sync_action |
MD 同步动作发生变化 |
md_degraded |
MD 不可用成员数发生变化 |
md_member_state |
MD 成员状态发生变化或成员消失 |
NVMe 状态名不可用时,new_state 为 unknown,new_state_raw 保留状态码。
block 错误、NVMe 超时、SCSI 异常及 MD 成员进入 faulty、blocked、
write_error 或 removed 状态会触发只读健康取证:NVMe 使用 nvme-cli,
SCSI 使用 smartctl,结果随事件保存。无法唯一确定目标时仅保留事件,不扫描
其他设备。MD 监测不需要 mdadm。
事件中的 device 可保留 MD 成员的分区名;取证目标归整为唯一物理磁盘或
NVMe controller。
同设备取证执行中及结束后的 60 秒冷却期内不重复取证,原始事件仍独立保存。
huatuo_bamai_io_health_ Counter 记录进程启动后观察到的事件:
| 指标后缀 | 标签 | 含义 |
|---|---|---|
block_errors_total |
disk、operation、status | block 层错误次数 |
nvme_timeouts_total |
disk | NVMe timeout 次数 |
nvme_resets_total |
disk | NVMe 已接纳的重置请求次数 |
scsi_timeouts_total |
disk | SCSI timeout 次数 |
scsi_dispatch_errors_total |
disk、status | SCSI 派发失败次数 |
collection_errors_total |
disk、reason | 健康取证失败次数 |
event_persistence_failures_total |
reason | 事件保存返回错误的次数 |
MD 和 NVMe controller 状态变化以事件保存,不提供当前状态 Gauge。
Counter 先于事件保存更新;保存失败计入
event_persistence_failures_total{reason="save_error"}。
健康事件单独保存为文档,不可获得或不适用的可选字段省略:
| 字段 | 含义 |
|---|---|
type |
事件类型 |
device |
事件设备名;MD 成员事件可保留分区名 |
array、member |
MD 阵列和成员名 |
old_state、new_state |
MD 状态变化;NVMe 仅提供新状态 |
new_state_raw |
NVMe controller 状态码 |
operation、io_error_status、sector |
block 操作、错误及起始扇区 |
collection_status |
ok、partial、unsupported、timeout 或 error |
nvme、scsi |
事件触发后采集的协议健康证据 |
NVMe 证据包括 critical_warning、media_errors_total,以及最多八条包含
状态码、NSID 和 LBA 的错误日志。SCSI 证据包括整体健康状态、ASC/ASCQ、温度、
缺陷数量、读/写/校验错误计数,以及待处理缺陷数量和最多八个示例 LBA。
磁盘统计
diskio 读取 /proc/diskstats 和 /proc/stat,提供设备级请求数、吞吐量、累计耗时和宿主机 CPU iowait。
磁盘名标签由 device 改为 disk,自定义查询的筛选和图例需同步更新;
指标名称和类型不变。
仓库配置默认通过 BlackList 禁用 diskio。从黑名单移除并重启 huatuo-bamai 服务后启用。
请求数、字节数和 I/O 耗时为累计 Counter,可用 rate() 计算 IOPS、吞吐量和耗时增长速率。平均请求耗时为耗时增长速率除以请求速率,计算时需排除请求速率为零的区间。io_in_progress 和 disk_iowait_percent 为 Gauge。
| 指标 | 说明 | 单位 | 范围 | 附加标签 |
|---|---|---|---|---|
diskio_read_requests_total |
累积读请求完成数,使用 rate() 计算读 IOPS |
计数 | 宿主机 | disk |
diskio_write_requests_total |
累积写请求完成数,使用 rate() 计算写 IOPS |
计数 | 宿主机 | disk |
diskio_read_bytes_total |
累积读取字节数,使用 rate() 计算读吞吐量 |
字节 | 宿主机 | disk |
diskio_written_bytes_total |
累积写入字节数,使用 rate() 计算写吞吐量 |
字节 | 宿主机 | disk |
diskio_read_time_seconds_total |
已完成读请求的累积耗时 | 秒 | 宿主机 | disk |
diskio_write_time_seconds_total |
已完成写请求的累积耗时 | 秒 | 宿主机 | disk |
diskio_io_in_progress |
当前正在进行的 I/O 请求数,即队列深度 | 计数 | 宿主机 | disk |
diskio_disk_iowait_percent |
采集区间内 CPU 等待 I/O 完成的时间占比 | % | 宿主机 | — |
XFS
xfs 从 sysfs 采集宿主机各设备的统计,附加标签为 device。xfs_log_free_bytes 为 Gauge,名称以 _total 结尾的指标为累计 Counter。
| 指标 | 说明 | 单位 |
|---|---|---|
xfs_log_free_bytes |
日志剩余可用空间 | 字节 |
xfs_log_space_sleep_total |
等待日志空间的累计次数 | 计数 |
xfs_alloc_blocks_total |
累计分配块数 | 块 |
xfs_alloc_extents_total |
累计分配 extent 数 | 计数 |
xfs_inode_attempts_total |
inode 缓存累计请求数 | 计数 |
xfs_inode_missed_total |
inode 缓存累计未命中次数 | 计数 |
xfs_buf_busy_locked_total |
缓冲区忙锁事件累计次数 | 计数 |
xfs_buf_locked_waited_total |
等待缓冲区锁的累计次数 | 计数 |
无法获取日志可用空间时不输出 xfs_log_free_bytes。新增 XFS 挂载后需重启 huatuo-bamai 服务。
系统事件
软锁死
记录内核检测到的 soft lockup 事件。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
softlockup_total |
系统 softlockup 事件计数 | 计数 | 宿主机 | eBPF | — |
任务阻塞
记录内核检测到的 hung task 事件。
| 指标 | 说明 | 单位 | 范围 | 来源 | 附加标签 |
|---|---|---|---|---|---|
hungtask_total |
系统 hungtask 事件计数 | 计数 | 宿主机 | eBPF | — |
HungTask 容器归属与计数
| 指标 | 意义 | 单位 | 对象 | 取值 | 标签 |
|---|---|---|---|---|---|
| hungtask_container_total | 已归属容器的阻塞任务事件计数 | 计数 | 容器 | BPF + CSS 缓存 | container_host, container_hostnamespace, container_level, container_name, container_type, host, region |
容器计数包含在主机 Counter 中,不受追踪退避影响。容器归属无法解析的事件仍计入主机总量。容器退出后清理其计数,agent 重启后归零;同一阻塞任务重复上报按多次事件计数。
GPU
MetaX
仓库配置默认通过 BlackList 禁用 metax_gpu,启用前需满足对应设备和 SDK 依赖。
| 指标 | 说明 | 单位 | 附加标签 |
|---|---|---|---|
metax_gpu_sdk_info |
GPU SDK 信息 | — | version |
metax_gpu_driver_info |
GPU 驱动信息 | — | version |
metax_gpu_info |
GPU 基本信息 | — | gpu, model, uuid, bios_version, bdf, mode, die_count |
metax_gpu_board_power_watts |
GPU 板级功耗 | W | gpu |
metax_gpu_pcie_link_speed_gt_per_second |
GPU PCIe 当前链路速率 | GT/s | gpu |
metax_gpu_pcie_link_width_lanes |
GPU PCIe 当前链路宽度 | 通道数 | gpu |
metax_gpu_pcie_receive_bytes_per_second |
GPU PCIe 接收吞吐率 | B/s | gpu |
metax_gpu_pcie_transmit_bytes_per_second |
GPU PCIe 发送吞吐率 | B/s | gpu |
metax_gpu_metaxlink_link_speed_gt_per_second |
GPU MetaXLink 当前链路速率 | GT/s | gpu, metaxlink |
metax_gpu_metaxlink_link_width_lanes |
GPU MetaXLink 当前链路宽度 | 通道数 | gpu, metaxlink |
metax_gpu_metaxlink_receive_bytes_per_second |
GPU MetaXLink 接收吞吐率 | B/s | gpu, metaxlink |
metax_gpu_metaxlink_transmit_bytes_per_second |
GPU MetaXLink 发送吞吐率 | B/s | gpu, metaxlink |
metax_gpu_metaxlink_receive_bytes_total |
GPU MetaXLink 接收数据总量 | 字节 | gpu, metaxlink |
metax_gpu_metaxlink_transmit_bytes_total |
GPU MetaXLink 发送数据总量 | 字节 | gpu, metaxlink |
metax_gpu_metaxlink_aer_errors_total |
GPU MetaXLink AER 错误次数 | 计数 | gpu, metaxlink, error_type |
metax_gpu_status |
GPU 状态 | — | gpu, die |
metax_gpu_temperature_celsius |
GPU 温度 | °C | gpu, die |
metax_gpu_utilization_percent |
GPU 利用率(0–100) | % | gpu, die, ip |
metax_gpu_memory_total_bytes |
显存总容量 | 字节 | gpu, die |
metax_gpu_memory_used_bytes |
已使用显存容量 | 字节 | gpu, die |
metax_gpu_clock_mhz |
GPU 时钟频率 | MHz | gpu, die, ip |
metax_gpu_clocks_throttling |
GPU 时钟降频原因 | — | gpu, die, reason |
metax_gpu_dpm_performance_level |
GPU DPM 性能等级 | — | gpu, die, ip |
metax_gpu_ecc_memory_errors_total |
GPU ECC 内存错误次数 | 计数 | gpu, die, memory_type, error_type |
metax_gpu_ecc_memory_retired_pages_total |
GPU ECC 内存退役页数 | 计数 | gpu, die |
MThreads
摩尔线程 GPU 采集依赖 MTML 管理库,启动时依次查找 libmtml.so.2、libmtml.so。
从 BlackList 移除 mthreads_gpu 并重启 huatuo-bamai 服务后启用。MetricCollector.Mthreads 中的 EnableHealth、EnablePCIe、EnableMTLink 控制对应指标组。
| 指标 | 说明 | 单位 | 附加标签 |
|---|---|---|---|
mthreads_gpu_library_info |
MTML 库信息 | — | version |
mthreads_gpu_device_info |
GPU 信息 | — | gpu, name, brand, serial |
mthreads_gpu_device_pci_info |
GPU PCI 信息 | — | gpu, sbdf |
mthreads_gpu_device_spec |
GPU 规格 | — | gpu, cores |
mthreads_gpu_device_bios_version |
GPU BIOS 版本 | — | gpu, bios |
mthreads_gpu_device_musa_capability |
GPU MUSA 计算能力 | — | gpu, musa_capability |
mthreads_gpu_memory_info |
GPU 内存信息 | — | gpu, type, vendor, bus_width |
mthreads_gpu_pcie_link_max_speed_gt_per_sec |
GPU PCIe 最大链路速率(硬件能力) | GT/s | gpu |
mthreads_gpu_pcie_link_max_width_lanes |
GPU PCIe 最大链路宽度(硬件能力) | 通道数 | gpu |
mthreads_gpu_device_power_watts |
GPU 设备功耗 | W | gpu |
mthreads_gpu_gpu_temperature_celsius |
GPU 温度 | °C | gpu |
mthreads_gpu_memory_temperature_celsius |
GPU 内存温度 | °C | gpu |
mthreads_gpu_gpu_utilization_percent |
GPU 利用率(0-100) | % | gpu |
mthreads_gpu_memory_utilization_percent |
GPU 内存利用率(0-100) | % | gpu |
mthreads_gpu_memory_total_bytes |
GPU 总内存 | 字节 | gpu |
mthreads_gpu_memory_used_bytes |
GPU 已使用内存 | 字节 | gpu |
mthreads_gpu_gpu_clock_mhz |
GPU 时钟频率 | MHz | gpu |
mthreads_gpu_gpu_max_clock_mhz |
GPU 最大时钟频率 | MHz | gpu |
mthreads_gpu_memory_clock_mhz |
GPU 内存时钟频率 | MHz | gpu |
mthreads_gpu_memory_max_clock_mhz |
GPU 内存最大时钟频率 | MHz | gpu |
mthreads_gpu_gpu_voltage_volts |
GPU 电压 | V | gpu |
mthreads_gpu_gpu_power_limit_watts |
GPU 强制功耗限制 | W | gpu |
mthreads_gpu_gpu_power_default_limit_watts |
GPU 默认功耗管理限制 | W | gpu |
mthreads_gpu_fan_rpm |
GPU 风扇转速 | RPM | gpu, fan |
mthreads_gpu_fan_speed_percent |
GPU 风扇速度百分比 | % | gpu, fan |
mthreads_gpu_gpu_pstate |
GPU 性能状态(0=P0) | — | gpu |
mthreads_gpu_vpu_utilization_percent |
GPU VPU 利用率(0-100) | % | gpu |
mthreads_gpu_vpu_encoder_utilization_percent |
GPU VPU 编码器利用率(0-100) | % | gpu |
mthreads_gpu_vpu_decoder_utilization_percent |
GPU VPU 解码器利用率(0-100) | % | gpu |
mthreads_gpu_vpu_clock_mhz |
GPU VPU 时钟频率 | MHz | gpu |
mthreads_gpu_pcie_link_speed_gt_per_sec |
GPU PCIe 当前链路速率 | GT/s | gpu |
mthreads_gpu_pcie_link_width_lanes |
GPU PCIe 当前链路宽度 | 通道数 | gpu |
mthreads_gpu_pcie_replay_total |
GPU PCIe 重放计数器 | 计数 | gpu |
mthreads_gpu_mtlink_state |
GPU MtLink 状态(0=DOWN,1=UP,2=DOWNGRADE) | — | gpu, link |
mthreads_gpu_mtlink_link_bandwidth_gb_s |
GPU MtLink 每链路最大带宽(设备静态规格,非实时吞吐) | GB/s | gpu |
mthreads_gpu_mtlink_link_count |
GPU MtLink 最大支持链路数(设备静态规格) | 链路数 | gpu |