惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
K
Kaspersky official blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Recorded Future
Recorded Future
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
S
Schneier on Security
P
Palo Alto Networks Blog
H
Hacker News: Front Page
N
News and Events Feed by Topic
N
Netflix TechBlog - Medium
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
SecWiki News
SecWiki News
Cloudbric
Cloudbric
TaoSecurity Blog
TaoSecurity Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Hacker News
The Hacker News
C
Check Point Blog
L
LangChain Blog
腾讯CDC
小众软件
小众软件
T
Tenable Blog
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
L
LINUX DO - 最新话题
A
About on SuperTechFans
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
雷峰网
雷峰网
美团技术团队
D
DataBreaches.Net
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
博客园_首页

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19) 使用 Velero 备份 Kubernetes 集群 Kubernetes Cheat Sheet 开发 Tips(18) 如何构建一个 Java 工程 开发 Tips(17) KubeSpray 安装 Kubernetes 报错 ip in ansible_all_ipv4_addresses 基于 Kubernetes 和 Jenkins 搭建自动化测试系统 在 Kubernetes 上动态创建 Jenkins Slave 使用 Jenkins 进行服务拨测 开发 Tips(16) Kubernetes 签发 Ingress 证书及日常故障运维 Kubernetes 中 Deployment 的基本操作 Kubernetes 中的证书 如何使用 KubeBuilder 开发一个 Operator Kubernetes 1.6.0 安装问题汇总 镜像管理工具 -- Harbor 开发 Tips(15) Docker 如何拉取镜像 开发 Tips(14) 使用 Helm 安装 harbor 开发 Tips(13) 使用 S2I 构建云原生应用 在 Kubernetes 中使用 emptyDir、hostPath、localVolume 开发 Tips(12) 开发 Tips(11) 代码质量分析工具 SonarQube 使用 Kubeadm 安装 Kubernetes 集群 一起来学 Go --(4)常用函数 Kubernetes 中的 Ceph Kubernetes 之 Volumes Kubernetes 之 Labels、Selectors 开发 Tips(10) 开源正在重构商业模式 Kubernetes 之网络 Kubernetes 之 API 使用 Helm 和 Operator 快速部署 Prometheus Kubernetes 复杂有状态应用管理框架 -- Operator Kubernetes 的包管理器 -- Helm 一起来学 Go --(3)Go Modules 如何一步一步地优化博客方案 kubectl 实用指南 Kubernetes 中的基本概念 搭建远程 Kubernetes 开发环境 大公司和小公司的 ToB 思路 开发 Tips(9) Go 入门指南 一起来学 Go --(2)数据与逻辑结构 如何预防 Web 富文本中的 XSS 攻击 django-xss-cleaner 云工作时代 一起来学 Go --(1)背景与特点 SaaS 开发团队的不同阶段 你不知道的 Git 使用技巧 输出既服务 微服务设计 继续奔跑 开发 Tips(8) 从账户安全到二次验证 Django 性能之数据库查询优化 Django 性能之分库分表 敏捷开发之研发流程 打造一致性的团队 开发 Tips(7) Pytest 进阶学习之 Mock PaaS 部署之 buildpack Go 开发配置 领域输出才是 PaaS 的核心竞争力 Pytest 入门学习 开发 Tips(6) 如何使用 Jenkins、Docker、GitLab 搭建 Django 自动化部署流程
Kubernetes 集群中 AI 相关的采集器
微信公众号 · 2024-02-04 · via 陈少文的网站

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
2
3
4
5
helm install dcgm-exporter gpu-helm-charts/dcgm-exporter --namespace monitor --create-namespace \
      --set serviceMonitor.enabled=false \
      --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/ops-hub/master/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 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 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/ops-hub/master/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
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/ops-hub/master/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/ops-hub/master/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查询容器的资源限制量。允许通过标签筛选,查看容器具体的资源限制量。