通过VK获取实例监控指标
更新时间:2024-09-25
除了通过百度云监控BCM查看 BCI 实例监控指标外,BCI 还支持通过 VK 查看 BCI 实例监控指标。
通过 VK 查看监控指标的方式与 Kubelet 类似,本文将分三部分介绍:
- 监控指标来源
- 支持查看的指标
- 查看指标的方式
监控指标来源
BCI实例监控指标的流向如下图所示
支持查看的指标
通过VK提供的监控指标是prometheus指标格式,与BCM上看到的指标有较大的差异。vk 提供的监控指标格式如下
# 指标的帮助说明
# 指标名称 指标类型
指标名称{标签,标签,...} 指标取值 指标时间戳
指标名称{标签,标签,...} 指标取值 指标时间戳
# 指标的帮助说明
# 指标名称 指标类型
指标名称{标签,标签,...} 指标取值 指标时间戳
指标名称{标签,标签,...} 指标取值 指标时间戳
指标分为多类,每一类指标的指标名称和指标类型是都一样的,每一类指标又可分为多条(指标名称一样,标签不一样)。
每条指标都包含指标名称、标签集合、指标取值、指标时间戳四个部分。
如下图示例说明:
支持的指标:
CPU
- container_cpu_usage_seconds_total:容器创建以来,累计使用cpu的总时间(单位:秒)。
内存
- container_memory_working_set_bytes:容器正在使用的内存字节数(单位:字节)。使用的内存字节数不包含Page Cache占用的内存空间
磁盘
- container_fs_reads_bytes_total:容器创建以来,累计从文件系统读取的字节数(单位:字节)。
- container_fs_writes_bytes_total:容器创建以来,累计写入到文件系统的字节数(单位:字节)。
网络
- container_network_receive_bytes_total:容器创建以来,累计接收的网络数据字节数(单位:字节)。
- container_network_receive_packets_total:容器创建以来,累计接收的网络数据IP包数(单位:个)。
- container_network_transmit_bytes_total:容器创建以来,累计发送的网络数据字节数(单位:字节)。
- container_network_transmit_packets_total:容器创建以来,累计发送的网络数据IP包数(单位:个)。
支持的标签:
- container:容器名称
- id:容器复杂ID
- image:容器镜像地址
- name:容器简单ID
- namespace:Pod所在的名字空间
- pod:容器所在的Pod
- device:指标所属的块设备,此标签只在 container_fs_xxx 等几个指标中存在
- interface:指标所属的网卡设备,此标签只在 container_network_xxx 等几个指标中存在
注意:使用了镜像加速功能的容器,其监控指标中的 image 并非用户原始镜像,而是 {ACCELERATE_PREFIX}/transfer/{ACCOUNT_ID}/{USER_ORIGINAL_IMAGE}_accelerate {ACCELERATE_PREFIX} 镜像加速添加的前缀 {ACCOUNT_ID} 用户的账户ID {USER_ORIGINAL_IMAGE} 用户原始镜像地址
查看指标的方式
通过 VK 查看BCI监控指标的方式,与通过 Kubelet 查看 cAdvisor 指标的方式一样,通过如下接口查看
Host: {KubeletServer}
Port: 10250
URI: GET /metrics/cadvisor
Param:无
通过 vk 查看BCI实例监控指标,示例如下
./kubectl --kubeconfig={kubeconfig_path} get --raw "/api/v1/nodes/{vk_bci_kubelet_name}/proxy/metrics/cadvisor"
// {vk_bci_kubelet_name} vk 的 nodeName
通过 Prometheus 采集存储 BCI实例监控指标,简单配置如下
scrape_configs:
- job_name: 'kubernetes-kubelet'
metrics_path: /metrics/cadvisor
static_configs:
- targets: ['{vk_bci_kubelet_ip}:10250']
// {vk_bci_kubelet_ip} vk 的 ip