微服务的监控

xiaojiuaigc@163.com 发布于 2024-10-30 440 次阅读


为什么要进行监控

随着系统设计变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、分 布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络。往往 前端的一个请求需要经过多个微服务、跨越多个数据中心才能最终获取到结果, 如下图:

随之就会诞生这些问题

  • 问题定位:当某一个服务节点出现问题导致整个调用失败,无法快速清晰地 定位问题服务。
  • 性能分析:服务存在相互依赖调用的关系,当某一个服务接口耗时过长,会 导致整个接口调用变的很慢,我们无法明确每一个接口的耗时。
  • 服务拓扑图:随着需求迭代,系统之间调用关系变化频繁,靠人工很难梳理 清楚系统之间的调用关系。
  • 服务告警:当服务出现问题,我们无法做到由系统自动通知相关人员。

我们可以使用skywalking来监控它

skywalking的核心功能

  • 指标分析 :服务,实例,端点指标分析
  • 问题分析 :在运行时分析代码,找到问题的根本原因
  • 服务拓扑 :提供服务的拓扑图分析
  • 依赖分析 :服务实例和端点依赖性分析
  • 服务检测 :检测慢速的服务和端点
  • 性能优化 :根据服务监控的结果提供性能优化的思路
  • 链路追踪 :分布式跟踪和上下文传播
  • 数据库监控 :数据库访问指标监控统计,检测慢速数据库访问语句(包括 SQL语句)
  • 服务告警 :服务告警功能

1,skywalking主要可以监控接口、服务、物理实例的一些状态。特别是在压测的时候可以看到众多服务中哪些服务和接口比较慢,我们可以针对性的分析和优化。

2,我们还在skywalking设置了告警规则,特别是在项目上线以后,如果报错,我们分别设置了可以给相关负责人发短信和发邮件,第一时间知道项目的bug情况,第一时间修复