OpenTelemetry 宣布,它已经将持续剖析(Continuous Profiling) 作为 核心的遥测信号,而 Elastic 已将其持续剖析代理捐赠给了 OpenTelemetry 项目。
Elastic 的捐赠为 OpenTelemetry 生态系统引入了一种基于 eBPF 的生产级持续剖析代理。该代理以最小的开销提供全系统、始终在线的剖析功能,解决了传统剖析方法的许多局限性。这一贡献是在 2023 年 3 月合并了剖析数据模型 OTEP(OpenTelemetry 增强提案)之后做出的,并且 正在努力为 OpenTelemetry 中的剖析建立一个稳定的规范和实现。其主要特性包括:
低性能影响,大约 1% 的 CPU 使用率
无需代码插装、重新编译或重新启动服务
支持多种编程语言和运行时
能够观测第三方库和内核操作
该代理的功能包括识别非最优代码路径,并提供对应用程序运行时行为的全面可视化。这一贡献将加速剖析作为 OpenTelemetry 中的第四个关键信号的采用,与跟踪、指标和日志并列。
在可观测性系统中采用持续剖析解决了传统剖析方法的几个局限性。它消除了对中断服务重启的需求,降低了与代码插装相关的性能开销,并提供了对第三方库的可视化,之前很难对这些库进行剖析。
第二份公告提供了将剖析集成到 OpenTelemetry 的更广泛历程的背景。它详细地介绍了为剖析专门成立的特别兴趣小组(SIG)的情况,以及在 OpenTelemetry 框架内开发持续剖析标准化方法所面临的挑战。
SIG 剖析小组必须要做出的几个重要决策,包括:
是在现有数据模型的基础上构建,还是创建一个全新的数据模型
如何在特定于领域的剖析惯例和 OpenTelemetry 特定于框架的惯例之间保持平衡
选择合适的现有剖析格式作为基础
将剖析数据集成到 OpenTelemetry 收集器中所遵循的模式与其他信号的类似。数据被提取、解构成收集器的内部格式“pdata”,然后与其他遥测信号一起被统一处理。
持续剖析使许多用例超越了传统的性能和成本分析。这些包括信号相关性、事件响应和详细的资源消耗分析。该技术在识别 CPU 峰值、内存问题、互斥争用和网络抖动等问题方面显示出了良好的前景。在 OpenTelemetry 中添加持续剖析将有助于工程师识别资源密集型代码,并通过减少对专有 APM 代理的依赖来提高供应商中立性。
另一个重要的趋势是将 eBPF 技术集成到剖析解决方案中,比如 Elastic 捐赠的代理。eBPF 允许以最小的开销进行全面的系统范围内的剖析,尽管它在符号管理和运行时兼容性方面存在挑战。
在关于说服组织采用 OpenTelemetry 的讨论中,Reddit 上的用户 SuperQue 强调了 OpenTelemetry 之前缺乏持续剖析的一个弱点:
“坦率地说,我还没有看到 Otel 的好处。我们花了几个月的时间来部署它,完成了所有的后端存储设置(clickhouse)。但实际上,它并没有比我们使用的 Prometheus 库提供更多的额外价值。实际上,我更期待持续剖析工具,而不是比 Otel。Polar Signals 和 Pyroscope 产生的数据看起来能更详细地告诉我们代码的哪些部分运行缓慢。似乎比跟踪所提供的信息更有用。”
OpenTelemetry 社区对持续剖析的采用与不断增长的行业趋势保持一致。最近,一些初创公司和主要的可观测性供应商进入了这一领域,他们认识到了与其他遥测信号关联时剖析数据的价值。该领域还有其他的持续剖析代理,如 Polar Signals 的 Parca Agent、 Grafana Alloy 和 Grafana Agent。
YouTube 频道 OpenObservability Talks 上发布的一段视频深入讨论了如何将持续剖析集成到 OpenTelemetry 中,该视频邀请了 来自 Datadog 的专家 Felix Geisendörfer 和来自 Grafana Labs 的 Ryan Perry 参与讨论。他们讨论了剖析从性能和成本分析工具到关键可观测性信号的演变过程,以及日志、指标和跟踪,并介绍了 OpenTelemetry 增强提案(OTEP)的剖析合并,该提案将剖析信号移至 OpenTelemetry 的实验阶段。他们解释了采用扩展版本的 pprof 格式(称为“pprof-extended”)作为 OTel 剖析数据标准的决定。他们接着强调了在平衡性能要求与 OTel 现有惯例方面的挑战,并讨论了支持多种剖析格式的可能性。他们还谈到了针对各种编程语言和运行时的参考实现开发。
作者介绍
Matt Saunders 通过 Adaptavist Group,帮助团队使用 DevOps 流程和工具快速高效地交付质量可靠的软件,同时最大程度地减少压力。他曾与大型的企业、小型初创企业、中小企业以及介于两者之间的所有企业合作过。同时他还管理着伦敦 DevOps 聚会小组,该小组有超过 1 万名成员,每月搜会举办一次非常受欢迎的行业活动。
原文链接:
https://www.infoq.com/news/2024/08/otel-continuousprofiling-elastic/
评论