FA6# 全链路观测平台设计点归纳

2022-01-04 11:51:15 浏览数 (1)

引言

全链路观测平台设计离不开基础数据的采集、提炼和呈现。本文就基础数据日志、指标、链路的采集原理进行梳理,如何将其关联最终提供辅助决策价值提点归纳。

一、数据采集

1.日志架构简图

统一日志: 标准化日志格式、链路ID透传、自定义检索标识

日志类型: 应用日志、中间件日志(RPC框架、消息、缓存、存储等)、网关日志、终端日志

收集策略: 例如根据IP、APP、文件等灵活管控,不同日志分类管理

数据清洗: 清洗重复非标准数据、重复数据、聚合高质量数据

存储数据: 区分哪些数据适合ES、哪些数据适合ClickHouse、哪些数据适合时序库

性能成本: 延迟问题、查询性能、存储成本

小结: 通过标准化的日志格式,多样化的收集策略,清洗成高质量数据为根因定位提供基础保障。

2.链路架构简图

采样策略

  • 固定采样率:保持固定采样的频率
  • 最低采样率:过低流量保证最低的采样率
  • 自适应采样率:根据流量自动适应采样率
  • 全部采样率:对应特高优先流量100%采样
  • 染色采样:对于染色打标的请求100%采样
  • 应急采样:请求传递过程中检测到错误或者异常,强制将该请求采样

动态设置

  • 采样率采样策略动态调整
  • 自杀熔断保护 不允许过度占用资源影响业务

小结: 链路采集和分析关键的点在于如何提供灵活的采样策略,将核心链路、异常链路能实现高质量采集。

二、数据关联

1.横向关联

横向关联:应用为维度通过调用关系将上下游关联,包括经过的网关、缓存(Redis等)、消息(RocketMQ、Kafka等)、存储资源(MySQL、Hbase、Mongo、ES等)。

指标(metrics):监控变化趋势以及基于趋势变化告警 如Micrometer,Prometheus格式指标数据的错误率变化

链路(Tracing): 微服务记录上下游服务调用与耗时,基于OpenTracing 和 OpenTelemetry 规范,例如 Jaeger

日志(Logging):日志采集,通过日志详细问题溯源

小结: 通过Tracing将Metrics和Logging进行关联,当指标波动触发告警能否智能关联的tracing,寻根通过Logging错误日志找出根因,为业务提供辅助决策。

2.纵向关联

垂直关联:应用维度包含依赖的容器、机器、CPU、带宽、磁盘、内存、消息资源(主题和消费组、集群)、缓存资源、数据库资源(表与实例等)、搜索资源(索引等)指标关联一站式展现。

三、辅助决策

1.数据质量

  • 指标埋点覆盖度
  • 链路采样策略的多样性
  • 日志清洗与提炼

2.告警质量

  • 告警信息能包含从指标到链路以及日志的清晰关联与日志信息,提高决策能力

3.分析能力

  • 沉淀问题分析的最佳实践库,将其自动化分析提升定位能力

4.自愈能力

  • 基于分析能力,沉淀自愈策略
  • 自愈策略的灵活配置

5.性能与稳定性

  • 采集延迟、计算能力、查询性能
  • 可视化观测平台自身的稳定性建设

6.可视化能力

  • 可观测一站式
  • 丰富图表与报表

7.预测能力

  • 基于历史数据沉淀算法模型预测未来可能发生的问题

0 人点赞