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 的前提条件和步骤。
前提条件
- Linux 内核版本必须为 4.16 或更高。
- 必须以 root 用户权限安装 Site24x7 Full-Stack Agent 和 Auto Profiler。
启用 eBPF-APM 的步骤
- 导航至管理 > 服务器监控 > APM Insight 进程监控规则,启用基于 eBPF 的 APM。
- 新建规则或编辑现有规则。
- 在监控代理字段中选择 eBPF 选项。

- 完成后,点击保存以应用更改。
- 重启您的应用程序。
之后,Site24x7 将自动监控符合此规则的应用程序,无需进行任何代码更改。
eBPF-APM 的优势
eBPF-APM 为应用程序监控提供了多项实用优势。以下是其主要优势:
- 自动发现:自动监控所有应用程序,包括未知工作负载,无需预先配置。
- 无需代码变更:不需要更改代码,确保监控安全且无侵入性。
- 快速部署:快速启用监控;无需更改代码或重新部署服务。
- 高效监控:以对应用程序性能几乎无影响的方式收集性能指标。
常见问题
-
eBPF-APM 能否监控 Kubernetes 工作负载?
可以。eBPF-APM 能够在主机层面观察容器化应用程序,并帮助映射 Kubernetes 环境中的服务依赖关系。 -
eBPF-APM 收集哪些类型的指标?
eBPF-APM 无需任何代码插桩即可收集应用级指标。 -
如果 Linux 内核不支持 eBPF,会发生什么?
如果内核版本或配置不支持 eBPF,eBPF-APM 将无法正常运行。请确保系统满足最低内核要求。 -
如何卸载 eBPF-APM?
eBPF-APM 是 Full-Stack Agent 的一部分,无法单独卸载。要停止 eBPF-APM,请禁用 APM Insight 进程监控规则,或从主机卸载 Full-Stack Agent。注意对进程监控规则配置所做的任何更改,都需要重启应用程序才能生效。
-
从 eBPF-APM 切换到传统 APM 监控会发生什么?
当您从 eBPF-APM 切换到传统 APM 监控时,Site24x7 将停止使用 eBPF,转而使用特定平台的 APM 代理来监控您的应用程序。
