帮助手册

eBPF-APM

Site24x7 的 eBPF-APM 是一种现代可观测性方案,提供了一种简便的方式,可在 Linux 内核级别使用 eBPF 监控应用程序性能。扩展伯克利数据包过滤器(eBPF)是内置于 Linux 内核的一项技术,可让您实时观察系统内部发生的情况。它无需更改应用程序代码或修改内核本身,即可跟踪进程活动、网络调用和系统操作等事件。

在 eBPF-APM 的应用场景中,eBPF 直接从操作系统收集性能数据,以极小的开销测量延迟、吞吐量和错误等指标。由于 eBPF-APM 会自动收集内核级指标,因此无需更改代码或进行复杂的插桩操作,即可实时了解应用程序的性能状况。

简而言之,eBPF 是使 eBPF-APM 能够高效监控应用程序而无需传统 APM 代理的底层技术。

支持的应用程序:Java、Node.js 和 Python。

使用场景

在大型电子商务应用中,搜索、购物车、支付和库存等多个微服务在 Linux 服务器上协同运行。跨多个服务和技术进行监控管理可能需要额外的配置和协调工作。

在此类场景中,eBPF-APM 通过自动观察所有运行中的服务,无需单独配置或更改代码,从而简化了监控工作。借助 Linux 内核中的 eBPF,eBPF-APM 从单一点收集所有服务的性能数据。它还能映射服务依赖关系,帮助团队快速定位导致延迟或性能问题的服务,使故障排除更加快速便捷。

eBPF-APM 与传统 APM 的对比

下表对比了 eBPF-APM 和传统 APM,帮助您了解两者的主要差异,并确定最适合您需求的方案。

对比维度 eBPF-APM 传统 APM
安装方式 使用单一代理在主机层面启用。 需要为每个应用程序安装特定语言的代理。
代码变更 无需更改代码。 需要更改配置或运行时参数。
应用重启 不需要。 在代理安装或配置更改期间通常需要重启。
可见性级别与指标 使用 eBPF 收集内核级指标,提供系统和进程级别的可见性。 通过代码插桩收集深层应用级指标,提供详细的事务和方法级别可见性。
适用场景 混合环境、容器化场景、快速获取可见性。 详细的请求跟踪,以及定位应用程序代码内部的问题。

如何在 Site24x7 中启用 eBPF-APM

以下是在 Site24x7 控制台中启用 eBPF-APM 的前提条件和步骤。

前提条件

启用 eBPF-APM 的步骤

  1. 导航至管理 > 服务器监控 > APM Insight 进程监控规则,启用基于 eBPF 的 APM。
  2. 新建规则或编辑现有规则。
  3. 监控代理字段中选择 eBPF 选项。
  4. 完成后,点击保存以应用更改。
  5. 重启您的应用程序。

之后,Site24x7 将自动监控符合此规则的应用程序,无需进行任何代码更改。

eBPF-APM 的优势

eBPF-APM 为应用程序监控提供了多项实用优势。以下是其主要优势:

  • 自动发现:自动监控所有应用程序,包括未知工作负载,无需预先配置。
  • 无需代码变更:不需要更改代码,确保监控安全且无侵入性。
  • 快速部署:快速启用监控;无需更改代码或重新部署服务。
  • 高效监控:以对应用程序性能几乎无影响的方式收集性能指标。

常见问题

  1. eBPF-APM 能否监控 Kubernetes 工作负载?
    可以。eBPF-APM 能够在主机层面观察容器化应用程序,并帮助映射 Kubernetes 环境中的服务依赖关系。

  2. eBPF-APM 收集哪些类型的指标?
    eBPF-APM 无需任何代码插桩即可收集应用级指标。

  3. 如果 Linux 内核不支持 eBPF,会发生什么?
    如果内核版本或配置不支持 eBPF,eBPF-APM 将无法正常运行。请确保系统满足最低内核要求。

  4. 如何卸载 eBPF-APM?
    eBPF-APM 是 Full-Stack Agent 的一部分,无法单独卸载。要停止 eBPF-APM,请禁用 APM Insight 进程监控规则,或从主机卸载 Full-Stack Agent。

    注意

    对进程监控规则配置所做的任何更改,都需要重启应用程序才能生效。

  5. 从 eBPF-APM 切换到传统 APM 监控会发生什么?
    当您从 eBPF-APM 切换到传统 APM 监控时,Site24x7 将停止使用 eBPF,转而使用特定平台的 APM 代理来监控您的应用程序。

相关文章

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!