Skip to content

探针框架与生命周期 ​

相关源文件

以下文件被用作生成此维基页面的上下文:

目的与范围 ​

本文档详细介绍了 eCapture 核心 TLS 探针(openssl 和 gotls)的架构框架与生命周期管理。内容涵盖了探针工厂注册、通过 BaseProbe 进行的嵌入与委托、配置校验、eBPF 字节码解析、管理器挂载、事件读取器追踪以及优雅停机工作流。

Sources:


工厂注册与实例化 ​

具体的探针会向应用工厂注册,并暴露构造函数,用于初始化带有适当元数据和内部调度结构的探针实例。

OpenSSL 和 GoTLS 探针嵌入了 base.BaseProbe,并建立了内部映射表,用于将 eBPF 事件路由到各自的解码器。

Sources:


BaseProbe 生命周期与初始化 ​

任何核心 TLS 探针的生命周期都始于 Initialize(ctx, cfg)。具体探针通过将共享的校验和调度器设置委托给 base.BaseProbe.Initialize() 来实现该方法。

在初始化期间,会进行配置校验、配置运行日志记录器、解析字节码选择模式,并实例化一个带有适当文本或发布者处理程序的事件调度器。

Sources:


eBPF 挂载与管理器设置 ​

初始化完成后,探针的 Start(ctx) 方法会驱动加载 eBPF 字节码资产、初始化 ebpfmanager.Manager、挂载 kprobes/uprobes 并获取事件映射表(maps)。

字节码资产根据 BTF 和编译时模式配置进行动态选择,从嵌入的资产中读取,并通过 ebpfmanager 加载到内核中。

Sources:


读取器追踪与事件解码 ​

在 eBPF 管理器成功挂载探针并启动后,从管理器实例中获取事件映射表并与相应的解码器配对。StartPerfEventReader 会启动后台读取循环,从 perf 或 ring buffer 中拉取事件。

Sources:


并发、停机与资源清理 ​

探针的卸载由 Stop(ctx) 和 Close() 管理。BaseProbe 以原子方式管理运行状态,而具体探针则确保通过 manager.CleanAll 停止 eBPF 管理器以卸载探针并释放映射表,同时关闭文件句柄或读取器。

Sources:

探针框架与生命周期 has loaded
下载