mcpField
H
huawei-cloud-cce-metric-analyzer

huawei-cloud-cce-metric-analyzer

github.com/huaweicloud云与 DevOps59165 次安装2 天前更新
代码仓库

关于 huawei-cloud-cce-metric-analyzer

面向 Huawei Cloud CCE 运维人员的只读指标分析技能,可查询集群工作负载、节点及相关云资源指标。它提供 TopN、阈值状态分类和集群级异常检测汇总。

主要功能

  1. 01分析 Pod 和 Node CPU、内存及磁盘
  2. 02查询 GPU、CoreDNS 与 ingress 指标
  3. 03查看自动扩缩容及控制平面指标
  4. 04查询 ECS、ELB、EIP 和 NAT 指标
  5. 05汇总集群监控并检测异常
  6. 06按阈值分类指标状态

适用场景

  1. 01定位资源使用率较高的 Pod 或节点
  2. 02检查 GPU、DNS 或 ingress 运行状况
  3. 03排查自动扩缩容及控制平面指标
  4. 04汇总集群和关联云资源的监控数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-cce-metric-analyzer

安装后在 Claude Code 中输入/huawei-cloud-cce-metric-analyzer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill-profile.yaml
references/
acceptance-criteria.md
cli-installation-guide.md
iam-policies.md
kubectl-cce.md
output-schema.md
risk-rules.md
verification-method.md
workflow.md
scripts/
huawei-cloud.py
scripts/huawei_cloud/
__init__.py
aom.py
cce_cluster_monitoring.py
cce_metrics.py
cce.py
common.py
dispatcher.py
ecs.py
elb.py
kubectl_client.py
network.py

详细介绍

Huawei Cloud CCE 指标分析器

概览

查询和分析 CCE 集群(Pod/Node CPU/内存/磁盘)及云资源(ECS、ELB、EIP、NAT)的指标。支持基于阈值的异常检测、状态分类(严重/警告/正常)和全集群监控汇总。

架构:python3 scripts/huawei-cloud.py 分发器 → hcloud(KooCLI)云服务查询 + 已签名的 AOM Prometheus HTTP 查询 + 仅在需要 Kubernetes 资源关系时进行有限的 kubectl 读取 → Pod/Node 指标、ECS/ELB/EIP/NAT 指标 → 阈值分类 → 异常检测

执行方式:云服务查询通过本地 hcloud CLI 执行。AOM Prometheus query_range 调用是唯一例外,因所需的 Prometheus 范围查询路径与 hcloud 不兼容,所以使用已签名的 HTTPS 请求。除随附的分发器外,不要调用 Huawei Cloud SDK、curl IAM 流程、openstack 或手写云 API。

相关技能:使用 Pod/Node 诊断器、Kubernetes 事件分析器、容量/成本技能或自动修复运行器进行后续诊断,或执行明确要求的修复。

功能:

  • Pod CPU/内存 TopN 排名及单个 Pod 的时间序列指标
  • Node CPU/内存/磁盘 TopN 排名及单个 Node 的时间序列指标
  • Node GPU 和 xGPU 指标,包括 GPU 利用率、内存、温度、功耗、调度策略、xGPU 分配、使用情况和健康状况
  • CoreDNS QPS、排除 NXDOMAIN 的错误率、NXDOMAIN 率、P95 延迟、副本数以及每个 Pod 的 CPU/内存指标
  • nginx-ingress QPS、4xx/5xx 率、成功率、P95 延迟、活动连接数、每个 Pod 的 CPU/内存,以及 Ingress TLS 证书过期状态
  • Autoscaler 无法调度的 Pod、节点状态计数、扩缩容事件、错误、节点组、HPA 当前/目标副本数以及每个 Pod 的 CPU/内存指标
  • Kubernetes 控制平面指标,包括 apiserver、etcd、controller-manager 和 scheduler
  • ECS 实例 CPU/内存/磁盘/网络指标
  • ELB 连接数、带宽、QPS 指标
  • EIP 带宽、流量、丢包指标
  • NAT Gateway SNAT 连接指标
  • 带异常检测的全集群监控汇总(80% 阈值)
  • 基于阈值的状态分类(严重/警告/正常/未知)

