Please enable Javascript to view the contents

Kubernetes 集群中 AI 相关的采集器

 ·  ☕ 12 分钟

1. dcgm-exporter

dcgm-exporter 是 NVIDIA 官方社区提供的 GPU 监控工具。

项目地址 https://github.com/NVIDIA/dcgm-exporter

1.1 安装方式

  • 添加 Helm 镜像仓库
1
helm repo add gpu-helm-charts https://nvidia.github.io/dcgm-exporter/helm-charts
1
helm repo update
  • 安装
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 指标

  • GPU 利用率
指标名称指标类型单位描述
DCGM_FI_DEV_GPU_UTILGauge%GPU 利用率
DCGM_FI_DEV_MEM_COPY_UTILGauge%GPU 内存复制利用率
DCGM_FI_DEV_ENC_UTILGauge%GPU 编码器利用率
DCGM_FI_DEV_DEC_UTILGauge%GPU 解码器利用率
  • 内存
指标名称指标类型单位描述
DCGM_FI_DEV_FB_FREEGaugeMiBGPU 帧缓存剩余量
DCGM_FI_DEV_FB_USEDGaugeMiBGPU 帧缓存使用量

以下是您提供的指标信息的 Markdown 表格:

  • 频率
指标名称指标类型单位描述
DCGM_FI_DEV_SM_CLOCKGaugeMHzGPU SM 时钟频率
DCGM_FI_DEV_MEM_CLOCKGaugeMHzGPU 内存时钟频率
  • 剖析
指标名称指标类型单位描述
DCGM_FI_PROF_GR_ENGINE_ACTIVEGauge%在一个时间间隔内,Graphics 或 Compute 引擎处于 Active 的时间占比
DCGM_FI_PROF_SM_ACTIVEGauge%在一个时间间隔内,至少一个线程束在一个 SM 上处于 Active 的时间占比(均值)
DCGM_FI_PROF_SM_OCCUPANCYGauge%在一个时间间隔内,驻留在 SM 上的线程束与该 SM 最大可驻留线程束的比例(均值)
DCGM_FI_PROF_PIPE_TENSOR_ACTIVEGauge%单位时间内 Tensor Pipes 平均处于 Active 状态的周期分数
DCGM_FI_PROF_DRAM_ACTIVEGauge%内存拷贝活跃周期分数(一个周期内有一次 DRAM 指令则该周期为 100%)
DCGM_FI_PROF_PIPE_FP64_ACTIVEGauge%单位时间内 F64 Pipes 平均处于 Active 状态的周期分数
DCGM_FI_PROF_PIPE_FP32_ACTIVEGauge%单位时间内 F32 Pipes 平均处于 Active 状态的周期分数
DCGM_FI_PROF_PIPE_FP16_ACTIVEGauge%单位时间内 F16 Pipes 平均处于 Active 状态的周期分数
DCGM_FI_PROF_NVLINK_RX_BYTESCounterB/s通过 NVLink 接收的数据流量
DCGM_FI_PROF_NVLINK_TX_BYTESCounterB/s通过 NVLink 传输的数据流量
DCGM_FI_PROF_PCIE_RX_BYTESCounterB/s通过 PCIe 总线接收字节数
DCGM_FI_PROF_PCIE_TX_BYTESCounterB/s通过 PCIe 总线传输字节数
DCGM_FI_DEV_PCIE_REPLAY_COUNTERCounterGPU PCIe 总线的重试次数
DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTALCounter-GPU 所有通道的 NVLink 带宽计数器总数
  • 温度和功率
指标名称指标类型单位描述
DCGM_FI_DEV_GPU_TEMPGaugeGPU 当前温度
DCGM_FI_DEV_MEMORY_TEMPGaugeGPU 显存当前温度
DCGM_FI_DEV_POWER_USAGEGaugeWGPU 当前使用功率
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTIONCountermJGPU 启动以来的总能耗
  • XID 错误&违规
