Elastic 将其通用性能分析代理贡献给 OpenTelemetry

Elastic 通过贡献其通用性能分析代理来推进 OpenTelemetry 的采用。Elastic 致力于通过 OpenTelemetry 确保对可观测性和安全遥测数据进行供应商无关的摄取和收集。

Elastic contributes its Universal Profiling agent to OpenTelemetry

在 Elastic 和 OpenTelemetry 的性能分析社区之间经过深入的审查流程,进行了良好的合作之后,OpenTelemetry 社区已接受 Elastic 捐赠的连续性能分析代理。这标志着将性能分析确立为 OpenTelemetry 中第四个遥测信号的一个重要里程碑。Elastic 基于 eBPF 的连续性能分析代理可在生产环境中以较低的 CPU 和内存开销观察跨不同编程语言和运行时、第三方库、内核操作和系统资源的代码。现在,SRE 可以从这些功能中获益:快速识别性能瓶颈、最大化资源利用率、减少碳足迹和优化云支出。在过去的一年中,我们在通过捐赠 Elastic Common Schema (ECS) 来增强 OpenTelemetry 的语义约定、为 OpenTelemetry Collector 和语言 SDK 做出了贡献,并且一直在与 OpenTelemetry 的性能分析特别兴趣小组 (SIG) 合作,为使性能分析稳定奠定必要的基础。

随着今天的接受,我们正式将我们的连续性能分析器技术贡献给 OpenTelemetry。我们还将专门一支性能分析领域专家团队来共同维护和推进 OTel 内的性能分析功能。

我们要感谢 OpenTelemetry 社区在捐赠提案方面的出色且建设性的合作。我们期待着共同将连续性能分析确立为 OpenTelemetry 的组成部分。

什么是连续性能分析?

性能分析是一种通过收集有关软件应用程序执行的信息来了解其行为的技术。这包括跟踪函数调用的持续时间、内存使用情况、CPU 使用情况和其他系统资源。

然而,传统的性能分析解决方案存在重大缺陷,限制了在生产环境中的采用

  • 由于代码检测而产生巨大的成本和性能开销
  • 服务重启具有破坏性
  • 无法了解第三方库

与通常仅在特定开发阶段或受控测试条件下进行的传统性能分析不同,连续性能分析在后台以最小的开销运行。这提供了实时的、可操作的见解,而无需在单独的环境中复制问题。SRE、DevOps 和开发人员可以了解代码如何影响性能和成本,从而更容易改进代码和基础设施。

生产级功能的贡献

Elastic 通用性能分析是一种全系统、始终在线的连续性能分析解决方案,无需进行代码检测、重新编译、主机调试符号或服务重启。借助 eBPF,Elastic 通用性能分析可以分析机器上运行的每一行代码,包括应用程序代码、内核和第三方库。该解决方案从 CPU 利用率、CO2 和云成本三个维度衡量代码效率,以帮助组织通过最大限度地减少计算浪费来管理高效的服务。

Elastic 性能分析代理有助于识别非最佳代码路径、发现“未知未知”,并提供对所有应用程序运行时行为的全面可见性。Elastic 的连续性能分析代理支持各种运行时和语言,例如 C/C++、Rust、Zig、Go、Java、Python、Ruby、PHP、Node.js、V8、Perl 和 .NET。

此外,组织可以通过最大限度地减少计算浪费来实现可持续发展目标,确保与他们的战略ESG目标无缝衔接。

OpenTelemetry 的优势

这一贡献不仅促进了可观测性连续性能分析的标准化,还加快了性能分析作为 OTel 中第四个关键信号的实际应用。客户获得了一种供应商无关的方式来收集性能分析数据,并能够与现有信号(如跟踪、指标和日志)进行关联,从而为可观测性见解和更高效的故障排除体验开启新的潜力

基于 OTel 的连续性能分析为用户解锁了以下可能性

  • 改善客户体验:通过连续性能分析提供一致的服务质量和性能,确保客户拥有一个以最佳方式运行、保持响应速度且可靠的应用程序。
  • 最大化毛利率:企业可以通过减少运行应用程序所需的计算资源来优化其云支出并提高盈利能力。全系统连续性能分析可以识别跨越多个云提供商的不同环境中成本最高的函数(精确到代码行)。在云环境中,节省的每一个 CPU 周期都转化为节省的资金。
  • 最大限度地减少环境影响:与计算相关的能源消耗是一个日益严重的问题(来源:麻省理工学院能源倡议)。更高效的代码转化为更低的能源消耗,从而减少碳 (CO2) 足迹。
  • 加速工程工作流程:连续性能分析提供详细的见解,以帮助更快地排除复杂的故障、指导开发并提高整体代码质量。
  • 提高供应商中立性和效率:基于 OTel eBPF 的性能分析代理无需使用专有的 APM 代理,并提供更有效的方式来收集性能分析遥测数据。

有了这些优势,客户现在可以管理云上的整体应用程序效率,同时确保他们的工程团队对其进行优化。

接下来是什么?

虽然接受 Elastic 捐赠的性能分析代理标志着 OTel 基于 eBPF 的连续性能分析功能的演变迈出了重要的一步,但这仅仅是更广泛旅程的开始。展望未来,我们将继续与 OTel 性能分析和收集器 SIG 密切合作,以确保性能分析代理在更广泛的 OTel 生态系统中无缝集成。在此阶段,用户可以通过遵循 otel-profiling-agent 存储库中的说明来测试 OTel 性能分析集成的早期预览版本。

Elastic 仍然坚定地致力于 OTel 实现跨信号关联的愿景。我们计划通过分享我们的创新研究和实施方案来进一步为社区做出贡献,特别是那些促进性能分析数据和分布式跟踪在多个 OTel 语言 SDK 和性能分析代理之间进行关联的方案。

我们对我们与 OTel 之间日益增长的关系以及以一种既能惠及 Elastic 社区又能惠及更广泛的 OTel 社区的方式捐赠我们的性能分析代理的机会感到兴奋。了解有关Elastic 的 OpenTelemetry 支持的更多信息,并了解如何为社区中正在进行的性能分析工作做出贡献。

其他资源

有关 Elastic 通用性能分析的更多详细信息,请参见常见问题解答

有关可观测性的见解,请访问可观测性实验室,其中还提供了 OTel 特定文章。

分享这篇文章