1. dcgm-exporter
dcgm-exporter 是 NVIDIA 官方社区提供的 GPU 监控工具。
项目地址 https://github.com/NVIDIA/dcgm-exporter
1.1 安装方式
1
| helm repo add gpu-helm-charts https://nvidia.github.io/dcgm-exporter/helm-charts
|
1
2
3
4
5
6
| helm install dcgm-exporter gpu-helm-charts/dcgm-exporter --namespace monitor --create-namespace \
--set serviceMonitor.enabled=false \
--set image.repository=hubimage/nvidia-dcgm-exporter \
--set image.tag=3.3.3-3.3.0-ubuntu22.04 \
--set nodeSelector."accelerator\/provider"=nvidia-gpu \
--version 3.3.1
|
需要给 NVIDIA GPU 节点打上标签
1
| kubectl label node <node-name> accelerator/provider=nvidia-gpu
|
1.2 指标
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_GPU_UTIL | Gauge | % | GPU 利用率 |
DCGM_FI_DEV_MEM_COPY_UTIL | Gauge | % | GPU 内存复制利用率 |
DCGM_FI_DEV_ENC_UTIL | Gauge | % | GPU 编码器利用率 |
DCGM_FI_DEV_DEC_UTIL | Gauge | % | GPU 解码器利用率 |
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_FB_FREE | Gauge | MiB | GPU 帧缓存剩余量 |
DCGM_FI_DEV_FB_USED | Gauge | MiB | GPU 帧缓存使用量 |
以下是您提供的指标信息的 Markdown 表格:
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_SM_CLOCK | Gauge | MHz | GPU SM 时钟频率 |
DCGM_FI_DEV_MEM_CLOCK | Gauge | MHz | GPU 内存时钟频率 |
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_PROF_GR_ENGINE_ACTIVE | Gauge | % | 在一个时间间隔内,Graphics 或 Compute 引擎处于 Active 的时间占比 |
DCGM_FI_PROF_SM_ACTIVE | Gauge | % | 在一个时间间隔内,至少一个线程束在一个 SM 上处于 Active 的时间占比(均值) |
DCGM_FI_PROF_SM_OCCUPANCY | Gauge | % | 在一个时间间隔内,驻留在 SM 上的线程束与该 SM 最大可驻留线程束的比例(均值) |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE | Gauge | % | 单位时间内 Tensor Pipes 平均处于 Active 状态的周期分数 |
DCGM_FI_PROF_DRAM_ACTIVE | Gauge | % | 内存拷贝活跃周期分数(一个周期内有一次 DRAM 指令则该周期为 100%) |
DCGM_FI_PROF_PIPE_FP64_ACTIVE | Gauge | % | 单位时间内 F64 Pipes 平均处于 Active 状态的周期分数 |
DCGM_FI_PROF_PIPE_FP32_ACTIVE | Gauge | % | 单位时间内 F32 Pipes 平均处于 Active 状态的周期分数 |
DCGM_FI_PROF_PIPE_FP16_ACTIVE | Gauge | % | 单位时间内 F16 Pipes 平均处于 Active 状态的周期分数 |
DCGM_FI_PROF_NVLINK_RX_BYTES | Counter | B/s | 通过 NVLink 接收的数据流量 |
DCGM_FI_PROF_NVLINK_TX_BYTES | Counter | B/s | 通过 NVLink 传输的数据流量 |
DCGM_FI_PROF_PCIE_RX_BYTES | Counter | B/s | 通过 PCIe 总线接收字节数 |
DCGM_FI_PROF_PCIE_TX_BYTES | Counter | B/s | 通过 PCIe 总线传输字节数 |
DCGM_FI_DEV_PCIE_REPLAY_COUNTER | Counter | 次 | GPU PCIe 总线的重试次数 |
DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL | Counter | - | GPU 所有通道的 NVLink 带宽计数器总数 |
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_GPU_TEMP | Gauge | ℃ | GPU 当前温度 |
DCGM_FI_DEV_MEMORY_TEMP | Gauge | ℃ | GPU 显存当前温度 |
DCGM_FI_DEV_POWER_USAGE | Gauge | W | GPU 当前使用功率 |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION | Counter | mJ | GPU 启动以来的总能耗 |
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_XID_ERRORS | Gauge | - | 最近发生的错误代码 |
DCGM_CUSTOM_XID_ERRORS_TOTAL_COUNTER | Counter | - | 发生错误代码总数 |
DCGM_FI_DEV_POWER_VIOLATION | Counter | μs | 因功率上限而导致违规的累积持续时间 |
DCGM_FI_DEV_THERMAL_VIOLATION | Counter | μs | 因热限制导致违规的累积持续时间 |
DCGM_FI_DEV_SYNC_BOOST_VIOLATION | Counter | μs | 因同步提升限制而导致违规的累积持续时间 |
DCGM_FI_DEV_BOARD_LIMIT_VIOLATION | Counter | μs | 因电路板限制而导致违规的累积持续时间 |
DCGM_FI_DEV_LOW_UTIL_VIOLATION | Counter | μs | 因低利用率限制导致违规的累积持续时间 |
DCGM_FI_DEV_RELIABILITY_VIOLATION | Counter | μs | 因电路板可靠性限制导致违规的累积持续时间 |
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_RETIRED_SBE | Counter | 个 | 因单 bit 错误而停用的内存页面 |
DCGM_FI_DEV_RETIRED_DBE | Counter | 个 | 因双 bit 错误而停用的内存页面 |
指标名称 | 指标类型 | 单位 | 描述 |
---|
DCGM_FI_DEV_VGPU_LICENSE_STATUS | Gauge | - | vGPU 许可证状态 |
DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWS | Counter | - | 因无法纠正的错误而重新映射的行数 |
DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWS | Counter | - | 因可纠正的错误而重新映射的行数 |
DCGM_FI_DEV_ROW_REMAP_FAILURE | Gauge | | |
2. npu-exporter
NPU-Expoter 是华为自研的专门收集华为 NPU 各种监控信息和指标,并封装成 Prometheus 专用数据格式的一个服务组件。项目地址 https://github.com/Ascend/ascend-npu-exporter
2.1 安装方式
1
| kubectl apply -f https://raw.githubusercontent.com/shaowenchen/hubimage/main/observation/v5.0.RC3-npu-exporter.yaml
|
需要给 Huawei NPU 节点打上标签
1
| kubectl label node <node-name> accelerator/provider=huawei-npu
|
这里的 Container Runtime 为 Docker,如果是 Containerd 需要在启动参数中进行修改。
2.2 指标
指标名称 | 单位 | 描述 |
---|
machine_npu_nums | 个 | 昇腾 AI 处理器数目。 |
指标名称 | 单位 | 描述 |
---|
npu_chip_info_bandwidth_rx | MB/s | 昇腾 AI 处理器网口实时接收速率(仅支持 Atlas 训练系列产品)。标签包含以下字段: |
npu_chip_info_bandwidth_tx | MB/s | 昇腾 AI 处理器网口实时发送速率(仅支持 Atlas 训练系列产品)。标签包含以下字段: |
npu_chip_info_link_status | 1:UP, 0:DOWN | 昇腾 AI 处理器网口 Link 状态(仅支持 Atlas 训练系列产品)。标签包含以下字段: |
npu_chip_info_network_status | 1:健康, 0:不健康 | 昇腾 AI 处理器网络健康状态(仅支持 Atlas 训练系列产品)。标签包含以下字段: |
指标名称 | 取值 | 描述 |
---|
npu_chip_info_error_code | 详见说明 | 昇腾 AI 处理器错误码。标签包含以下字段: 最后一列显示的-1,表示 DCMI 接口调用报错,可能是因为驱动异常导致;若为 0 表示没有错误码。错误码的详细信息请参见《Atlas A2 中心推理和训练硬件 黑匣子错误码信息列表》 |
npu_chip_info_name | - | 昇腾 AI 处理器名称和 ID。标签包含以下字段: |
npu_chip_info_health_status | 1:健康, 0:不健康 | 昇腾 AI 处理器健康状态。标签包含以下字段: |
指标名称 | 单位 | 描述 |
---|
npu_chip_info_power | 瓦特(W) | 昇腾 AI 处理器功耗(910 和 310 为处理器功耗,310P 为板卡功耗)。标签包含以下字段: |
npu_chip_info_temperature | 摄氏度(℃) | 昇腾 AI 处理器温度。标签包含以下字段: |
npu_chip_info_utilization | % | 昇腾 AI 处理器 AI Core 利用率。标签包含以下字段: |
npu_chip_info_aicore_current_freq | MHz | 昇腾 AI 处理器的 AI Core 当前频率。标签包含以下字段: |
指标名称 | 单位 | 描述 |
---|
npu_chip_info_used_memory | MB | 昇腾 AI 处理器 DDR 内存已使用量。标签包含以下字段: |
npu_chip_info_total_memory | MB | 昇腾 AI 处理器 DDR 内存总量。标签包含以下字段: |
npu_chip_info_hbm_used_memory | MB | 昇腾 AI 处理器 HBM 内存已使用量(Atlas 训练系列产品专属)。标签包含以下字段: |
npu_chip_info_hbm_total_memory | MB | 昇腾 AI 处理器 HBM 总内存(Atlas 训练系列产品专属)。标签包含以下字段: |
container_npu_total_memory | MB | 带有容器信息的 NPU 内存总大小,只支持整卡。容器信息包含以下字段: |
container_npu_used_memory | MB | 带有容器信息的 NPU 已使用内存,只支持整卡。容器信息包含以下字段: |
vnpu_pod_total_memory | KB | vNPU 拥有的总内存:(仅 Atlas 推理系列产品支持) |
vnpu_pod_used_memory | KB | vNPU 使用中的内存:(仅 Atlas 推理系列产品支持) |
指标名称 | 单位 | 描述 |
---|
npu_exporter_version_info | - | NPU-Exporter 版本信息。 |
npu_container_info | - | NPU 容器信息,输出包含以下字段: |
container_npu_total_memory | MB | 带有容器信息的 NPU 内存总大小,只支持整卡。容器信息包含以下字段: |
container_npu_used_memory | MB | 带有容器信息的 NPU 已使用内存,只支持整卡。容器信息包含以下字段: |
container_npu_utilization | % | 带有容器信息的 NPU 利用率,只支持整卡。容器信息包含以下字段: |
vnpu_pod_aicore_utilization | % | vNPU 的 AI Core 利用率:(仅 Atlas 推理系列产品支持) |
vnpu_pod_total_memory | KB | vNPU 拥有的总内存:(仅 Atlas 推理系列产品支持) |
vnpu_pod_used_memory | KB | vNPU 使用中的内存:(仅 Atlas 推理系列产品支持) |
3. node-exporter
node-exporter 是 Prometheus 开源的一个用于采集主机各项指标的工具。
项目地址 https://github.com/prometheus/node_exporter
3.1 安装方式
一般安装 Prometheus Server 时,默认已经安装 node-exporter,无需再次安装。
1
| helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
1
| helm install prometheus-node-exporter prometheus-community/prometheus-node-exporter --namespace monitor --create-namespace
|
3.2 指标
以下是去掉分类列后的 Markdown 表格:
指标名称 | 类型 | 描述 |
---|
node_cpu_seconds_total | Counter | 节点 CPU 的使用时间 (单位:秒) |
指标名称 | 类型 | 描述 |
---|
node_memory_MemTotal_bytes | Gauge | 节点总内存大小(单位:字节) |
node_memory_MemFree_bytes | Gauge | 节点空闲内存大小(单位:字节) |
node_memory_Buffers_bytes | Gauge | 节点缓存大小(单位:字节) |
node_memory_Cached_bytes | Gauge | 节点页面缓存大小(单位:字节) |
指标名称 | 类型 | 描述 |
---|
node_filesystem_avail_bytes | Gauge | 分区用户剩余空间(单位:字节) |
node_filesystem_size_bytes | Gauge | 分区空间总容量(单位:字节) |
node_filesystem_free_bytes | Gauge | 分区物理剩余空间(单位:字节) |
node_disk_read_bytes_total | Counter | 分区读总字节数(单位:字节) |
node_disk_written_bytes_total | Counter | 分区写总字节数(单位:字节) |
node_disk_reads_completed_total | Counter | 分区读总次数 |
node_disk_writes_completed_total | Counter | 分区写总次数 |
指标名称 | 类型 | 描述 |
---|
node_network_receive_bytes_total | Counter | 接收流量总字节数(单位:字节) |
node_network_transmit_bytes_total | Counter | 发送流量总字节数(单位:字节) |
node_network_receive_packets_total | Counter | 接收流量总包数(单位:包) |
node_network_transmit_packets_total | Counter | 发送流量总包数(单位:包) |
node_network_receive_drop_total | Counter | 接收流量总丢包数(单位:包) |
node_network_transmit_drop_total | Counter | 发送流量总丢包数(单位:包) |
4 node-problem-detector
Node Problem Detector 简称 NPD,是 Kubernetes 开源的集群节点监控插件,用于节点故障检查。
项目地址 https://github.com/kubernetes/node-problem-detector
4.1 安装方式
1
| helm repo add deliveryhero https://charts.deliveryhero.io/
|
1
| helm install node-problem-detector deliveryhero/node-problem-detector --namespace monitor --create-namespace
|
4.2 指标
指标名称 | 类型 | 描述 |
---|
node_filesystem_avail_bytes | Gauge | 分区用户剩余空间(单位:字节) |
node_filesystem_size_bytes | Gauge | 分区空间总容量(单位:字节) |
node_filesystem_free_bytes | Gauge | 分区物理剩余空间(单位:字节) |
node_disk_read_bytes_total | Counter | 分区读总字节数(单位:字节) |
node_disk_written_bytes_total | Counter | 分区写总字节数(单位:字节) |
node_disk_reads_completed_total | Counter | 分区读总次数 |
node_disk_writes_completed_total | Counter | 分区写总次数 |
指标名称 | 类型 | 描述 |
---|
node_network_receive_bytes_total | Counter | 接收流量总字节数(单位:字节) |
node_network_transmit_bytes_total | Counter | 发送流量总字节数(单位:字节) |
node_network_receive_packets_total | Counter | 接收流量总包数(单位:包) |
node_network_transmit_packets_total | Counter | 发送流量总包数(单位:包) |
node_network_receive_drop_total | Counter | 接收流量总丢包数(单位:包) |
node_network_transmit_drop_total | Counter | 发送流量总丢包数(单位:包) |
指标名称 | 类型 | 描述 |
---|
cpu_load_1m | Gauge | CPU 平均负载(1 分钟) |
cpu_load_5m | Gauge | CPU 平均负载(5 分钟) |
cpu_load_15m | Gauge | CPU 平均负载(15 分钟) |
cpu_runnable_task_count | Gauge | 平均运行任务数(过去一分钟) |
cpu_usage_time | Counter | CPU 使用时间(按状态分) |
指标名称 | 类型 | 描述 |
---|
memory_bytes_used | Gauge | 内存使用量(按状态分) |
memory_anonymous_used | Gauge | 匿名内存使用量(按状态分) |
memory_dirty_used | Gauge | 脏页面内存使用量 |
memory_page_cache_used | Gauge | 页面缓存内存使用量(按状态分) |
memory_unevictable_used | Gauge | 不可清除内存使用量 |
指标名称 | 类型 | 描述 |
---|
host_uptime | Gauge | 操作系统运行时间 |
system_cpu_stat | Counter | CPU 不同状态的运行时间 |
system_interrupts_total | Counter | 总中断服务次数(累计) |
system_os_feature | Gauge | 操作系统特性开启状态 |
system_processes_total | Counter | 启动以来的进程总数(累计) |
system_procs_blocked | Gauge | 当前阻塞的进程数 |
system_procs_running | Gauge | 当前运行的进程数 |
指标名称 | 类型 | 描述 |
---|
problem_counter | Counter | 特定类型问题发生次数 |
指标名称 | 类型 | 描述 |
---|
problem_gauge | Gauge | 特定类型问题状态 |
5. process-exporter
process-exporter 主要是用来监控主机上进程的状态,但非常可惜,已经很久没有更新了。
项目地址 https://github.com/mumoshu/prometheus-process-exporter ,监控面板 https://grafana.com/grafana/dashboards/8378-system-processes-metrics/
5.1 安装方式
1
| kubectl apply -f https://raw.githubusercontent.com/shaowenchen/hubimage/main/observation/process-exporter.yaml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| apiVersion: v1
data:
process-exporter.yaml: |-
process_names:
- name: "{{.Matches}}"
cmdline:
- 'python'
- name: "{{.Matches}}"
cmdline:
- 'triton'
kind: ConfigMap
metadata:
name: process-exporter-config
namespace: monitor
|
匹配模板 | 描述 |
---|
{{.Comm}} | 包含原始可执行文件的名称,即/proc//stat |
{{.ExeBase}} | 包含可执行文件的名称(默认) |
{{.ExeFull}} | 包含可执行文件的路径 |
{{.Username}} | 包含的用户名 |
{{.Matches}} | 包含所有正则表达式而产生的匹配项(建议使用) |
{{.PID}} | 包含进程的 PID,一个 PID 仅包含一个进程(不建议使用) |
{{.StartTime}} | 包含进程的开始时间(不建议使用) |
5.2 指标
指标名称 | 描述 |
---|
namedprocess_namegroup_num_procs | 运行的进程数 |
namedprocess_namegroup_states | Running/Sleeping/Other/Zombie 状态的进程数 |
namedprocess_namegroup_cpu_seconds_total | 获取/proc/[pid]/stat 进程 CPU utime、stime 状态时间 |
namedprocess_namegroup_read_bytes_total | 获取/proc/[pid]/io 进程读取字节数 |
namedprocess_namegroup_write_bytes_total | 获取/proc/[pid]/io 进程写入字节数 |
namedprocess_namegroup_memory_bytes | 获取进程使用的内存字节数 |
namedprocess_namegroup_open_filedesc | 获取进程使用的文件描述符数量 |
namedprocess_namegroup_thread_count | 运行的线程数 |
namedprocess_namegroup_thread_cpu_seconds_total | 获取线程 CPU 状态时间 |
namedprocess_namegroup_thread_io_bytes_total | 获取线程 IO 字节数 |
6. nvidia gpu exporter
nvidia gpu exporter 是一个通过 nvidia-smi 获取 GPU 指标的工具
项目地址 https://github.com/utkuozdemir/nvidia_gpu_exporter ,面板地址 https://grafana.com/grafana/dashboards/14574-nvidia-gpu-metrics/
6.1 安装方式
1
| helm repo add utkuozdemir https://utkuozdemir.org/helm-charts
|
1
2
3
4
| helm install nvidia-gpu-exporter utkuozdemir/nvidia-gpu-exporter \
--namespace monitor --create-namespace \
--set nodeSelector."accelerator\/provider"=nvidia-gpu \
--set serviceMonitor.enabled=false
|
需要给 NVIDIA GPU 节点打上标签
1
| kubectl label node <node-name> accelerator/provider=nvidia-gpu
|
6.2 指标
指标名称 | 类型 | 单位 | 描述 |
---|
nvidia_smi_accounting_buffer_size | gauge | | 计费缓冲区大小 |
nvidia_smi_accounting_mode | gauge | | 计费模式 |
nvidia_smi_clocks_applications_graphics_clock_hz | gauge | MHz | 应用程序显卡时钟频率 |
nvidia_smi_clocks_applications_memory_clock_hz | gauge | MHz | 应用程序内存时钟频率 |
nvidia_smi_clocks_current_graphics_clock_hz | gauge | MHz | 当前显卡时钟频率 |
nvidia_smi_clocks_current_memory_clock_hz | gauge | MHz | 当前内存时钟频率 |
nvidia_smi_clocks_current_sm_clock_hz | gauge | MHz | 当前流处理器时钟频率 |
nvidia_smi_clocks_current_video_clock_hz | gauge | MHz | 当前视频时钟频率 |
nvidia_smi_clocks_default_applications_graphics_clock_hz | gauge | MHz | 默认应用程序显卡时钟频率 |
nvidia_smi_clocks_default_applications_memory_clock_hz | gauge | MHz | 默认应用程序内存时钟频率 |
nvidia_smi_clocks_max_graphics_clock_hz | gauge | MHz | 最大显卡时钟频率 |
nvidia_smi_clocks_max_memory_clock_hz | gauge | MHz | 最大内存时钟频率 |
nvidia_smi_clocks_max_sm_clock_hz | gauge | MHz | 最大流处理器时钟频率 |
nvidia_smi_clocks_throttle_reasons_active | gauge | | 主动限制原因 |
nvidia_smi_clocks_throttle_reasons_applications_clocks_setting | gauge | | 应用程序时钟设置限制原因 |
nvidia_smi_clocks_throttle_reasons_gpu_idle | gauge | | GPU 空闲限制原因 |
nvidia_smi_clocks_throttle_reasons_hw_power_brake_slowdown | gauge | | 硬件动力制动减速限制原因 |
nvidia_smi_clocks_throttle_reasons_hw_slowdown | gauge | | 硬件减速限制原因 |
nvidia_smi_clocks_throttle_reasons_hw_thermal_slowdown | gauge | | 硬件温控减速限制原因 |
nvidia_smi_clocks_throttle_reasons_supported | gauge | | 支持的限制原因 |
nvidia_smi_clocks_throttle_reasons_sw_power_cap | gauge | | 软件功率上限限制原因 |
nvidia_smi_clocks_throttle_reasons_sw_thermal_slowdown | gauge | | 软件温控减速限制原因 |
nvidia_smi_clocks_throttle_reasons_sync_boost | gauge | | 同步增强限制原因 |
nvidia_smi_command_exit_code | gauge | | 最后一次抓取命令的退出码 |
nvidia_smi_compute_cap | gauge | | 计算能力 |
nvidia_smi_compute_mode | gauge | | 计算模式 |
nvidia_smi_count | gauge | | 数量 |
nvidia_smi_display_active | gauge | | 显示器激活状态 |
nvidia_smi_display_mode | gauge | | 显示器模式 |
nvidia_smi_ecc_errors_corrected_aggregate_device_memory | gauge | | 修正的设备内存 ECC 错误总数 |
nvidia_smi_ecc_errors_corrected_aggregate_dram | gauge | | 修正的 DRAM ECC 错误总数 |
nvidia_smi_ecc_errors_corrected_aggregate_total | gauge | | 修正的 ECC 错误总数 |
nvidia_smi_ecc_errors_corrected_volatile_device_memory | gauge | | 修正的易失性设备内存 ECC 错误数 |
nvidia_smi_ecc_errors_corrected_volatile_dram | gauge | | 修正的易失性 DRAM ECC 错误数 |
nvidia_smi_ecc_errors_corrected_volatile_total | gauge | | 修正的易失性 ECC 错误总数 |
nvidia_smi_ecc_errors_uncorrected_aggregate_device_memory | gauge | | 未修正的设备内存 ECC 错误总数 |
nvidia_smi_ecc_errors_uncorrected_aggregate_dram | gauge | | 未修正的 DRAM ECC 错误总数 |
nvidia_smi_ecc_errors_uncorrected_aggregate_total | gauge | | 未修正的 ECC 错误总数 |
nvidia_smi_ecc_errors_uncorrected_volatile_device_memory | gauge | | 未修正的易失性设备内存 ECC 错误数 |
nvidia_smi_ecc_errors_uncorrected_volatile_dram | gauge | | 未修正的易失性 DRAM ECC 错误数 |
nvidia_smi_ecc_errors_uncorrected_volatile_total | gauge | | 未修正的易失性 ECC 错误总数 |
nvidia_smi_ecc_mode_current | gauge | | 当前 ECC 模式 |
nvidia_smi_ecc_mode_pending | gauge | | 等待生效的 ECC 模式 |
nvidia_smi_encoder_stats_average_fps | gauge | | 编码器平均 FPS |
nvidia_smi_encoder_stats_average_latency | gauge | | 编码器平均延迟 |
nvidia_smi_encoder_stats_session_count | gauge | | 编码会话数 |
nvidia_smi_enforced_power_limit_watts | gauge | W | 执行的功率限制 |
nvidia_smi_gpu_info | gauge | | GPU 信息 |
nvidia_smi_index | gauge | | 索引 |
nvidia_smi_inforom_ecc | gauge | | ECC 信息 ROM |
nvidia_smi_inforom_oem | gauge | | OEM 信息 ROM |
nvidia_smi_memory_free_bytes | gauge | MiB | 空闲内存 |
nvidia_smi_memory_reserved_bytes | gauge | MiB | 保留内存 |
nvidia_smi_memory_total_bytes | gauge | MiB | 总内存 |
nvidia_smi_memory_used_bytes | gauge | MiB | 已用内存 |
nvidia_smi_name | gauge | | 名称 |
nvidia_smi_pci_bus | gauge | | PCI 总线号 |
nvidia_smi_pci_device | gauge | | PCI 设备号 |
nvidia_smi_pci_device_id | gauge | | PCI 设备 ID |
nvidia_smi_pci_domain | gauge | | PCI 域 |
nvidia_smi_pci_sub_device_id | gauge | | PCI 子设备 ID |
nvidia_smi_pcie_link_gen_current | gauge | | 当前 PCIe 链路生成 |
nvidia_smi_pcie_link_gen_gpucurrent | gauge | | GPU 当前 PCIe 链路生成 |
nvidia_smi_pcie_link_gen_gpumax | gauge | | GPU 最大 PCIe 链路生成 |
nvidia_smi_pcie_link_gen_hostmax | gauge | | 主机最大 PCIe 链路生成 |
nvidia_smi_pcie_link_gen_max | gauge | | 最大 PCIe 链路生成 |
nvidia_smi_pcie_link_width_current | gauge | | 当前 PCIe 链路带宽 |
nvidia_smi_pcie_link_width_max | gauge | | |
7. juicefs-exporter
在主机上挂载 JuiceFS 文件系统时,默认在 9567 端口就有 Metrics 数据。
面板地址 https://github.com/juicedata/juicefs/blob/be5b6935975ea665c37f9cf5f5827e6f9474e28f/docs/en/grafana_template.json
7.1 安装方式
1
| kubectl apply -f https://raw.githubusercontent.com/shaowenchen/hubimage/main/observation/host-9567-expoorter.yaml
|
7.2 指标
指标名称 | 描述 | 单位 |
---|
juicefs_used_space | 总使用空间 | 字节 |
juicefs_used_inodes | 总 inodes 数量 | |
指标名称 | 描述 | 单位 |
---|
juicefs_uptime | 总运行时间 | 秒 |
juicefs_cpu_usage | CPU 使用量 | 秒 |
juicefs_memory | 内存使用量 | 字节 |
指标名称 | 描述 | 单位 |
---|
juicefs_transaction_durations_histogram_seconds | 事务的延时分布 | 秒 |
juicefs_transaction_restart | 事务重启的次数 | |
指标名称 | 描述 | 单位 |
---|
juicefs_fuse_read_size_bytes | 读请求的大小分布 | 字节 |
juicefs_fuse_written_size_bytes | 写请求的大小分布 | 字节 |
juicefs_fuse_ops_durations_histogram_seconds | 所有请求的延时分布 | 秒 |
juicefs_fuse_open_handlers | 打开的文件和目录数量 | |
指标名称 | 描述 | 单位 |
---|
juicefs_sdk_read_size_bytes | 读请求的大小分布 | 字节 |
juicefs_sdk_written_size_bytes | 写请求的大小分布 | 字节 |
juicefs_sdk_ops_durations_histogram_seconds | 所有请求的延时分布 | 秒 |
指标名称 | 描述 | 单位 |
---|
juicefs_blockcache_blocks | 缓存块的总个数 | |
juicefs_blockcache_bytes | 缓存块的总大小 | 字节 |
juicefs_blockcache_hits | 命中缓存块的总次数 | |
juicefs_blockcache_miss | 没有命中缓存块的总次数 | |
juicefs_blockcache_writes | 写入缓存块的总次数 | |
juicefs_blockcache_drops | 丢弃缓存块的总次数 | |
juicefs_blockcache_evicts | 淘汰缓存块的总次数 | |
juicefs_blockcache_hit_bytes | 命中缓存块的总大小 | 字节 |
juicefs_blockcache_miss_bytes | 没有命中缓存块的总大小 | 字节 |
juicefs_blockcache_write_bytes | 写入缓存块的总大小 | 字节 |
juicefs_blockcache_read_hist_seconds | 读缓存块的延时分布 | 秒 |
juicefs_blockcache_write_hist_seconds | 写缓存块的延时分布 | 秒 |
juicefs_staging_blocks | 暂存路径中的块数 | |
juicefs_staging_block_bytes | 暂存路径中块的总字节数 | 秒 |
juicefs_staging_block_delay_seconds | 暂存块延迟的总秒数 | 秒 |
指标名称 | 描述 | 单位 |
---|
juicefs_object_request_durations_histogram_seconds | 请求对象存储的延时分布 | 秒 |
juicefs_object_request_errors | 请求失败的总次数 | |
juicefs_object_request_data_bytes | 请求对象存储的总数据大小 | 字节 |
指标名称 | 描述 | 单位 |
---|
juicefs_compact_size_histogram_bytes | 合并数据的大小分布 | 字节 |
juicefs_used_read_buffer_size_bytes | 当前用于读取的缓冲区的大小 | |
指标名称 | 描述 | 单位 |
---|
juicefs_sync_scanned | 从源端扫描的所有对象数量 | |
juicefs_sync_handled | 已经处理过的来自源端的对象数量 | |
juicefs_sync_pending | 等待同步的对象数量 | |
juicefs_sync_copied | 已经同步过的对象数量 | |
juicefs_sync_copied_bytes | 已经同步过的数据总大小 | 字节 |
juicefs_sync_skipped | 同步时被跳过的对象数量 | |
juicefs_sync_failed | 同步时失败的对象数量 | |
juicefs_sync_deleted | 同步时被删除的对象数量 | |
juicefs_sync_checked | 同步时校验过 checksum 的对象数量 | |
juicefs_sync_checked_bytes | 同步时校验过 checksum 的数据总大小 | 字节 |
8. kube-state-metrics
kube-state-metrics 通过监听 Kubernetes API 服务器来生成不同资源的状态的 Metrics 数据。
项目地址 https://github.com/kubernetes/kube-state-metrics ,监控面板 https://grafana.com/grafana/dashboards/13332-kube-state-metrics-v2/ 。
8.1 安装方式
一般安装 Prometheus Server 时,默认已经安装 kube-state-metrics,无需再次安装。
1
| kubectl apply -f https://raw.githubusercontent.com/shaowenchen/hubimage/main/observation/v2.10.0-kube-state-metrics.yaml
|
8.2 指标
指标名称 | 类型 | 描述 |
---|
kube_node_info | Gauge | 查询集群内所有的节点信息,可以通过 sum() 函数获得集群中的所有节点数目。 |
kube_node_spec_unschedulable | Gauge | 查询节点是否可以被调度新的 Pod。可以通过 sum() 函数获得集群中可以调度的 Pod 总数。 |
kube_node_status_allocatable | Gauge | 查询节点可用于调度的资源总数。包括:CPU、内存、Pods 等。允许通过标签筛选,查看节点具体的资源容量。 |
kube_node_status_capacity | Gauge | 查询节点的全部资源总数,包括:CPU、内存、Pods 等。允许通过标签筛选,查看节点具体的资源容量。 |
kube_node_status_condition | Gauge | 查询节点的状态,可以基于 OutOfDisk、MemoryPressure、DiskPressure 等状态找到状态不正常的节点。 |
指标名称 | 类型 | 描述 |
---|
kube_pod_info | Gauge | 查询所有的 Pod 信息,可以通过 sum() 函数获得集群中的所有 Pod 数目。 |
kube_pod_status_phase | Gauge | 查询所有的 Pod 启动状态。状态包括: _ True:启动成功。 _ Failed:启动失败。 * Unknown:状态未知。 |
kube_pod_status_ready | Gauge | 查询所有处于 Ready 状态的 Pod。可以通过 sum() 函数获得集群中的所有 Pod 数目。 |
kube_pod_status_scheduled | Gauge | 查询所有处于 scheduled 状态的 Pod。可以通过 sum() 函数获得集群中的所有 Pod 数目。 |
指标名称 | 类型 | 描述 |
---|
kube_pod_container_info | Gauge | 查询所有 Container 的信息。可以通过 sum() 函数获得集群中的所有 Container 数目。 |
kube_pod_container_status_ready | Gauge | 查询所有状态为 Ready 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。 |
kube_pod_container_status_restarts_total | Count | 查询集群中所有 Container 的重启累计次数。可以通过 irate() 函数获得集群中 Container 的重启率。 |
kube_pod_container_status_running | Gauge | 查询所有状态为 Running 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。 |
kube_pod_container_status_terminated | Gauge | 查询所有状态为 Terminated 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。 |
kube_pod_container_status_waiting | Gauge | 查询所有状态为 Waiting 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。 |
kube_pod_container_resource_requests | Gauge | 查询容器的资源需求量。允许通过标签筛选,查看容器具体的资源需求量。 |
kube_pod_container_resource_limits | Gauge | 查询容器的资源限制量。允许通过标签筛选,查看容器具体的资源限制量。 |