典型用例:查询 Pod/Node TopN、GPU/xGPU、CoreDNS、nginx-ingress、autoscaler、控制平面、ECS/ELB/EIP/NAT 指标、全集群汇总以及基于阈值的异常检测。

前置条件

1. 运行时依赖
  • Python 3.8+,用于分发器和结果处理
  • hcloud(KooCLI)7.2.2+,用于 CCE/ECS/ELB/VPC/EIP/NAT/CES/IAM 云服务查询
  • kubectl 仅用于读取无法从 AOM/hcloud 推导出的 Kubernetes 资源,例如按 Pod label_selector 筛选、Ingress TLS 证书检查,以及发现用于 ELB/EIP 关联的 LoadBalancer Service;没有外部 EIP 的集群需要使用 kubectl-cce-plugin/README.md 中的 kubectl cce 插件
  • Prometheus 相关监控数据通过已签名的 HTTPS 请求从 AOM Prometheus 查询;集群必须已将 Prometheus 插件接入 AOM,否则这些工具可能返回空指标序列
  • controller-manager、scheduler 和 etcd 指标需要在 AOM 中分别启用 kube-controller-manager、kube-scheduler 和 etcd-server ServiceMonitor;否则这些工具可能返回空指标序列
  • Autoscaler、ingress-controller 和 NVIDIA GPU 指标需要在 AOM 中分别启用对应的 autoscaler、ingress-controller 和 nvidia-gpu-device-plugin PodMonitor;Ingress 请求指标还要求在 ingress-controller PodMonitor 中明确允许 nginx_ingress_controller_requests
  • 首次使用前运行环境检查(参见验证部分)
  • 按照 references/kubectl-cce.md 安装并使用 kubectl-cce
2. 凭证配置
  • 通过 hcloud profile 或 AK/SK 模式使用有效的 Huawei Cloud 凭证
  • 安全规则:
    • 🚫 切勿在代码、对话或命令中暴露 AK/SK 值
    • 🚫 切勿使用 echo $HUAWEI_AK 或 echo $HUAWEI_SK 检查凭证
    • ✅ hcloud 调用的凭证优先级为:显式工具参数 > 本地 hcloud profile > 环境变量
    • ✅ AOM Prometheus 签名 HTTP 和 Kubernetes 证书配置无法使用加密的 hcloud profile 材料,因此优先使用显式工具参数,并将环境变量用作签名回退方案
    • ✅ 云操作优先使用 IAM 用户,而非根账户
    • ✅ 为敏感操作启用 MFA

配置方法:

hcloud configure list

export HUAWEI_AK=<your-ak>
export HUAWEI_SK=<your-sk>
export HUAWEI_REGION=cn-north-4
3. IAM 权限要求
API 操作权限用途
cce:cluster:get获取集群查看 CCE 集群详情
aom:instance:list列出 AOM 实例查找用于指标的 AOM Prometheus 实例
aom:metricsData:get获取指标数据查询 Pod/Node CPU/内存/磁盘指标
ces:metricsData:get获取 CES 指标查询 ECS/ELB/EIP/NAT 云资源指标
ecs:cloudServers:list列出 ECS 服务器关联 ECS 实例 ID
elb:loadbalancers:list列出 ELB 实例关联 ELB ID
vpc:eips:list列出 EIP关联 EIP ID
nat:natGateways:list列出 NAT 网关关联 NAT 网关 ID

权限失败处理:

  1. 当任何命令因 IAM 权限错误而失败时,显示所需的权限列表
  2. 指引用户在 IAM 控制台中创建自定义策略并授予授权
  3. 暂停执行,等待用户确认已授予权限

核心命令

所有命令均使用 Python 分发脚本:python3 scripts/huawei-cloud.py <action> <key=value>...

KooCLI 命令格式标准

不要要求用户直接运行原始 hcloud 命令。请使用分发器格式:

python3 scripts/huawei-cloud.py <tool-name> key=value key=value

分发器会将云服务查询转换为 KooCLI 调用。AOM Prometheus 范围查询使用签名 HTTPS 请求,因为该路径与 hcloud 不兼容。除非工具明确需要 Pod 标签、Ingress TLS Secrets 或 LoadBalancer Services,否则避免读取 Kubernetes 资源。对包含空格、>、<、|、JSON 或 PromQL 的值加引号;切勿打印或持久化 AK/SK、安全令牌、kubeconfig 文件或临时载荷;将 Kubernetes/AOM PromQL 限定在 cluster="<cluster_id>" 范围内。