指标名称指标类型单位描述
DCGM_FI_DEV_XID_ERRORSGauge-最近发生的错误代码
DCGM_CUSTOM_XID_ERRORS_TOTAL_COUNTERCounter-发生错误代码总数
DCGM_FI_DEV_POWER_VIOLATIONCounterμs因功率上限而导致违规的累积持续时间
DCGM_FI_DEV_THERMAL_VIOLATIONCounterμs因热限制导致违规的累积持续时间
DCGM_FI_DEV_SYNC_BOOST_VIOLATIONCounterμs因同步提升限制而导致违规的累积持续时间
DCGM_FI_DEV_BOARD_LIMIT_VIOLATIONCounterμs因电路板限制而导致违规的累积持续时间
DCGM_FI_DEV_LOW_UTIL_VIOLATIONCounterμs因低利用率限制导致违规的累积持续时间
DCGM_FI_DEV_RELIABILITY_VIOLATIONCounterμs因电路板可靠性限制导致违规的累积持续时间
  • 停用的内存页面
指标名称指标类型单位描述
DCGM_FI_DEV_RETIRED_SBECounter因单 bit 错误而停用的内存页面
DCGM_FI_DEV_RETIRED_DBECounter因双 bit 错误而停用的内存页面
  • 其他
指标名称指标类型单位描述
DCGM_FI_DEV_VGPU_LICENSE_STATUSGauge-vGPU 许可证状态
DCGM_FI_DEV_UNCORRECTABLE_REMAPPED_ROWSCounter-因无法纠正的错误而重新映射的行数
DCGM_FI_DEV_CORRECTABLE_REMAPPED_ROWSCounter-因可纠正的错误而重新映射的行数
DCGM_FI_DEV_ROW_REMAP_FAILUREGauge

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_rxMB/s昇腾 AI 处理器网口实时接收速率(仅支持 Atlas 训练系列产品)。标签包含以下字段:
npu_chip_info_bandwidth_txMB/s昇腾 AI 处理器网口实时发送速率(仅支持 Atlas 训练系列产品)。标签包含以下字段:
npu_chip_info_link_status1:UP, 0:DOWN昇腾 AI 处理器网口 Link 状态(仅支持 Atlas 训练系列产品)。标签包含以下字段:
npu_chip_info_network_status1:健康, 0:不健康昇腾 AI 处理器网络健康状态(仅支持 Atlas 训练系列产品)。标签包含以下字段:
  • 错误和健康信息
指标名称取值描述
npu_chip_info_error_code详见说明昇腾 AI 处理器错误码。标签包含以下字段: 最后一列显示的-1,表示 DCMI 接口调用报错,可能是因为驱动异常导致;若为 0 表示没有错误码。错误码的详细信息请参见《Atlas A2 中心推理和训练硬件 黑匣子错误码信息列表》
npu_chip_info_name-昇腾 AI 处理器名称和 ID。标签包含以下字段:
npu_chip_info_health_status1:健康, 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_freqMHz昇腾 AI 处理器的 AI Core 当前频率。标签包含以下字段:
  • 内存信息
指标名称单位描述
npu_chip_info_used_memoryMB昇腾 AI 处理器 DDR 内存已使用量。标签包含以下字段:
npu_chip_info_total_memoryMB昇腾 AI 处理器 DDR 内存总量。标签包含以下字段:
npu_chip_info_hbm_used_memoryMB昇腾 AI 处理器 HBM 内存已使用量(Atlas 训练系列产品专属)。标签包含以下字段:
npu_chip_info_hbm_total_memoryMB昇腾 AI 处理器 HBM 总内存(Atlas 训练系列产品专属)。标签包含以下字段:
container_npu_total_memoryMB带有容器信息的 NPU 内存总大小,只支持整卡。容器信息包含以下字段:
container_npu_used_memoryMB带有容器信息的 NPU 已使用内存,只支持整卡。容器信息包含以下字段:
vnpu_pod_total_memoryKBvNPU 拥有的总内存:(仅 Atlas 推理系列产品支持)
vnpu_pod_used_memoryKBvNPU 使用中的内存:(仅 Atlas 推理系列产品支持)
  • 容器和虚拟 NPU 信息
