如何判断 OpenIM 的业务状态和可用性

OpenIM 计划是有两个环境,分别是测试环境和发布环境。并没有开发环境,这是因为开发的对应的是 main 分支,通常是通过一些 CICD 以及 自动化测试等工具来完成的。

对于发布环境,也是我们内部用的生产环境。在生产环境下,我们经常会被问到这些问题:业务现在健康吗?线上部署的是什么版本,是在什么时候部署的?它的整体可用性怎么样?是否有报错信息等等。

我们来评量一下可观测性。首先,我们来看看什么是可观测性:

什么是可观测性

可观测性(Observability)一词最早出现在控制论领域,有着几十年的历史。随着云原生时代的到来,2018年,CNCF率先将可观测性一词引入IT领域,并称可观测性是云原生时代必须具备的能力。自此,“可观测性”逐渐取代“监控”,成为云原生技术领域最热门的话题之一。

监控(Monitoring):收集、分析和使用信息来观察一段时间内的运行进度,并且进行相应的决策管理的过程,监控侧重于观察特定指标。

可观测性(Observability):通过分析系统生成的数据理解推演出系统内部的状态。

image-20231115121508465

  1. 日志:记录了特定时间发生的各种离散事件的信息,用于检测应用程序或者系统中无法预知的行为。
  2. 指标:根据随时间变化的数据,大致可以分为三类数据: (1)基本指标度量:测量特定时间点的值 (2)增量指标度量:当前测量值与历史测量值之间的差异 (3)累计指标度量:计算在随时间变化下指标的累计值
  3. 追踪:请求通过分布式系统从端到端的过程。 这三大支柱密不可分,从发现指标异常,到指标关联分析,从逐层下钻到明细trace追踪和具体的错误日志,进而实现全链路自动化根因定位。

因此,可观测性往往能够回答以下几个问题:

  1. 性能瓶颈有哪些
  2. 请求需要接受的服务有哪些
  3. 请求执行过程与系统行为之间的差异性
  4. 请求失败的原因
  5. 每一个微服务将如何处理请求