1. CCE Pod 指标
# Pod TopN — cluster-wide CPU/memory ranking
python3 scripts/huawei-cloud.py huawei_get_cce_pod_metrics_topN \
  region=cn-north-4 cluster_id=<cluster-id> \
  namespace=default top_n=10 hours=1

# Pod TopN with label selector
python3 scripts/huawei-cloud.py huawei_get_cce_pod_metrics_topN \
  region=cn-north-4 cluster_id=<cluster-id> \
  namespace=default label_selector="app=nginx,version=v1" top_n=10 hours=1

# Single Pod time-series
python3 scripts/huawei-cloud.py huawei_get_cce_pod_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  pod_name=my-app-xxx namespace=default hours=1

# Single Pod GPU and xGPU metrics
python3 scripts/huawei-cloud.py huawei_get_cce_pod_gpu_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  pod_name=my-gpu-app-xxx namespace=default hours=1
2. CCE Node 指标
# Node TopN — cluster-wide CPU/memory/disk ranking
python3 scripts/huawei-cloud.py huawei_get_cce_node_metrics_topN \
  region=cn-north-4 cluster_id=<cluster-id> \
  top_n=10 hours=1

# Single Node time-series
python3 scripts/huawei-cloud.py huawei_get_cce_node_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  node_ip=10.0.0.1 hours=1

# Node GPU and xGPU metrics
python3 scripts/huawei-cloud.py huawei_get_cce_node_gpu_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  node_ip=10.0.0.1 hours=1
3. CCE CoreDNS 指标
# CoreDNS key metrics: QPS, error rate excluding NXDOMAIN, NXDOMAIN rate, P95 latency, replicas, CPU, and memory
python3 scripts/huawei-cloud.py huawei_get_cce_coredns_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  namespace=kube-system pod_regex=".*coredns.*" hours=1
4. CCE nginx-ingress 指标
# nginx-ingress request processing and Ingress TLS certificate expiration
python3 scripts/huawei-cloud.py huawei_get_cce_nginx_ingress_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  namespace=kube-system pod_regex=".*nginx.*ingress.*|.*ingress.*nginx.*" \
  ingress_namespace=default cert_expire_warning_days=30 hours=1
5. CCE Autoscaler 指标
# Cluster Autoscaler and HPA metrics
python3 scripts/huawei-cloud.py huawei_get_cce_autoscaler_metrics \
  region=cn-north-4 cluster_id=<cluster-id> \
  namespace=kube-system pod_regex=".*cluster.*autoscaler.*|.*autoscaler.*" \
  include_hpa=true hours=1
6. Kubernetes 控制平面指标
python3 scripts/huawei-cloud.py huawei_get_cce_apiserver_metrics \
  region=cn-north-4 cluster_id=<cluster-id> hours=1

python3 scripts/huawei-cloud.py huawei_get_cce_etcd_metrics \
  region=cn-north-4 cluster_id=<cluster-id> hours=1

python3 scripts/huawei-cloud.py huawei_get_cce_controller_manager_metrics \
  region=cn-north-4 cluster_id=<cluster-id> namespace=kube-system hours=1

python3 scripts/huawei-cloud.py huawei_get_cce_scheduler_metrics \
  region=cn-north-4 cluster_id=<cluster-id> namespace=kube-system hours=1
7. 云资源指标
# ECS instance metrics
python3 scripts/huawei-cloud.py huawei_get_ecs_metrics \
  region=cn-north-4 instance_id=<instance-id>

# ELB metrics
python3 scripts/huawei-cloud.py huawei_get_elb_metrics \
  region=cn-north-4 elb_id=<loadbalancer-id> hours=1

# EIP metrics
python3 scripts/huawei-cloud.py huawei_get_eip_metrics \
  region=cn-north-4 eip_id=<eip-id> hours=1

# NAT Gateway metrics
python3 scripts/huawei-cloud.py huawei_get_nat_gateway_metrics \
  region=cn-north-4 nat_gateway_id=<nat-gateway-id> hours=1
