虎牙业务应用监控的标准化改造实践
项目背景
虎牙直播的可观测平台负责人匡凌轩主导了OpenTelemetry标准化改造项目,旨在解决现有监控方式多样、不标准化、难以通用的问题。项目需兼顾业务自定义和标准化需求,同时兼容新旧系统,实现统一转换和存储。
方案实践
-
Otel标准化思考:
- 基于业界标准Otel,采用组件化设计。
- 解决存量和增量上报兼容问题,设计Otel Metrics统一方案。
- 构建统一链路架构,包括:
- Receiver:支持老协议和Otel上报。
- Processor:验证、清洗、转换数据。
- Exporter:转换OTLP后统一输出到Kafka。
-
元数据分析设计:
- 设计元数据模块,支持多协议、可配置化数据处理。
- 数据处理组件包括:
- Process:Batch、Step、Expired等。
- Filter:BloomFilter、RestfulURI等。
- Storage:Mysql、GraphDB等。
- Expression:SpEL、JsonPath等。
- Mapping:SPI、Bytecode、Reflect等。
- Manage:Grayscale、Sampled等。
- Type:Metric、Trace、Log等。
- Protocol:Kafka、Http、Grpc等。
- Data:Json、Otlp、Text等。
-
告警模块设计:
- 指标可视化、业务告警、多维下钻。
- RPC主被调下钻分组展示。
- 业务自定义指标多维根因下钻。
效果展示
- 接入零成本:通过框架集成和字节码植入实现。
- 接入效率问题:解决重复开发、提高复用性。
- 业务覆盖率:支持多种语言框架和应用服务。
- 告警根因定位:通过告警分析和多维下钻实现。
未来展望
- 基于Otel可观测元数据自动分析。
- Otel生态贡献:Meta Analyser等更多生态组件展望。
总结
项目通过OpenTelemetry标准化改造,实现了监控方式的统一和标准化,提高了接入效率和业务覆盖率,并通过告警模块设计优化了根因定位能力。未来将基于Otel生态进一步拓展功能,提升可观测平台能力。