OpenTelemetry入门看这一篇就够了

分布式跟踪可以帮助查看整个请求过程中服务之间的交互,并可以让我们深入了解系统中请求的整个生命周期 。它帮助我们发现应用程序中的错误、瓶颈和性能问题 。OpenTelemetry 可以用于从应用程序收集数据 。它是一组工具、API 和 SDK 集合,我们可以使用它们来检测、生成、收集和导出遥测数据(指标、日志和追踪),以帮助分析应用的性能和行为 。

OpenTelemetry入门看这一篇就够了

文章插图
这篇文章旨在让您对 OpenTelemetry 有基本的了解 。将涵盖的主题有:
  • 分布式追踪
  • OpenTelemetry 是什么?
  • OpenTelemetry 检测(自动和手动)
  • OpenTelemetry 协议(OTLP)
  • OpenTelemetry Collectors
  • OpenTelemetry Collectors 部署模式
  • OpenTelemetry 后端
  • OpenTelemetry on Kube.NETes
  • OpenTelemetry Operator
  • OpenTelemetry 示例应用程序
在本文结束时,您将了解如何使用 OpenTelemetry Operator 在应用程序中实现跟踪,而无需更改任何代码 。
分布式追踪让我们首先了解一下什么是分布式跟踪以及我们为什么需要它 。
为什么我们需要追踪?我们需要为什么分布式追踪?为什么我们不能只使用指标和日志呢?假设你有一个如下所示的微服务架构 。
OpenTelemetry入门看这一篇就够了

文章插图
现在想象一下来自客户端的请求 。
从上面的架构图中我们可以看出,一个请求可能要经过几十个或几百个网络调用 。这使得我们很难知道请求所经过的整个路径,如果只有日志和指标,那么故障排查会非常复杂 。
当我们的应用出现问题时,我们需要解决很多问题 。
  • 我们如何找出根本原因?
  • 我们如何监视它所经过的所有服务?
分布式跟踪可以帮助查看整个请求过程中服务之间的交互,并可以让我们深入了解系统中请求的整个生命周期 。它帮助我们发现应用程序中的错误、瓶颈和性能问题 。
追踪从用户与应用程序进行交互的一刻开始,我们应该能够看到整个请求直到最后一层 。
跟踪数据(以 span 的形式)生成信息(元数据),可以帮助了解请求延迟或错误是如何发生的,以及它们对整个请求会产生什么样的影响 。
OpenTelemetry入门看这一篇就够了

文章插图
如果你想了解有关分布式跟踪的更多信息,请阅读分布式跟踪初学者指南,了解如何监控微服务架构 。
如何实现追踪?为了实现追踪,我们需要做以下几件事:
  • 检测我们的应用程序 。
  • 收集和处理数据 。
  • 存储和可视化数据,以便我们可以查询它 。
为此我们可以使用两个开源项目:OpenTelemetry 和 Jaeger 。
OpenTelemetry入门看这一篇就够了

文章插图
OpenTelemetry 是什么?OpenTelemetry 可以用于从应用程序收集数据 。它是一组工具、API 和 SDK 集合,我们可以使用它们来检测、生成、收集和导出遥测数据(指标、日志和追踪),以帮助分析应用的性能和行为 。
OpenTelemetry入门看这一篇就够了

文章插图
OpenTelemetry 是:
  • 开源的
  • 受到可观测领域行业领导者的采用和支持
  • 一个 CNCF 项目
  • 与供应商无关的
OpenTelemetry 包括可观测性的三个支柱:追踪、指标和日志 。(本文将重点关注追踪)
  • 分布式追踪是一种跟踪服务请求在分布式系统中从开始到结束的方法 。
  • 指标是对一段时间内活动的测量,以便了解系统或应用程序的性能 。
  • 日志是系统或应用程序在特定时间点发生的事件的文本记录 。
OpenTelemetry 与供应商无关OpenTelemetry 提供了一个与供应商无关的可观测性标准,因为它旨在标准化跟踪的生成 。通过 OpenTelemetry,我们可以将检测埋点与后端分离 。这意味着我们不依赖于任何工具(或供应商) 。


推荐阅读