引言
全链路观测平台设计离不开基础数据的采集、提炼和呈现。本文就基础数据日志、指标、链路的采集原理进行梳理,如何将其关联最终提供辅助决策价值提点归纳。
一、数据采集
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.预测能力
- 基于历史数据沉淀算法模型预测未来可能发生的问题