更新时间:2025-10-31 GMT+08:00

使用CCI 2.0控制台查看监控指标

使用云服务Prometheus监控,可以监控CCI 2.0云服务的多种指标。您可以使用CCI 2.0控制台查看监控指标。

约束与限制

一个企业项目下仅可以创建一个云服务类型的Prometheus实例。

CCI 2.0当前仅支持在土耳其-伊斯坦布尔、非洲-约翰内斯堡、亚太-新加坡和中东-利雅得局点使用监控管理。

步骤一 创建Prometheus实例

  1. 登录华为云AOM 2.0控制台。
  2. 在左侧导航栏选择“Prometheus监控 > 实例列表”,单击“创建Prometheus实例”。
  3. 设置实例名称、企业项目和实例类型信息。

    如果已使用“CCE 突发弹性引擎 (对接 CCI)”插件或需要使用“CCE 突发弹性引擎 (对接 CCI)”插件,Prometheus实例同时需要给CCE集群使用,实例类型需选Prometheus for CCE。

  4. 完成后单击“确定”。

步骤二 在CCI 2.0控制台对接监控指标

对接监控指标支持两种方式:方式一操作简便,适用于快速接入;方式二支持灵活扩展,适用于大规模或自动化场景。

  1. 登录云容器实例 CCI2.0控制台。
  2. 在左侧导航栏选择“命名空间”,单击指定命名空间操作列的“编辑”,开启“对接AOM(可选)”。
  3. 选择AOM实例,创建AOM实例的方法见步骤一 创建Prometheus实例
  4. 单击“确定”。
  1. 单击所创建的Prometheus实例名称,进入详情页。
  2. 单击“设置”,在调用凭证栏单击“创建AccessCode”。
  3. 单击“立即生成”。

  4. 在服务地址栏获取<project_id>、<aom_id>、<aom_secret>。

  5. 将以上3个信息拼接为字符串,格式为:<project_id>_<aom_id>: <aom_secret>。

    冒号后需包含一个空格。

  6. 将其生成base64编码。

    您可参考以下shell命令生成base64编码:

    project_id=<project_id>
    aom_id=<aom_id>
    aom_secret=<aom_secret> 
    echo -n "${project_id}_${aom_id}: ${aom_secret}" |base64 -w 0
  7. 将生成的base64编码字符串填充到以下模板中,替换{AOMAuthBase64},并复制此代码。
    kind: Secret 
    apiVersion: cci/v2 
    metadata:  
      name: cci-aom-app-secret 
    data:
      aom_auth: {AOMAuthBase64}
    type: cci/secure-opaque
  8. 登录云容器实例 CCI2.0控制台。
  9. 在左侧导航栏单击“配置中心”。
  10. 在配置中心页面选择“密钥(Secret)”。
  11. 单击“YAML创建”,将代码替换到CCI界面创建AOM APP Secret。

步骤三 在CCI 2.0控制台查看监控指标

您可以通过CCI 2.0控制台查看无状态负载和容器组监控指标。

