更新时间:2023-06-13 17:05:01

服务分析器可实现速览各服务的运行状况相关指标,包括KPI、服务健康度、依赖服务健康度以及SLO指标。其中,KPI和依赖服务支持钻取查看实体KPI和实体服务的运行状况,实现业务故障的根因定位及高效排查。

 

关键绩效指标

► KPI定义

关键绩效指标 (Key Performance Indicator, KPI)是能够从某一维度描述服务健康状况的服务指标,是为对服务原始日志的二次计算得到的高级指标,如最近5分钟内失败的请求数、最近1小时的CPU利用率等等。

► KPI计算

1)非指标模型数据源

KPI计算流程如上图所示,未开启实体拆分直接计算服务级别的KPI,开启实体拆分后则先分别计算每个实体的KPI,再按服务KPI计算方式计算服务级别的KPI,最后将KPI按所属阈值区间映射为KPI严重性。

► KPI计算方法

KPI计算方法共有7种,各计算方法及详细计算规则如下:

  • 平均值:筛选出数据来源中含有【阈值字段】的日志,取每条日志的【阈值字段】的值然后求平均值并以此作为KPI;
  • 计数:筛选出数据来源中含有【阈值字段】的日志,对筛选后的日志数据进行计数并以此作为KPI;
  • 去重计数:筛选出数据来源中含有【阈值字段】的日志,对筛选后的日志数据进行去重然后计数并以此作为KPI;
  • 总和:筛选出数据来源中含有【阈值字段】的日志,取每条日志的聚合字段值然后求和并以此作为KPI;
  • 最小值:筛选出数据来源中含有【阈值字段】的日志,取每条日志的聚合字段值然后求最小值并以此作为KPI;
  • 最大值:筛选出数据来源中含有【阈值字段】的日志,取每条日志的聚合字段值然后求最大值并以此作为KPI;
  • 不可用性计算:筛选出数据来源中含有【阈值字段】的日志,如果每条日志的聚合字段值均为某个阈值,则KPI为0,否则KPI为1。

2)指标模型数据源KPI

当KPI数据源选择了指标模型时,KPI无需配置实体KPI计算方式,实体拆分配置对该类型KPI也没有影响(指标模型配置了实体拆分则会计算出实体KPI)。

► KPI严重性

不同场景下所定义的KPI数值大小具有不同的含义,为了更直观的描述服务健康状况,还可以设置【KPI阈值】从而将KPI数值映射为不同的严重性等级(正常、警告和严重)。

 

服务依赖

服务依赖包括依赖实体和依赖服务,两者二选一。依赖实体是指服务在计算KPI、服务健康分数时将进行实体拆分,服务计算相关指标时将按host字段拆分,得到实体级别的服务健康度指标,即实体KPI和实体服务健康分数。如:某个分布式服务由多台主机提供,那么在服务建模时可设置服务依赖类型为依赖实体,以主机识别字段host作为实体拆分字段。依赖服务是指服务在计算服务健康分数时会依赖其他服务健康分数,即服务健康分数会由KPI和依赖服务加权计算得到。

 

服务可用性

服务可用性配置中,可设置服务健康分数阈值,从而计算服务的严重等级。当服务严重等级为严重时,则此服务是不可用的,否则服务可用。

► 服务健康分数

通过定义多个KPI可以从不同维度描述服务状态,除此之外,服务还可以依赖其他服务,通过设置这些KPI和依赖服务的权重值(关键依赖项直接影响服务健康分数,即任一关键依赖项的严重等级为严重时,则此服务的健康分数为0分!),服务健康分数的计算公式如下:

其中,是依赖服务的健康分数或KPI分数(由KPI严重性折算得到:正常:100分,警告:60分,严重:0分),的权重值,是所有KPI和依赖服务(除关键依赖项外)的权重和。

► 服务严重等级

服务严重性由服务健康分数折算得到,即基于上述公式计算出服务健康分数后,可设置服务健康分数阈值区间来计算服务的严重等级。服务最多可设置三个服务健康分数阈值区间,每个阈值区间可任意选择正常、警告和严重三个严重等级。

 

服务SLO分析

SLO分析用于复盘服务在某段时间内的可用性水平,其核心概念包括三个:SLI、SLO和错误预算。

► SLI

服务质量指标(Service Level Indicator,SLI),描述一段时间内服务可用性水平,即服务可用时间占比。

► SLO

服务质量目标(Service Level Objective,SLO)用于定义SLI目标值,SLO明确了服务使用者对服务质量的期望水平。当SLI≥SLO时,表示达成SLO,即实际服务质量满足服务使用预期,否则,表示未达成SLO。

► 错误预算

错误预算是指在达成SLO的前提下,允许服务处于不可用状态的时间。错误预算的计算公式为:

其中,SLI为实际服务可用性水平,SLO为预期服务可用性水平,T为分析时间窗口。