OpenTelemetry: Profiling 进展

文摘   2024-10-29 09:26   中国香港  

作者:Damien Mathieu (Elastic), Pablo Baeyens (Datadog), Felix Geisendörfer (Datadog), Christos Kalkanis (Elastic), Morgan McLean (Splunk), Florian Lehner (Elastic), Tim Rühsen (Elastic)

六个多月前,OpenTelemetry 宣布支持 profiling 信号。虽然该信号仍在开发中,尚不建议用于生产环境,但 Profiling SIG 在多个方面取得了显著进展。

本文总结了 Profiling SIG 在过去六个月中的进展。

OTLP 改进

在 v1.3.0 中,Profiles 给添加为 OTLP 的新信号类型,但这一领域仍被标记为不稳定,因为我们仍在进行更改。

我们最初的目标是保持与 pprof 的兼容性,但这一目标被证明不切实际。因此,Profiling SIG 决定重构协议,不再追求与 pprof 的严格兼容。相反,我们将追求可转换性,类似于我们在其他信号中的做法。这一转变仍在进行中,并导致了协议 profiling 部分的一些重大变化。请注意,这不会影响构成 OTLP 协议大部分的稳定部分,如指标、跨度、日志、资源等。

eBPF 代理改进

在六月,Elastic Continuous Profiling Agent 的捐赠完成。从那时起,opentelemetry-ebpf-profiler 仓库一直在进行改进。

我们对 eBPF 代理的下一个目标是让其作为 Collector 接收器运行。一旦完成,Collector 就可以在每个节点上作为代理运行,收集该主机的 profiles 并使用 OTLP 转发。这种架构将允许我们提取一些不是严格意义上 profiling 的特定部分,例如检索主机元数据和系统指标,并将其转移到处理器上,从而使代理更轻、更模块化。

Collector 支持

自 v0.112.0 起,OpenTelemetry Collector 能够接收、处理和导出 profiling 数据,并支持使用 OTLP 进行 profile 吸收和导出。

你可以通过在 Collector 中启用 service.profilesSupport 功能门,按照以下类似配置进行尝试,该配置使用 OTLP 吸收和导出数据:

receivers:
  otlp:
    protocols:
      grpc:
exporters:
  otlp:
    endpoint: 'localhost:4317'
service:
  pipelines:
    profiles:
      receivers: [otlp]
      exporters: [otlp]

虽然现在可以在 Collector 中使用此功能,但我们尚不建议在生产环境中使用:该功能仍在积极开发中,预计会有重大变化,如上文提到的与 OTLP 的变化。

然而,Collector 中的这一支持意味着 Collector 的任何接收器、处理器或导出现在都可以开始添加 profiles 支持,我们强烈鼓励这样做,以便未来更顺利地集成,并提前发现潜在问题。如果你希望报告错误或参与该工作,可以在贡献仓库中查看相关信息。

语义约定和规范

为了提高互操作性,Profiling SIG 还致力于 profiling 的 OpenTelemetry 语义约定。同时,正在进行引入 profiling OpenTelemetry 规范的工作。这项工作将继续进行,并应促进不同平台、工具和其他 OTel 信号的广泛采用。

接下来是什么?

OpenTelemetry 中对 profiles 的支持进展非常迅速,尽管我们仍远未能够提供稳定信号,但我们很高兴地报告,大家可以开始进行实验,并将其集成到自己的模块中。

如果你有兴趣帮助推进 profiling,或在集成过程中遇到问题,Profiling SIG 始终乐于提供帮助。

你可以在 CNCF slack 的 #otel-profiles 找到我们。


点击【阅读原文】阅读网站原文


CNCF概况(幻灯片)

扫描二维码联系我们!




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。

CNCF
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
 最新文章