8. 集群监控汇总
# Aggregate all monitoring data with anomaly detection
python3 scripts/huawei-cloud.py huawei_cce_cluster_monitoring_aggregation \
  region=cn-north-4 cluster_id=<cluster-id> \
  start_time="2026-05-30 00:00:00" end_time="2026-05-30 23:59:59" \
  namespace=default top_n=10

此工具汇总:Pod CPU/内存 TopN、Node CPU/内存/磁盘 TopN、ELB 指标(通过 kubectl 获取的 LoadBalancer Services 进行匹配)、NAT 网关指标、EIP 指标(带宽、丢包率),以及使用 80% 阈值进行的异常检测。

其中还包含 CoreDNS、nginx-ingress 和 autoscaler 汇总。当可以确认关联关系时,云资源会限定在当前集群范围内:ELB 通过 LoadBalancer Service IP/EIP 匹配,NAT 网关按集群 VPC 过滤,EIP 则限定为关联的 ELB/NAT/Service IP。

LoadBalancer Service 发现通过 kubectl 使用生成的 kubeconfig,并在外部访问可用时经由集群 EIP 进行。如果集群没有 EIP,则使用 kubectl cce 插件。如果这两种方式都不可用,则汇总会失败。

风险级别

此技能为只读技能,不会创建、更新、删除、重启、扩缩容或修改华为云或 Kubernetes 资源。

级别含义执行指南
R3无风险的只读查询或本地分析可自动运行
R2低风险变更,例如创建监控配置,但不删除资源或增加服务容量/成本当前工具未使用
R1有风险的操作,例如产生类似重启的影响、停用防护,或可能增加成本或降低可观测性的变更当前工具未使用
R0关键操作,例如删除集群、应用或影响范围广的监控防护当前工具未使用
工具操作类型风险级别描述
huawei_get_cce_pod_metrics_topN查询R3从 AOM Prometheus 读取 Pod CPU/内存/磁盘指标 TopN
huawei_get_cce_pod_metrics查询R3读取单个 Pod 的 CPU/内存/磁盘时间序列指标
huawei_get_cce_node_metrics_topN查询R3从 AOM Prometheus 读取 Node CPU/内存/磁盘指标 TopN
huawei_get_cce_node_metrics查询R3读取单个 Node 的 CPU/内存/磁盘时间序列指标
huawei_get_cce_node_gpu_metrics查询R3从 AOM Prometheus 读取单个 Node 的 GPU 和 xGPU 指标
huawei_get_cce_pod_gpu_metrics查询R3从 AOM Prometheus 读取单个 Pod 的 GPU 和 xGPU 指标
huawei_get_cce_coredns_metrics查询R3读取 CoreDNS QPS、不含 NXDOMAIN 的错误率、NXDOMAIN 速率、P95 延迟、副本数以及各 Pod 的 CPU/内存指标
huawei_get_cce_nginx_ingress_metrics查询R3读取 nginx-ingress 请求处理指标和 Ingress TLS 证书到期状态;缺少请求维度指标时,QPS 会回退到 nginx 进程请求计数器
huawei_get_cce_autoscaler_metrics查询R3读取 Cluster Autoscaler 扩缩容指标、HPA 副本状态以及 autoscaler Pod 的 CPU/内存指标
huawei_get_cce_apiserver_metrics查询R3读取 kube-apiserver 的 QPS、错误率、延迟和进行中请求指标
huawei_get_cce_etcd_metrics查询R3读取 etcd 的领导者、提案、数据库大小、磁盘延迟、CPU 和内存指标
huawei_get_cce_controller_manager_metrics查询R3读取控制平面工作队列深度、添加次数、重试次数、队列延迟和工作持续时间指标
huawei_get_cce_scheduler_metrics查询R3读取调度器尝试次数、待调度 Pod、调度延迟和队列指标
huawei_get_ecs_metrics查询R3通过 hcloud/CES 读取 ECS 监控数据
huawei_get_elb_metrics查询R3通过 hcloud/CES 读取 ELB 监控数据
huawei_get_eip_metrics查询R3通过 hcloud/CES 读取 EIP 监控数据
huawei_get_nat_gateway_metrics查询R3通过 hcloud/CES 读取 NAT Gateway 监控数据
huawei_cce_cluster_monitoring_aggregation查询 + 本地分析R3汇总 Pod/Node/云资源指标并在本地分类异常

