Choerodon 的微服务之路(五):微服务的“健康保障”

本文探讨了微服务监控的重要性,详细介绍了Choerodon在指标监控、调用监控和日志监控方面的解决方案,利用Prometheus、SkyWalking和ELK栈确保微服务的健康运行。通过监控,Choerodon帮助开发者快速定位故障,提升系统稳定性。
摘要由CSDN通过智能技术生成

本文是Choerodon 的微服务系列推文第五篇,上一篇《Choerodon 的微服务之路(四):深入理解微服务配置中心》介绍了配置中心在微服务架构中的作用,本篇将介绍微服务监控的重要性和必要性。

▌文章的主要内容包括:

  • 为什么要监控
  • 开发者需要监控哪些
  • 猪齿鱼的解决方案

在前面的几期的文章里,介绍了在 Choerodon 的微服务架构中,系统被拆分成多个有着独立部署能力的业务服务,每个服务可以使用不同的编程语言,不同的存储介质,来保持最低限度的集中式管理。

这样的架构决定了功能模块的部署是分布式的,不同的业务服务单独部署运行的,运行在独立的容器进程中,彼此之间通过网络进行服务调用交互。一次完整的业务流程会经过很多个微服务的处理和传递。

在这种情况下,如何监控服务的错误和异常,如何快速地定位和处理问题,以及如何在复杂的容器拓扑中筛选出用户所需要的指标,是 Choerodon 在监控中面临的首要问题。本文将会分享 Choerodon 在微服务下的监控思考,以及结合社区流行的 Spring Cloud、Kubernetes、Prometheus 等开源技术,打造的 Choerodon 的监控方案。

为什么要监控

在谈到 Choerodon 的监控之前,大家需要清楚为什么需要微服务下的监控。

传统的单体应用中,由于应用部署在具体的服务器上,开发者一般会从不同的层级对应用进行监控。比如猪齿鱼团队常用的方式是将监控分成基础设施、系统、应用、业务和用户端这几层,并对每一层分别进行监控。如下图所示。

而在微服务系统中,开发者对于监控的关心点是一样的,但是视角却发生了改变,从分层 + 机器的视角转化为以服务为中心的视角。在 Choerodon 中,传统的分层已经不太适用。服务是部署在 k8s 的 pod 中,而不是直接部署在服务器上。团队除了对服务器的监控之外,还需要考虑到 k8s 中容器的监控。同样,由于一个业务流程可能是通过一系列的业务服务而实现的,如何追踪业务流的处理也同样至关重要。

所以在微服务中,大家同样离不开监控,有效的监控能够帮开发者快速的定位故障,保护系统健康的运行。

平开发者需要监控哪些

在 Choerodon 中,将系统的使用人员分为应用的管理人员,开发人员,运维人员。而不同的人员在平台中所关心的问题则分别不同。

  • 作为应用的管理人员,需要查看到系统中各个节点实例的运行状态以及实例中应用的状态。
  • 作为开发人员,需要查看自己开发的服务在运行中的所有信息,也需要跟踪请求流的处理顺序和结果,并快速定位问题。
  • 作为运维人员,需要查看系统集群中服务器的 CPU、内存、堆栈等信息。需要查看K8S集群的运行状态,同时也需要查看各个服务的运行日志。

除了这些以外,还需要监控到如下的一些信息:

  • 服务的概览信息:服务的名称,相关的配置等基本信息。
  • 服务的拓扑关系:服务之间的调用关系。
  • 服务的调用链:服务之间的请求调用链。
  • 服务的性能指标:服务的CPU,内存等。
  • 接口的调用监控:接口的吞吐量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值