指标名称单位描述
npu_exporter_version_info-NPU-Exporter 版本信息。
npu_container_info-NPU 容器信息,输出包含以下字段:
container_npu_total_memoryMB带有容器信息的 NPU 内存总大小,只支持整卡。容器信息包含以下字段:
container_npu_used_memoryMB带有容器信息的 NPU 已使用内存,只支持整卡。容器信息包含以下字段:
container_npu_utilization%带有容器信息的 NPU 利用率,只支持整卡。容器信息包含以下字段:
vnpu_pod_aicore_utilization%vNPU 的 AI Core 利用率:(仅 Atlas 推理系列产品支持)
vnpu_pod_total_memoryKBvNPU 拥有的总内存:(仅 Atlas 推理系列产品支持)
vnpu_pod_used_memoryKBvNPU 使用中的内存:(仅 Atlas 推理系列产品支持)

3. node-exporter

node-exporter 是 Prometheus 开源的一个用于采集主机各项指标的工具。

项目地址 https://github.com/prometheus/node_exporter

3.1 安装方式

一般安装 Prometheus Server 时,默认已经安装 node-exporter,无需再次安装。

  • 添加 Helm 镜像仓库
1
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
1
helm repo update
  • 安装
1
helm install prometheus-node-exporter prometheus-community/prometheus-node-exporter --namespace monitor --create-namespace

3.2 指标

以下是去掉分类列后的 Markdown 表格:

  • CPU
指标名称类型描述
node_cpu_seconds_totalCounter节点 CPU 的使用时间 (单位:秒)
  • 内存
指标名称类型描述
node_memory_MemTotal_bytesGauge节点总内存大小(单位:字节)
node_memory_MemFree_bytesGauge节点空闲内存大小(单位:字节)
node_memory_Buffers_bytesGauge节点缓存大小(单位:字节)
node_memory_Cached_bytesGauge节点页面缓存大小(单位:字节)
  • 磁盘
指标名称类型描述
node_filesystem_avail_bytesGauge分区用户剩余空间(单位:字节)
node_filesystem_size_bytesGauge分区空间总容量(单位:字节)
node_filesystem_free_bytesGauge分区物理剩余空间(单位:字节)
node_disk_read_bytes_totalCounter分区读总字节数(单位:字节)
node_disk_written_bytes_totalCounter分区写总字节数(单位:字节)
node_disk_reads_completed_totalCounter分区读总次数
node_disk_writes_completed_totalCounter分区写总次数
  • 网络
指标名称类型描述
node_network_receive_bytes_totalCounter接收流量总字节数(单位:字节)
node_network_transmit_bytes_totalCounter发送流量总字节数(单位:字节)
node_network_receive_packets_totalCounter接收流量总包数(单位:包)
node_network_transmit_packets_totalCounter发送流量总包数(单位:包)
node_network_receive_drop_totalCounter接收流量总丢包数(单位:包)
node_network_transmit_drop_totalCounter发送流量总丢包数(单位:包)

4 node-problem-detector

Node Problem Detector 简称 NPD,是 Kubernetes 开源的集群节点监控插件,用于节点故障检查。

项目地址 https://github.com/kubernetes/node-problem-detector

4.1 安装方式

  • 添加 Helm 镜像仓库
1
helm repo add deliveryhero https://charts.deliveryhero.io/
1
helm repo update
  • 安装
1
helm install node-problem-detector deliveryhero/node-problem-detector --namespace monitor --create-namespace

4.2 指标

  • 磁盘
