腾讯云容器服务监控系统可以监控集群中所有的节点,服务,实例,容器的相关信息,并且以曲线的方式展示给用户,同时支持多种粒度的统计方式。监控的基础数据是由 cAdvisor 获取,然后上报至监控平台进行聚合。本文将讲解容器监控框架和指标统计方式。
Container 为当前该集群节点(VM)上所有的容器,包括但不限于:
cAdvisor 做为一个运行中的 daemon,会自动收集所有运行时容器的监控信息,例如 cpu,mem 等,经过一定的计算和分类通过页面或者 api 的方式提供调用。kubenertes 已经将 cAdvisor 功能集成到 kubelet 组件中,同时通过节点 IP+端口也可以直接进行 cAdvisor web 访问。
cAdvisor web 访问方式: http://VmIp:4194
每一台集群节点(VM)上会部署一个专门收集监控信息的 agent,每个 agent 会在集群节点创建时默认安装并运行,agent 会每分钟调用 cAdvisor api 获取容器的监控信息进行汇总,并且按照多种视图的方式进行聚合计算等等操作,最终汇总成一个包含容器,服务,节点,集群,命名空间的有层级的原始数据上报至 Tencent Cloud Monitor Service.
Tencent Cloud Monitor Service 获取 agent 每分钟上报的结果,通过我们在监控平台上配置的不同视图,不同维度的统计方式进行二次聚合,最终以标准的腾讯云 API 的形式提供给用户调用。具体的调用方式可以查看 获取容器服务监控数据
容器服务以多种视图的方式提供监控视图,视图可以看做是一种分类,每一个视图通过不同的聚合方式,维度,和指标提供独立的监控数据。下面会列举出现在容器服务支持的所有视图和其监控指标,并且解释其统计方式
监控项 | 指标名称 | 单位 | 说明 | 统计方式 |
---|---|---|---|---|
集群 CPU 利用率 | dc_cpu_usage | % | 集群内节点的平均 CPU 利用率 | 1 分钟 avg,5 分钟 max,1 小时 max,1 天 max |
集群内存利用率 | dc_mem_usage | % | 集群内节点的平均内存利用率 | 1 分钟 avg,5 分钟 max,1 小时 max,1 天 max |
监控项 | 指标名称 | 单位 | 说明 | 统计方式 |
---|---|---|---|---|
服务 CPU 使用情况 | service_cpu_used | 核 | 服务内所有容器实例 CPU 使用之和 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
服务 CPU 使用率(占集群) | service_cpu_usage_for_cluster | % | 服务使用 CPU 占集群比率 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
服务内存使用情况 | service_mem_used | MiB | 服务内所有容器实例内存使用之和 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
服务内存使用率(占集群) | service_mem_usage_for_cluster | % | 服务使用内存占集群比率 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
服务网络入流量 | service_in_flux | MB | 服务内所有实例在该时间窗口入流量之和 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
服务网络出流量 | service_out_flux | MB | 服务内所有实例在该时间窗口出流量之和 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
服务网络入带宽 | service_in_bandwidth | Mbps | 服务内所有实例的入带宽之和 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
服务网络出带宽 | service_out_bandwidth | Mbps | 服务内所有实例的出带宽之和 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
服务网络入包量 | service_in_packets | 个/s | 服务内所有实例的入包量之和 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
服务网络出包量 | service_out_packets | 个/s | 服务内所有实例的出包量之和 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
监控项 | 指标名称 | 单位 | 说明 | 统计方式 |
---|---|---|---|---|
实例网络入带宽 | pod_in_bandwidth | Mbps | 同一实例内容器共享网络,实例(pod) 的网络入带宽 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
实例网络出带宽 | pod_out_bandwidth | Mbps | 同一实例内容器共享网络,实例(pod) 的网络出带宽 | 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max |
实例网络入流量 | pod_in_flux | MB | 同一实例内容器共享网络,实例(pod) 的网络入流量 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
实例网络出流量 | pod_out_flux | MB | 同一实例内容器共享网络,实例(pod) 的网络出流量 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
实例网络入包量 | pod_in_packets | 个/s | 同一实例内容器共享网络,实例(pod) 的网络入包量 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
实例网络出包量 | pod_out_packets | 个/s | 同一实例内容器共享网络,实例(pod) 的网络出包量 | 1 分钟 sum,5 分钟 sum,1 小时 sum,1 天 sum |
监控项 | 指标名称 | 单位 | 说明 | 统计方式 |
---|---|---|---|---|
容器 CPU 使用情况 | container_cpu_used | 核 | 容器 CPU 使用量 | 5 分钟 max,1 小时 max,1 天 max |
容器 CPU 使用率(占主机) | container_cpu_usage_for_node | % | 容器 CPU 使用占主机 | 5 分钟 max,1 小时 max,1 天 max |
容器 CPU 使用率(占 Request) | container_cpu_usage_for_request | % | 容器 CPU 使用占 Request | 5 分钟 max,1 小时 max,1 天 max |
容器 CPU 使用率(占 Limit) | container_cpu_usage_for_limit | % | 容器 CPU 使用占 Limit | 5 分钟 max,1 小时 max,1 天 max |
容器内存使用情况 | container_mem_used | MiB | 容器内存使用量 | 5 分钟 max,1 小时 max,1 天 max |
容器内存使用率(占主机) | container_mem_usage_for_node | % | 容器内存使用占主机 | 5 分钟 max,1 小时 max,1 天 max |
容器内存使用率(占 Request) | container_mem_usage_for_request | % | 容器内存使用占 Request | 5 分钟 max,1 小时 max,1 天 max |
容器内存使用率(占 Limit) | container_mem_usage_for_limit | % | 容器内存使用占 Limit | 5 分钟 max,1 小时 max,1 天 max |
容器磁盘读流量 | container_disk_read_traffic | KB/s | 容器对磁盘读流量 | 5 分钟 max,1 小时 max,1 天 max |
容器磁盘写流量 | container_disk_write_traffic | KB/s | 容器对磁盘写流量 | 5 分钟 max,1 小时 max,1 天 max |
容器磁盘读 IOPS | container_disk_read | count | 容器对磁盘读 IOPS | 5 分钟 max,1 小时 max,1 天 max |
容器磁盘写 IOPS | container_disk_write | count | 容器对磁盘写 IOPS | 5 分钟 max,1 小时 max,1 天 max |
上面所描述的统计方式,例如:service_cpu_used(服务 cpu 使用量) 1 分钟 sum,5 分钟 max,1 小时 max,1 天 max,解释如下:
1 分钟 max: 服务下的所有容器每分钟上报的 cpu 使用量之合 5 分钟 max: 基于 1 分钟的统计结果,5 分钟共 5 个点,取其中最大值 1 小时 max: 基于 5 分钟的统计结果,1 小时共 12 个点,取其中最大值 1 天 max: 基于 1 分钟的统计结果,1 小时共 1440 个点,取其中最大值
其他统计方式与这个类似,其中容器视同中的指标没有 1 分钟统计方式,因为容器为最小粒度,顾只需取得上报的值,即为最后的输出值,不需要做聚合。
腾讯云容器服务的监控是基于 cAdvisor 来获取基础数据,并且通过一系列的计算,汇总最终呈现给用户。指标覆盖集群,服务,实例,容器四大部分,共 30 个监控指标,基本涵盖了大部分用户诉求,同时提供控制台页面和云 API 两种方式输出。欢迎大家使用!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。