腾讯云容器服务监控体系详解

腾讯云容器服务监控系统可以监控集群中所有的节点,服务,实例,容器的相关信息,并且以曲线的方式展示给用户,同时支持多种粒度的统计方式。监控的基础数据是由 cAdvisor 获取,然后上报至监控平台进行聚合。本文将讲解容器监控框架和指标统计方式。

1. 框架概览

1.1 Container

Container 为当前该集群节点(VM)上所有的容器,包括但不限于:

  1. 腾讯云容器服务创建的
  2. Kubenertes Api 创建的
  3. docker run 创建的

1.2 cAdvisor

cAdvisor 做为一个运行中的 daemon,会自动收集所有运行时容器的监控信息,例如 cpu,mem 等,经过一定的计算和分类通过页面或者 api 的方式提供调用。kubenertes 已经将 cAdvisor 功能集成到 kubelet 组件中,同时通过节点 IP+端口也可以直接进行 cAdvisor web 访问。

cAdvisor web 访问方式: http://VmIp:4194

1.3 Agent

每一台集群节点(VM)上会部署一个专门收集监控信息的 agent,每个 agent 会在集群节点创建时默认安装并运行,agent 会每分钟调用 cAdvisor api 获取容器的监控信息进行汇总,并且按照多种视图的方式进行聚合计算等等操作,最终汇总成一个包含容器,服务,节点,集群,命名空间的有层级的原始数据上报至 Tencent Cloud Monitor Service.

1.4 Tencent Cloud Monitor Service(腾讯云监控服务)

Tencent Cloud Monitor Service 获取 agent 每分钟上报的结果,通过我们在监控平台上配置的不同视图,不同维度的统计方式进行二次聚合,最终以标准的腾讯云 API 的形式提供给用户调用。具体的调用方式可以查看 获取容器服务监控数据

2. 指标详细说明

容器服务以多种视图的方式提供监控视图,视图可以看做是一种分类,每一个视图通过不同的聚合方式,维度,和指标提供独立的监控数据。下面会列举出现在容器服务支持的所有视图和其监控指标,并且解释其统计方式

2.1 集群视图

监控项

指标名称

单位

说明

统计方式

集群 CPU 利用率

dc_cpu_usage

%

集群内节点的平均 CPU 利用率

1 分钟 avg,5 分钟 max,1 小时 max,1 天 max

集群内存利用率

dc_mem_usage

%

集群内节点的平均内存利用率

1 分钟 avg,5 分钟 max,1 小时 max,1 天 max

2.2 服务视图

监控项

指标名称

单位

说明

统计方式

服务 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

2.3 实例视图

监控项

指标名称

单位

说明

统计方式

实例网络入带宽

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

2.3 容器视图

监控项

指标名称

单位

说明

统计方式

容器 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

2.4 统计方式说明

上面所描述的统计方式,例如: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 分钟统计方式,因为容器为最小粒度,顾只需取得上报的值,即为最后的输出值,不需要做聚合。

3.总结

腾讯云容器服务的监控是基于 cAdvisor 来获取基础数据,并且通过一系列的计算,汇总最终呈现给用户。指标覆盖集群,服务,实例,容器四大部分,共 30 个监控指标,基本涵盖了大部分用户诉求,同时提供控制台页面和云 API 两种方式输出。欢迎大家使用!

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

长连接和短连接分析

1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接 时...

2718
来自专栏互联网大杂烩

Https协议

简单地来说,是基于ssl的http协议,依托ssl协议,https协议能够确保整个通信是加密的,密钥随机产生,并且能够通过数字证书验证通信双方的身份,以此来保障...

621
来自专栏Java进阶架构师

一篇文章带你详解 TCP/IP 协议

不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开...

561
来自专栏涤生的博客

长连接和心跳的那些事儿

心跳和长连接在一起介绍的原因是,心跳能够给长连接提供保活功能,能够检测长连接是否正常(这里所说的保活不能简单的理解为保证活着,具体来说应该是一旦链路死了,不可用...

793
来自专栏Golang语言社区

Web负载均衡

序: 对Web站点扩展一开始不宜过早,除非是基于高可用性和就近部署的考虑。但对于架构师而言,在架构设计之初就要有扩展的计划,关键是要清楚何时进行扩展。这...

3267
来自专栏cmazxiaoma的架构师之路

FastDFS蛋疼的集群和负载均衡(十二)之浅谈负载均衡

1103
来自专栏Linyb极客之路

负载均衡基础知识

 互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问...

1204
来自专栏达观数据

达观数据应对大规模消息数据的处理经验

达观数据是为企业提供大数据处理、个性化推荐系统服务的知名公司,在应对海量数据处理时,积累了大量实战经验。其中达观数据在面对大量的数据交互和消息处理时,使用了称为...

3568
来自专栏北京马哥教育

负载均衡原理的解析

开头先理解一下所谓的“均衡” 不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的...

27010
来自专栏栗霖积跬步之旅

第一章计算机网络和因特网-day02

1.互联网中的时延:处理时延、排队时延、传输时延、传播时延。   处理时延:检查分组首部和决定该分组导向何处的时间。   排队时延:分组在链路上等待传输的时延。...

2906

扫码关注云+社区