OpenTelemetry原理及实战

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 简介 OpenTelemetry 是一个开源的可观测性框架,它提供了一系列工具、API 和 SDK,用于收集、处理和导出遥测数据,如追踪(traces)、指标(metrics)和日志(logs)。OpenTelemetry 的目标是提供一个与供应商无关的、跨平台的解决方案,以帮助开发者和运维人员监控和分析分布式系统的性能和行为。 1.1 OpenTelemetry的终极目标 OpenTelemetry的终极目标了:实现Metrics、Tracing、Logging的融合及大一统,作为APM的数据采集终极解决方案。 Tracing:提供了一个请求从接收到处理完成整个生命周期的跟踪路径,一次请求通常过经过N个系统,因此也被称为分布式链路追踪 Metrics:例如cpu、请求延迟、用户访问数等Counter、Gauge、Histogram指标 Logging:传统的日志,提供精确的系统记录 三者的组合可以形成大一统的APM解决方案: 基于Metrics告警发现异常 通过Tracing定位到具体的系统和方法 根据模块的日志最终定位到错误详情和根源 1.2 核心工作 标准 + 通用实现 OpenTelemetry的核心工作目前主要集中在3个部分: 规范的制定和协议的统一,规范包含数据传输、API的规范,协议的统一包含:HTTP W3C的标准支持及GRPC等框架的协议标准 多语言SDK的实现和集成,用户可以使用SDK进行代码自动注入和手动埋点,同时对其他三方库(Log4j、LogBack等)进行集成支持; 数据收集系统的实现,当前是基于OpenCensus Service的收集系统,包括Agent和Collector。 1.3 数据模型 1.3.1 Span SpanKind Status只有3种状态 // The default status. STATUS_CODE_UNSET = 0; // The Span has been validated by an Application developer or Operator to // have completed successfully. STATUS_CODE_OK = 1; // The Span contains an error. STATUS_CODE_ERROR = 2; ...

March 7, 2024 · 2 min