云原生时代的可观测系统最佳实践 指标采集模型的设计
云原生时代的可观测系统最佳实践 指标采集模型的设计一、参考资料书名《云原生时代的可观测系统最佳实践》二、笔记总结5.1 指标采集模型的设计5.1.1 指标数据的分类云原生系统大致分为5层这5层就是系统指标的来源。根据不同层次的业务形态可以将指标分为5个业务维度云和基础设施指标、系统和容器指标、中间件指标、业务框架指标、业务指标。(1)云和基础设施指标建立在云上的可观测系统也无法采集这部分数据通常这部分设施的维护由云服务厂商提供。(2)系统和容器指标目前大部分云上的应用都使用容器部署容器化也是云原生的一个关键要素。容器化的主要优点就是部署方便资源的利用率高可移植性强。容器化的缺点是增加了系统的复杂度。对于使用者来说容器是一个黑盒当某些容器本身出现问题时需要与容器相关的人员协助解决。在可观测系统中通过了解容器的相关指标能快速了解容器集群的健康情况。(3)中间件指标间件指标包括系统中所有使用到的中间件如常见的数据库MySQL和Redis以及消息中间件Kafka和RocketMQ等。将中间件相关指标接入可观测系统中有助于业务团队对其业务场景进行优化。(4)业务框架指标业务框架指标包括业务使用到的所有相关框架如RPC通信的监控包括URL请求量、请求耗时和请求错误率等MySQL客户端的监控包括SQL语句的性能监控。业务团队的监控系统通常只包含这一层的部分指标。(5)业务指标业务指标是指具有业务含义的指标这部分指标通常需要具体的业务研发人员进行埋点采集。例如电商系统对订单量和支付情况的监控具有业务含义需要根据业务量身定制。将业务指标接入可观测系统中可以为业务分析、业务发展提供强有力的数据支持。从系统状态的表现能力来看指标可以分为延迟、流量、错误和饱和度4个类型这4个类型的指标被称作四大黄金指标。(1)延迟延迟是指某个操作从发起到结束所花费的时间既可以是用户的操作又可以是系统自发的操作。例如用户查询商品信息从用户点击商品到页面展示出这个商品的信息所花费的这段时间就叫作延迟。如果延迟太大就会造成用户点击商品后一直看不到商品信息从而影响用户体验导致用户没有看到信息可能就退出了这个页面使商家失去了一次潜在的商机。(2)流量流量通常是指系统中的网络流量包括应用服务的流量、数据库的流量和消息队列的流量等。流量通常可以用应用的QPS或TPS来体现。QPS是指一个服务每秒能响应的请求数。TPSTransactions Per Second每秒事务数是指系统每秒能处理的事务数。事务可以是一个或多个接口每个接口可以经过不同数量的服务。(3)错误错误是表现系统出现问题的最直观的指标同时会极大地影响用户的体验感。根据错误指标能直接找到错误发生的位置进而定位产生错误的原因以消除错误。(4)饱和度饱和度是指资源负载的情况包括CPU、内存、磁盘和带宽的使用情况等。5.1.2 指标数据的语义规范指标由维度、度量方式、度量值、度量时间和度量周期5个要素组成。维度即指标的统计维度代表指标的业务属性如服务请求量服务就是这个指标的维度度量方式即指标统计的计算方式如请求量采用的是求和的计算方式度量值即指标根据维度和度量方式计算出来的结果度量时间即指标采集的时间度量周期即指标所计算的统计值的时间范围。常用的指标命名规则是“限定词业务主题统计对象量化词”。限定词用来对指标进行限定约束如当天、本月和平均等业务主题用来描述业务处于哪个过程中统计对象是指指标统计的对象如用户数用户就是统计对象量化词就是指标值的单位如请求数中的“数”就是量化词请求率中的“率”也是量化词。例如当天服务请求数“当天”是限定词“服务”是业务主题“请求”是统计对象“数”是量化词。在真实场景中可能没有限定词如CPU使用率。指标维度用来描述和限定指标的属性。要具有唯一性和可读性以避免歧义。不同的指标可能会使用相同的维度