指标名称类型描述
node_filesystem_avail_bytesGauge分区用户剩余空间(单位:字节)
node_filesystem_size_bytesGauge分区空间总容量(单位:字节)
node_filesystem_free_bytesGauge分区物理剩余空间(单位:字节)
node_disk_read_bytes_totalCounter分区读总字节数(单位:字节)
node_disk_written_bytes_totalCounter分区写总字节数(单位:字节)
node_disk_reads_completed_totalCounter分区读总次数
node_disk_writes_completed_totalCounter分区写总次数
  • 网络
指标名称类型描述
node_network_receive_bytes_totalCounter接收流量总字节数(单位:字节)
node_network_transmit_bytes_totalCounter发送流量总字节数(单位:字节)
node_network_receive_packets_totalCounter接收流量总包数(单位:包)
node_network_transmit_packets_totalCounter发送流量总包数(单位:包)
node_network_receive_drop_totalCounter接收流量总丢包数(单位:包)
node_network_transmit_drop_totalCounter发送流量总丢包数(单位:包)
  • CPU
指标名称类型描述
cpu_load_1mGaugeCPU 平均负载(1 分钟)
cpu_load_5mGaugeCPU 平均负载(5 分钟)
cpu_load_15mGaugeCPU 平均负载(15 分钟)
cpu_runnable_task_countGauge平均运行任务数(过去一分钟)
cpu_usage_timeCounterCPU 使用时间(按状态分)
  • 内存
指标名称类型描述
memory_bytes_usedGauge内存使用量(按状态分)
memory_anonymous_usedGauge匿名内存使用量(按状态分)
memory_dirty_usedGauge脏页面内存使用量
memory_page_cache_usedGauge页面缓存内存使用量(按状态分)
memory_unevictable_usedGauge不可清除内存使用量
  • 系统
指标名称类型描述
host_uptimeGauge操作系统运行时间
system_cpu_statCounterCPU 不同状态的运行时间
system_interrupts_totalCounter总中断服务次数(累计)
system_os_featureGauge操作系统特性开启状态
system_processes_totalCounter启动以来的进程总数(累计)
system_procs_blockedGauge当前阻塞的进程数
system_procs_runningGauge当前运行的进程数
  • 问题计数
指标名称类型描述
problem_counterCounter特定类型问题发生次数
  • 问题状态
指标名称类型描述
problem_gaugeGauge特定类型问题状态

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_statesRunning/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 安装方式

  • 添加 Helm 镜像仓库