参数参考

通用参数
参数必填/可选描述默认值
region必填华为云区域HUAWEI_REGION
cluster_id必填CCE 集群 IDN/A
namespace建议填写Kubernetes 命名空间default
ak可选显式指定 AK;对所有调用具有最高优先级回退到 profile/env
sk可选显式指定 SK;对所有调用具有最高优先级回退到 profile/env
project_id可选显式指定 Project ID;hcloud 优先使用 profile,其次回退到 env从 IAM/profile 自动获取
huawei_get_cce_pod_metrics_topN 参数
ParameterRequiredDescriptionDefault
namespaceNo命名空间筛选器all
label_selectorNo标签选择器(例如 app=web)N/A
top_nNo排名前列的项目数量10
hoursNo指标回溯时长(小时)1
node_ipNo筛选特定节点上的 PodN/A
cpu_queryNo自定义 CPU PromQLAuto
memory_queryNo自定义内存 PromQLAuto
disk_queryNo自定义磁盘 PromQLAuto
huawei_get_cce_pod_metrics 参数
ParameterRequiredDescriptionDefault
pod_nameYes目标 Pod 名称N/A
namespaceNo命名空间default
hoursNo指标回溯时长(小时)1
cpu_queryNo自定义 CPU PromQLAuto
memory_queryNo自定义内存 PromQLAuto
disk_queryNo自定义磁盘 PromQLAuto
huawei_get_cce_pod_gpu_metrics 参数
ParameterRequiredDescriptionDefault
pod_nameYes目标 Pod 名称N/A
namespaceNo目标 Pod 命名空间all
hoursNo指标回溯时长(小时)1
gpu_selectorNo自定义 GPU 指标标签选择器。如果 GPU 指标未使用 pod 或 namespace 标签,请使用此参数pod="<pod_name>",namespace="<namespace>"

支持通过可选的自定义 PromQL 覆盖 GPU 利用率、内存、调度策略、xGPU 分配/使用情况以及 xGPU 健康指标。

huawei_get_cce_node_metrics_topN 参数
ParameterRequiredDescriptionDefault
top_nNo排名前列的项目数量10
hoursNo指标回溯时长(小时)1
huawei_get_cce_node_metrics 参数
ParameterRequiredDescriptionDefault
node_ipYes目标节点 IPN/A
hoursNo指标回溯时长(小时)1
huawei_get_cce_node_gpu_metrics 参数
ParameterRequiredDescriptionDefault
node_ipYes目标节点 IP 或节点名称N/A
hoursNo指标回溯时长(小时)1
gpu_selectorNo自定义 GPU 指标标签选择器。如果 GPU 指标未使用 node 标签,请使用此参数`node=~"<node_ip>

支持通过可选的自定义 PromQL 覆盖 GPU 利用率、内存、温度、功耗、调度策略、xGPU 分配/使用情况以及 xGPU 健康指标。

huawei_get_cce_coredns_metrics 参数
ParameterRequiredDescriptionDefault
namespaceNoCoreDNS 命名空间kube-system
pod_regexNo用于匹配 CoreDNS Pod 的正则表达式.*coredns.*
hoursNo指标回溯时长(小时)1

支持通过可选的自定义 PromQL 覆盖 QPS、错误率、NXDOMAIN 速率、P95 延迟、CPU、内存和副本数。

huawei_get_cce_nginx_ingress_metrics 参数
参数必填描述默认值
namespace否nginx-ingress 控制器 Pod 的命名空间。使用空值可查询所有命名空间kube-system
pod_regex否用于匹配 nginx-ingress 控制器 Pod 的正则表达式`.*nginx.ingress.
ingress_namespace否用于 Ingress TLS 证书检查的命名空间筛选条件all
hours否指标回溯小时数1
cert_expire_warning_days否将证书标记为警告状态的到期前天数30
check_certificates否是否检查 Ingress TLS Secret 的到期状态true

Ingress 控制器指标依赖对应的 AOM PodMonitor。必须在 ingress 控制器 PodMonitor 中显式允许 nginx_ingress_controller_requests 指标;否则,4xx/5xx QPS、成功率和延迟等请求维度指标可能为空,并且只有在可用时,QPS 才会使用 nginx_ingress_controller_nginx_process_requests_total 作为回退指标。

