云原生技术组件之OpenTelemetry(一)

概念

官方网站 :https://opentelemetry.io/
OpenTelemetry 是工具、API 和 SDK 的集合。使用它来检测、生成、收集和导出遥测数据(指标、日志和跟踪,即metric、log、trace),以帮助您分析软件的性能和行为
OpenTelemetry 提供与 vendor 无关的实现,根据用户的需要将观测类数据导出到不同的后端,如开源的 Prometheus、Jaeger 或云厂商的服务中。
OpenTelemetry 不提供与可观测性相关的后端服务,这类后端服务通常提供的是存储、查询、可视化等服务。

应用可观测性

云原生可观测性包含:
1) Tracing:提供了一个请求从接收到处理完成整个生命周期的跟踪路径,一次请求通常过经过N个系统,因此也被称为分布式链路追踪
2)Metrics:例如cpu、请求延迟、用户访问数等Counter、Gauge、Histogram指标
3)Logging:传统的日志,提供精确的系统记录

OpenTelemetry解决的问题

实现Metrics、Tracing、Logging的融合及大一统,这三者的组合可以形成大一统的APM解决方案:
基于Metrics告警发现异常
通过Tracing定位到具体的系统和方法
根据模块的日志最终定位到错误详情和根源
调整Metrics等设置,更精确的告警/发现问题

术语

如果刚接触 Opentelemetry,那么需要了解如下术语:
● Traces:记录经过分布式系统的请求活动,一个 trace 是 spans 的有向无环图
● Spans:一个 trace 中表示一个命名的,基于时间的操作。Spans 嵌套形成 trace 树。每个 trace 包含一个根 span,描述了端到端的延迟,其子操作也可能拥有一个或多个子 spans。
● Metrics:在运行时捕获的关于服务的原始度量数据。Opentelemetry 定义的 metric instruments(指标工具) 如下。Observer 支持通过异步 API 来采集数据,每个采集间隔采集一个数据。
● Context:一个 span 包含一个span context,它是一个全局唯一的标识,表示每个 span 所属的唯一的请求,以及跨服务边界转移 trace 信息所需的数据。OpenTelemetry 也支持correlation context,它可以包含用户定义的属性。correlation context不是必要的,组件可以选择不携带和存储该信息。
● Context propagation:表示在不同的服务之间传递上下文信息,通常通过 HTTP 首部。 Context propagation 是 Opentelemetry 系统的关键功能之一。除了 tracing 之外,还有一些有趣的用法,如,执行 A/B 测试。OpenTelemetry 支持通过多个协议的 Context propagation 来避免可能发生的问题,但需要注意的是,在自己的应用中最好使用单一的方法。

如何使用 OpenTelemetry

OpenTelemetry APIs 和 SDKs 有很多快速使用指南和文档帮助快速入门,如Java 快速指南展示了如何获取跟踪程序、创建 spans、添加属性,以及跨不同 spans 传递 context。
将 OpenTelemetry trace APIs 插装到应用程序后,就可以使用预先编译好的OpenTelemetry 库中的 exporters 将 trace 数据发送到观测平台,如 New Relic 或其他后端。
metrics 和 logs 的规范仍在开发阶段,但一旦完成,它们将在实现 OpenTelemetry 的主要目标中发挥重要作用:确保库和框架包含所有内置的遥测数据类型,使开发人员无需进行检测即可提取遥测数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值