查看无状态负载监控指标

  1. 在左侧导航栏单击“负载管理”,选择无状态负载页签。
  1. 您可在无状态负载所对应的操作列单击“监控”查看相关监控指标。也可以单击工作负载的名称,进入详情页面,选择监控页签,即可查看负载监控指标。如需查看更多监控指标,请前往AOM控制台查询全量监控指标或使用普罗语句查询相关监控指标

    表1 负载相关监控指标

    相关监控指标

    监控指标名称

    指标含义

    指标计算方式

    CPU 相关指标

    CPU使用率

    负载的所有 Pod 在不同的时间段使用的 CPU 总量占负载的所有 Pod 的 CPU Limit 总量的比例。

    clamp_max((sum((rate(container_cpu_usage_seconds_total{cluster='cci',image!='',container!='POD',namespace="${namespace}"}[${period}])) * on(pod) group_left(created_by_kind, created_by_name) count by(pod, created_by_kind, created_by_name)

    (kube_pod_info{cluster='cci', created_by_kind="ReplicaSet", namespace="${namespace}"} * on(created_by_name) group_left(replicaset) count by(created_by_name, owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci', owner_kind="Deployment", namespace="${namespace}", owner_name=~"${deploymentName}"}, "created_by_name", '$1', "replicaset", "(.*)")))))

    /

    (sum((kube_pod_container_resource_limits{cluster='cci', resource="cpu", container="POD", namespace="${namespace}"}) * on(pod) group_left(created_by_kind, created_by_name) count by(pod, created_by_kind, created_by_name)

    (kube_pod_info{cluster='cci', created_by_kind="ReplicaSet", namespace="${namespace}"} * on(created_by_name) group_left(replicaset) count by(created_by_name, owner_name)

    (label_replace(kube_replicaset_owner{cluster="cci", owner_kind="Deployment", namespace="${namespace}", owner_name=~"${deploymentName}"}, "created_by_name", '$1', "replicaset", "(.*)")))))

    *100,100)

    其中namespace为负载所在命名空间,deploymentName为负载名称。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    CPU使用量

    负载的所有 Pod 已经使用的 vCPU 核数。

    sum((rate(container_cpu_usage_seconds_total{cluster='cci',image!='',container!='POD',namespace="${namespace}"}[${period}])) * on(pod) group_left(created_by_kind, created_by_name) count by(pod, created_by_kind, created_by_name)

    (kube_pod_info{cluster='cci', created_by_kind="ReplicaSet", namespace="${namespace}"} * on(created_by_name) group_left(replicaset) count by(created_by_name, owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci', owner_kind="Deployment", namespace="${namespace}", owner_name=~"${deploymentName}"}, "created_by_name", '$1', "replicaset", "(.*)"))))

    其中namespace为负载所在命名空间,deploymentName为负载名称

    其中namespace为负载所在命名空间,deploymentName为负载名称。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    内存相关指标

    内存使用率

    负载的所有 Pod 在不同的时间段使用的内存总量占负载的所有 Pod 的内存 Limit 总量的比例。

    clamp_max((sum((container_memory_working_set_bytes{cluster='cci',image!='',container!='POD',namespace="${namespace}"}) *on(pod) group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset)count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)")))))

    /

    (sum((kube_pod_container_resource_limits{cluster='cci',resource="memory",container="POD",namespace="${namespace}"})*on(pod)group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset)count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)")))))

    *100,100)

    其中namespace为负载所在命名空间,deploymentName为负载名称。

    内存使用量

    负载的所有 Pod 已经使用的内存总量。

    sum((container_memory_working_set_bytes{cluster='cci',image!='',container!='POD',namespace="${namespace}"}) *on(pod) group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset) count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)"))))

    其中namespace为负载所在命名空间,deploymentName为负载名称。

    网络相关指标

    网络速率

    • 网络总流出速率:负载的所有 Pod 在不同的时间段的每秒钟发送的总字节数。
    • 网络总流入速率:负载的所有 Pod 在不同的时间段的每秒钟接收的总字节数。

    sum((rate(container_network_transmit_bytes_total{cluster='cci',image!='',container!='',namespace="${namespace}"}[${period}]))*on(pod)group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset)count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)"))))

    其中namespace为负载所在命名空间,deploymentName为负载名称。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    网络丢包率

    • 网络发送丢包率:负载的所有 Pod 在不同的时间段的发送丢失的数据包总量占发送的数据包总量的比例。
    • 网络接收丢包率:负载的所有 Pod 在不同的时间段的接收丢失的数据包总量占接收的数据包总量的比例。

    sum((rate(container_network_receive_bytes_total{cluster='cci',image!='',container!='',namespace="${namespace}"}[${period}]))*on(pod)group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset)count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)"))))

    其中namespace为负载所在命名空间,deploymentName为负载名称。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    Pod相关指标

    Pod CPU使用率

    负载的每个 Pod 在不同的时间段的 CPU 使用量占它们的 CPU Limit 量的比例。

    clamp_max((sum((rate(container_cpu_usage_seconds_total{cluster='cci',image!='',container!='POD',namespace="${namespace}"}[${period}])) * on(pod) group_left(created_by_kind, created_by_name) count by(pod, created_by_kind, created_by_name)

    (kube_pod_info{cluster='cci', created_by_kind="ReplicaSet", namespace="${namespace}"} * on(created_by_name) group_left(replicaset) count by(created_by_name, owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci', owner_kind="Deployment", namespace="${namespace}", owner_name=~"${deploymentName}"}, "created_by_name", '$1', "replicaset", "(.*)"))))

    by(created_by_name, pod))

    /

    (sum((kube_pod_container_resource_limits{cluster='cci', resource="cpu", container="POD", namespace="${namespace}"}) * on(pod) group_left(created_by_kind, created_by_name) count by(pod, created_by_kind, created_by_name)

    (kube_pod_info{cluster='cci', created_by_kind="ReplicaSet", namespace="${namespace}"} * on(created_by_name) group_left(replicaset) count by(created_by_name, owner_name)

    (label_replace(kube_replicaset_owner{cluster="cci", owner_kind="Deployment", namespace="${namespace}", owner_name=~"${deploymentName}"}, "created_by_name", '$1', "replicaset", "(.*)"))))

    by(created_by_name, pod))

    *100,100)

    其中namespace为负载所在命名空间,deploymentName为负载名称。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    Pod内存使用率

    负载的每个 Pod 在不同的时间段的内存使用量占它们的内存 Limit 量的比例。

    clamp_max((sum((container_memory_working_set_bytes{cluster='cci',image!='',container!='POD',namespace="${namespace}"}) *on(pod) group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset)count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)"))))

    by(created_by_name, pod))

    /

    (sum((kube_pod_container_resource_limits{cluster='cci',resource="memory",container="POD",namespace="${namespace}"})*on(pod)group_left(created_by_kind,created_by_name)count by(pod,created_by_kind,created_by_name)

    (kube_pod_info{cluster='cci',created_by_kind="ReplicaSet",namespace="${namespace}"}*on(created_by_name)group_left(replicaset)count by(created_by_name,owner_name)

    (label_replace(kube_replicaset_owner{cluster='cci',owner_kind="Deployment",namespace="${namespace}",owner_name=~"${deploymentName}"},"created_by_name",'$1',"replicaset","(.*)"))))

    by(created_by_name, pod))

    *100,100)

    其中namespace为负载所在命名空间,deploymentName为负载名称。

    注意:因CPU指标计算时,[$period]窗口会平均化所有波动,如果CPU在短时间内飙升,然后恢复,${period}平均值会显著低于峰值。

查看容器组监控指标

  1. 在左侧导航栏单击“负载管理”,选择无状态负载或容器组页签。
  1. 您可在对应的工作负载或实例名称操作列单击“监控”查看相关监控指标。也可以单击实例列表的名称,进入详情页面,选择监控页签,即可查看Pod相关监控指标。如需查看更多监控指标,请前往AOM控制台查询全量监控指标或使用普罗语句查询相关监控指标

    表2 容器组相关监控指标

    相关监控指标

    监控指标名称

    指标含义

    指标计算方式

    CPU 相关指标

    CPU使用率

    Pod 的所有容器在不同的时间段使用的 CPU 总量占 Pod 的所有容器 CPU Limit 总量的比例。

    clamp_max(sum(rate(container_cpu_usage_seconds_total{cluster='cci', pod="${pod}", namespace="${namespace}", container!='POD', container!='', image!=""}[${period}])) by (pod)

    /

    sum(kube_pod_container_resource_limits{cluster='cci', pod="${pod}", namespace="${namespace}", resource="cpu", container="POD"}) by (pod)

    * 100, 100)

    其中namespace为负载所在命名空间。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    CPU使用量

    Pod 的所有容器已经使用的 vCPU 核数。

    sum(rate(container_cpu_usage_seconds_total{cluster='cci', pod="${pod}", namespace="${namespace}", container!='POD', container!='', image!=""}[${period}])) by (pod)

    其中namespace为负载所在命名空间。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    内存相关指标

    内存使用率

    Pod 的所有容器在不同的时间段使用的内存总量占 Pod 的所有容器内存 Limit 总量的比例。

    clamp_max(sum(container_memory_working_set_bytes{cluster='cci', pod="${pod}", namespace="${namespace}", container!='POD', container!='', image!=""}) by (pod)

    /

    sum(kube_pod_container_resource_limits{cluster='cci', pod="${pod}", namespace="${namespace}", resource="memory", container="POD"}) by (pod)

    * 100, 100)

    其中namespace为负载所在命名空间。

    内存使用量

    Pod 的所有容器已经使用的内存总量。

    sum(container_memory_working_set_bytes{cluster='cci', pod="${pod}", namespace="${namespace}", container!='POD', container!='', image!=""}) by (pod)

    其中namespace为负载所在命名空间。

    网络相关指标

    网络速率

    • 网络总流出速率:Pod 的所有容器每秒钟发送的总字节数。
    • 网络总流入速率:Pod 的所有容器每秒钟接收的总字节数。

    sum(rate(container_network_transmit_bytes_total{cluster='cci', pod="${name}", namespace="${namespace}", container!='', image!=""}[${period}])) by (pod)

    sum(rate(container_network_receive_bytes_total{cluster='cci', pod="${name}", namespace="${namespace}", container!='', image!=""}[${period}])) by (pod)

    其中namespace为负载所在命名空间。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    容器相关指标

    容器CPU使用率

    Pod 的每个容器在不同的时间段的 CPU 使用量占它们的 CPU Limit 量的比例。

    clamp_max(

    sum(rate(container_cpu_usage_seconds_total{cluster='cci', pod="${name}", namespace="${namespace}t", container!='POD', container!="", image!=""}[${period}])) by (pod, container)

    /

    sum(container_spec_cpu_quota{cluster='cci', pod="${name}", namespace="${namespace}", container!="POD", container!=''} / 100000) by (pod, container)

    * 100,

    100

    )

    其中namespace为负载所在命名空间。period为统计周期,当界面选择近1小时、近8小时、近24小时时统计周期约为1分钟,当自定义时间大于1天时,统计周期约为1小时

    容器内存使用率

    Pod 的每个容器在不同的时间段的内存使用量占它们的内存 Limit 量的比例。

    clamp_max(

    sum(container_memory_working_set_bytes{cluster='cci', pod="${name}", namespace="${namespace}", container!='POD', container!="", image!=""}) by (pod, container)

    /

    sum(container_spec_memory_limit_bytes{cluster='cci', pod="${name}", namespace="${namespace}", container!="POD", container!=''}) by (pod, container)

    * 100,

    100

    )

    其中namespace为负载所在命名空间。

    注意:因CPU指标计算时,[$period]窗口会平均化所有波动,如果CPU在短时间内飙升,然后恢复,${period}平均值会显著低于峰值。