1
helm repo add utkuozdemir https://utkuozdemir.org/helm-charts
1
helm repo update
  • 安装
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_sizegauge计费缓冲区大小
nvidia_smi_accounting_modegauge计费模式
nvidia_smi_clocks_applications_graphics_clock_hzgaugeMHz应用程序显卡时钟频率
nvidia_smi_clocks_applications_memory_clock_hzgaugeMHz应用程序内存时钟频率
nvidia_smi_clocks_current_graphics_clock_hzgaugeMHz当前显卡时钟频率
nvidia_smi_clocks_current_memory_clock_hzgaugeMHz当前内存时钟频率
nvidia_smi_clocks_current_sm_clock_hzgaugeMHz当前流处理器时钟频率
nvidia_smi_clocks_current_video_clock_hzgaugeMHz当前视频时钟频率
nvidia_smi_clocks_default_applications_graphics_clock_hzgaugeMHz默认应用程序显卡时钟频率
nvidia_smi_clocks_default_applications_memory_clock_hzgaugeMHz默认应用程序内存时钟频率
nvidia_smi_clocks_max_graphics_clock_hzgaugeMHz最大显卡时钟频率
nvidia_smi_clocks_max_memory_clock_hzgaugeMHz最大内存时钟频率
nvidia_smi_clocks_max_sm_clock_hzgaugeMHz最大流处理器时钟频率
nvidia_smi_clocks_throttle_reasons_activegauge主动限制原因
nvidia_smi_clocks_throttle_reasons_applications_clocks_settinggauge应用程序时钟设置限制原因
nvidia_smi_clocks_throttle_reasons_gpu_idlegaugeGPU 空闲限制原因
nvidia_smi_clocks_throttle_reasons_hw_power_brake_slowdowngauge硬件动力制动减速限制原因
nvidia_smi_clocks_throttle_reasons_hw_slowdowngauge硬件减速限制原因
nvidia_smi_clocks_throttle_reasons_hw_thermal_slowdowngauge硬件温控减速限制原因
nvidia_smi_clocks_throttle_reasons_supportedgauge支持的限制原因
nvidia_smi_clocks_throttle_reasons_sw_power_capgauge软件功率上限限制原因
nvidia_smi_clocks_throttle_reasons_sw_thermal_slowdowngauge软件温控减速限制原因
nvidia_smi_clocks_throttle_reasons_sync_boostgauge同步增强限制原因
nvidia_smi_command_exit_codegauge最后一次抓取命令的退出码
nvidia_smi_compute_capgauge计算能力
nvidia_smi_compute_modegauge计算模式
nvidia_smi_countgauge数量
nvidia_smi_display_activegauge显示器激活状态
nvidia_smi_display_modegauge显示器模式
nvidia_smi_ecc_errors_corrected_aggregate_device_memorygauge修正的设备内存 ECC 错误总数
nvidia_smi_ecc_errors_corrected_aggregate_dramgauge修正的 DRAM ECC 错误总数
nvidia_smi_ecc_errors_corrected_aggregate_totalgauge修正的 ECC 错误总数
nvidia_smi_ecc_errors_corrected_volatile_device_memorygauge修正的易失性设备内存 ECC 错误数
nvidia_smi_ecc_errors_corrected_volatile_dramgauge修正的易失性 DRAM ECC 错误数
nvidia_smi_ecc_errors_corrected_volatile_totalgauge修正的易失性 ECC 错误总数
nvidia_smi_ecc_errors_uncorrected_aggregate_device_memorygauge未修正的设备内存 ECC 错误总数
nvidia_smi_ecc_errors_uncorrected_aggregate_dramgauge未修正的 DRAM ECC 错误总数
nvidia_smi_ecc_errors_uncorrected_aggregate_totalgauge未修正的 ECC 错误总数
nvidia_smi_ecc_errors_uncorrected_volatile_device_memorygauge未修正的易失性设备内存 ECC 错误数
nvidia_smi_ecc_errors_uncorrected_volatile_dramgauge未修正的易失性 DRAM ECC 错误数
nvidia_smi_ecc_errors_uncorrected_volatile_totalgauge未修正的易失性 ECC 错误总数
nvidia_smi_ecc_mode_currentgauge当前 ECC 模式
nvidia_smi_ecc_mode_pendinggauge等待生效的 ECC 模式
nvidia_smi_encoder_stats_average_fpsgauge编码器平均 FPS
nvidia_smi_encoder_stats_average_latencygauge编码器平均延迟
nvidia_smi_encoder_stats_session_countgauge编码会话数
nvidia_smi_enforced_power_limit_wattsgaugeW执行的功率限制
nvidia_smi_gpu_infogaugeGPU 信息
nvidia_smi_indexgauge索引
nvidia_smi_inforom_eccgaugeECC 信息 ROM
nvidia_smi_inforom_oemgaugeOEM 信息 ROM
nvidia_smi_memory_free_bytesgaugeMiB空闲内存
nvidia_smi_memory_reserved_bytesgaugeMiB保留内存
nvidia_smi_memory_total_bytesgaugeMiB总内存
nvidia_smi_memory_used_bytesgaugeMiB已用内存
nvidia_smi_namegauge名称
nvidia_smi_pci_busgaugePCI 总线号
nvidia_smi_pci_devicegaugePCI 设备号
nvidia_smi_pci_device_idgaugePCI 设备 ID
nvidia_smi_pci_domaingaugePCI 域
nvidia_smi_pci_sub_device_idgaugePCI 子设备 ID
nvidia_smi_pcie_link_gen_currentgauge当前 PCIe 链路生成
nvidia_smi_pcie_link_gen_gpucurrentgaugeGPU 当前 PCIe 链路生成
nvidia_smi_pcie_link_gen_gpumaxgaugeGPU 最大 PCIe 链路生成
nvidia_smi_pcie_link_gen_hostmaxgauge主机最大 PCIe 链路生成
nvidia_smi_pcie_link_gen_maxgauge最大 PCIe 链路生成
nvidia_smi_pcie_link_width_currentgauge当前 PCIe 链路带宽
nvidia_smi_pcie_link_width_maxgauge

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_usageCPU 使用量
juicefs_memory内存使用量字节
  • 元数据引擎