支持为 QPS、4xx/5xx、成功率、P95 延迟、活动连接数、CPU 和内存自定义 PromQL 覆盖值。

huawei_get_cce_autoscaler_metrics 参数
参数必填描述默认值
namespace否Cluster Autoscaler Pod 的命名空间。使用空值可查询所有命名空间kube-system
pod_regex否用于匹配 autoscaler Pod 的正则表达式`.*cluster.autoscaler.
hpa_namespace否用于筛选 HPA 副本指标的命名空间all
hours否指标回溯小时数1
include_hpa否是否查询 HPA 当前副本数和期望副本数指标true

支持为无法调度的 Pod、节点状态、扩缩容事件、错误、节点组、HPA 副本数、CPU 和内存自定义 PromQL 覆盖值。

Kubernetes 控制平面工具参数

适用于 huawei_get_cce_apiserver_metrics、huawei_get_cce_etcd_metrics、huawei_get_cce_controller_manager_metrics 和 huawei_get_cce_scheduler_metrics。

huawei_get_cce_apiserver_metrics 默认使用 cluster="<cluster_id>",component="apiserver",且不会添加命名空间或 Pod 标签。其默认 P95 延迟会排除 WATCH|CONNECT 请求,并且还会返回 latency_p95_by_verb_ms 以供诊断。仅当 Prometheus 标签不同时,才使用 metric_selector。

huawei_get_cce_etcd_metrics 默认使用 cluster="<cluster_id>",且不会添加命名空间或 Pod 标签。仅当 Prometheus 标签不同时,才使用 metric_selector。

huawei_get_cce_controller_manager_metrics 默认使用 cluster="<cluster_id>",因为 CCE AOM 工作队列指标可能不会提供稳定的 controller-manager Pod 标签。它会同时返回聚合工作队列指标和按队列 name 拆分的指标。

huawei_get_cce_scheduler_metrics 默认使用 cluster="<cluster_id>",并返回聚合指标以及按 result、profile/result 和 queue 拆分的指标。

Controller-manager、scheduler 和 etcd 指标依赖于为对应的 kube-controller-manager、kube-scheduler 和 etcd-server 端点启用 AOM ServiceMonitor 采集。如果未启用 ServiceMonitor,工具仍可成功运行,但返回的时间序列为空。

参数必填描述默认值
namespace否控制平面 Pod 的命名空间。使用空值可查询所有命名空间kube-system
pod_regex否用于匹配目标组件 Pod 的正则表达式因组件而异
metric_selector否自定义 apiserver/etcd/controller-manager/scheduler 指标标签选择器apiserver:cluster="<cluster_id>",component="apiserver";etcd/controller-manager/scheduler:cluster="<cluster_id>"
hours否指标回溯小时数1
云资源工具参数
工具必需 ID 参数可选参数
huawei_get_ecs_metricsinstance_id无
huawei_get_elb_metricselb_idhours
huawei_get_eip_metricseip_idhours
huawei_get_nat_gateway_metricsnat_gateway_idhours
huawei_cce_cluster_monitoring_aggregation 参数
参数必需描述默认值
start_time是开始时间(YYYY-MM-DD HH:MM:SS)不适用
end_time是结束时间(YYYY-MM-DD HH:MM:SS)不适用
namespace否命名空间筛选条件default
top_n否排名前列的项目数量10
security_token否AK/SK 会话凭证的临时安全令牌回退到环境变量

输出格式

完整的 JSON 响应结构请参阅输出架构。

主要输出字段:

  • success — 布尔值,查询完成时为 true
  • region — 华为云区域
  • cluster_id / cluster_name — CCE 集群标识
  • aom_instance_id — 用于查询指标的 AOM Prometheus 实例
  • metrics — 包含各资源 CPU、内存和磁盘数据(含状态分类)的字典
  • certificate_check — 启用证书检查时,nginx-ingress Ingress TLS 证书到期时间摘要
  • time_series — 历史数据点,包含 timestamp、time、average、min、max
  • status — 阈值分类:critical(CPU >80%,内存/磁盘 >85%)、warning(CPU/内存 >50%,磁盘 >70%)、normal(低于警告阈值)、unknown(无数据)

工作流

  1. 按照文档说明的优先级解析区域、集群 ID 和凭证。
  2. 从 CCE 集群插件绑定中发现 AOM Prometheus 实例。
  3. 从 Pod/Node TopN 或聚合开始,然后深入查看某个 Pod、Node、组件或云资源。
  4. 使用 cluster="<cluster_id>" 限定 PromQL 范围;仅添加命名空间、Pod 或资源筛选条件以减少干扰。
  5. 将状态分类作为调查线索,再将异常与事件或告警历史关联起来。

验证

  1. 运行 python3 scripts/huawei-cloud.py huawei_get_cce_pod_metrics_topN region=cn-north-4 cluster_id=<cluster-id> namespace=default top_n=5,验证 Pod 指标查询
  2. 运行 python3 scripts/huawei-cloud.py huawei_get_cce_node_metrics_topN region=cn-north-4 cluster_id=<cluster-id> top_n=5,验证 Node 指标查询
  3. 运行 python3 scripts/huawei-cloud.py huawei_get_ecs_metrics region=cn-north-4 instance_id=<instance-id>,验证 CES 指标连通性

最佳实践

  1. 先查看 Pod/Node TopN,再深入检查单个资源。
  2. 最近的分析将 hours 设为较小值(1-4);历史回顾最多不超过 24 小时。
  3. 提供 namespace 以减少 Pod 干扰,同时保留集群筛选条件。
  4. 优先关注 critical 和 warning 资源。
  5. 使用 huawei_cce_cluster_monitoring_aggregation 检查整个集群的运行状况。
  6. 将指标异常与 huawei-cloud-cce-kubernetes-event-analyzer 关联起来。
  7. 不要在公开摘要中泄露生产环境的 Pod 名称、节点 IP 或集群 ID。

注意事项

  • 此技能严格只读,绝不会修改资源或配置。
  • 阈值是预定义基线;在据此做出运维决策前,应根据工作负载的 SLO 进行调整。
  • 绝不能将 AK/SK 硬编码;常规 hcloud 调用请使用 hcloud 配置文件,签名 AOM/Kubernetes 调用请使用环境变量回退。
  • scripts/huawei-cloud.py 是唯一面向用户的执行方式
  • AOM Prometheus 实例会自动发现;无需手动指定 aom_instance_id
  • 云资源指标(ECS/ELB/EIP/NAT)使用 CES(Cloud Eye Service),而非 AOM
  • 不要仅根据指标分析做出自动扩缩容或修复决策。

故障排查

陷阱症状快速修复
缺少 cluster_id操作立即失败从集群列表中获取 cluster_id 并提供
找不到 AOM Prometheus 实例指标查询返回空结果确保已为集群创建 AOM Prom 实例;检查 aom:instance:list 权限
时间范围较大且未筛选命名空间响应缓慢,结果过多将 hours 缩小至 1-4,并添加 namespace 筛选
找不到云资源 IDECS/ELB/EIP/NAT 查询返回错误验证资源 ID 和 CES IAM 权限
自定义 PromQL 语法错误自定义查询返回空结果除非熟悉 AOM PromQL,否则使用默认 PromQL
聚合查询缺少时间范围缺少 start_time / end_time提供开始和结束时间

限制

  • AOM Prometheus 数据要求集群 Prometheus 插件已与 AOM 集成。
  • 必须启用控制平面 ServiceMonitor 和组件 PodMonitor,相关指标才会显示。
  • 查询结果仅反映已采集的监控数据;缺少时间序列并不能证明工作负载运行正常。
  • 此技能不会修复、扩缩容、重启、创建、更新或删除云资源或 Kubernetes 资源。

参考资料

文档描述
工作流指标查询顺序、阈值检测、后续步骤交接
风险规则只读限制、数据脱敏、时间范围限制、阈值注意事项
输出架构指标和状态输出的 JSON 响应架构
CLI 安装指南hcloud、kubectl、kubectl-cce 和 dispatcher 设置
IAM 策略所需的只读 Huawei Cloud 和 Kubernetes 权限
验证方法静态检查和冒烟测试
验收标准功能、安全、文档和质量门槛

评论

支持 Markdown