OpenTelemetry 采用持续分析;Elastic 捐赠其代理

OpenTelemetry 引入持续性能分析作为核心信号

OpenTelemetry 宣布将持续性能分析(Continuous Profiling)作为其核心遥测信号之一,并接受了 Elastic 捐赠的持续性能分析代理。这一举措标志着 OpenTelemetry 在遥测领域的进一步扩展,使其能够更全面地支持应用程序的运行时行为分析。

Elastic 捐赠的 eBPF 基础分析代理

Elastic 捐赠的代理基于 eBPF 技术,具有以下关键特性:

  • 低性能影响:CPU 使用率约为 1%。
  • 无需代码插桩、重新编译或服务重启:减少了传统性能分析方法对系统的干扰。
  • 支持多种编程语言和运行时:能够分析第三方库和内核操作。
  • 全系统、持续分析能力:提供对应用程序运行时行为的全面可见性。

该代理能够识别非最优代码路径,并加速性能分析作为 OpenTelemetry 的第四大核心信号(除追踪、指标和日志之外)的采用。

持续性能分析的优势

持续性能分析解决了传统性能分析方法的多个局限性:

  • 消除了服务重启的需求。
  • 减少了代码插桩带来的性能开销。
  • 提供了对第三方库的可见性,这些库以往难以分析。

OpenTelemetry 性能分析集成的发展

OpenTelemetry 的性能分析特别兴趣小组(SIG Profiles)在集成性能分析时面临了多个关键决策:

  1. 是否基于现有数据模型或创建全新模型。
  2. 如何平衡特定领域的性能分析惯例与 OpenTelemetry 的框架惯例。
  3. 选择适当的现有性能分析格式作为基础。

性能分析数据的集成与 OpenTelemetry Collector 的其他信号类似,数据被摄取并解构为内部的 "pdata" 格式,随后与其他遥测信号统一处理。

持续性能分析的潜在用例

持续性能分析不仅限于传统的性能和成本分析,还可应用于:

  • 信号关联:将性能数据与其他遥测信号结合分析。
  • 事件响应:快速识别和解决性能问题。
  • 资源消耗分析:详细分析 CPU、内存、互斥锁竞争和网络抖动等问题。

eBPF 技术在性能分析中的应用

eBPF 技术使得系统范围内的性能分析成为可能,尽管在符号管理和运行时兼容性方面仍存在挑战。

行业趋势与竞争

OpenTelemetry 引入持续性能分析符合行业趋势,多家初创公司和主要观察性供应商已进入这一领域。其他竞争产品包括 Polar Signals 的 Parca Agent 和 Grafana 的 Pyroscope。

社区讨论与未来发展

在 Reddit 上,用户 SuperQue 指出 OpenTelemetry 此前缺乏持续性能分析功能,认为这是其弱点之一。OpenTelemetry 社区通过引入持续性能分析,旨在减少对专有 APM 代理的依赖,并增强工程师识别资源密集型代码的能力。

此外,OpenObservability Talks YouTube 频道发布了一段视频,深入讨论了将持续性能分析集成到 OpenTelemetry 中的过程,包括采用扩展的 pprof 格式("pprof-extended")作为标准,并探讨了支持多种性能分析格式的可能性。

总结

OpenTelemetry 通过引入持续性能分析,进一步完善了其遥测能力。Elastic 捐赠的 eBPF 基础代理为系统提供了高效、低开销的性能分析解决方案。这一进展不仅提升了性能分析的实用性,还推动了 OpenTelemetry 在观察性领域的广泛应用。

阅读 23
0 条评论