指标名称描述单位
juicefs_transaction_durations_histogram_seconds事务的延时分布
juicefs_transaction_restart事务重启的次数
  • FUSE
指标名称描述单位
juicefs_fuse_read_size_bytes读请求的大小分布字节
juicefs_fuse_written_size_bytes写请求的大小分布字节
juicefs_fuse_ops_durations_histogram_seconds所有请求的延时分布
juicefs_fuse_open_handlers打开的文件和目录数量
  • SDK
指标名称描述单位
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 指标

  • Node
指标名称类型描述
kube_node_infoGauge查询集群内所有的节点信息,可以通过 sum() 函数获得集群中的所有节点数目。
kube_node_spec_unschedulableGauge查询节点是否可以被调度新的 Pod。可以通过 sum() 函数获得集群中可以调度的 Pod 总数。
kube_node_status_allocatableGauge查询节点可用于调度的资源总数。包括:CPU、内存、Pods 等。允许通过标签筛选,查看节点具体的资源容量。
kube_node_status_capacityGauge查询节点的全部资源总数,包括:CPU、内存、Pods 等。允许通过标签筛选,查看节点具体的资源容量。
kube_node_status_conditionGauge查询节点的状态,可以基于 OutOfDisk、MemoryPressure、DiskPressure 等状态找到状态不正常的节点。
  • Pod
指标名称类型描述
kube_pod_infoGauge查询所有的 Pod 信息,可以通过 sum() 函数获得集群中的所有 Pod 数目。
kube_pod_status_phaseGauge查询所有的 Pod 启动状态。状态包括:
_ True:启动成功。
_ Failed:启动失败。
* Unknown:状态未知。
kube_pod_status_readyGauge查询所有处于 Ready 状态的 Pod。可以通过 sum() 函数获得集群中的所有 Pod 数目。
kube_pod_status_scheduledGauge查询所有处于 scheduled 状态的 Pod。可以通过 sum() 函数获得集群中的所有 Pod 数目。
  • Container
指标名称类型描述
kube_pod_container_infoGauge查询所有 Container 的信息。可以通过 sum() 函数获得集群中的所有 Container 数目。
kube_pod_container_status_readyGauge查询所有状态为 Ready 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。
kube_pod_container_status_restarts_totalCount查询集群中所有 Container 的重启累计次数。可以通过 irate() 函数获得集群中 Container 的重启率。
kube_pod_container_status_runningGauge查询所有状态为 Running 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。
kube_pod_container_status_terminatedGauge查询所有状态为 Terminated 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。
kube_pod_container_status_waitingGauge查询所有状态为 Waiting 的 Container 信息。可以通过 sum() 函数获得集群中的所有 Container 数目。
kube_pod_container_resource_requestsGauge查询容器的资源需求量。允许通过标签筛选,查看容器具体的资源需求量。
kube_pod_container_resource_limitsGauge查询容器的资源限制量。允许通过标签筛选,查看容器具体的资源限制量。

微信公众号
作者
微信公众号