当前位置:首页 >专题 >Go eBPF 内核可观测性与事件工程实践专题

Go eBPF 内核可观测性与事件工程实践专题
Go eBPF 内核可观测性与事件

Go eBPF 内核可观测性与事件工程实践专题

从 cilium/ebpf、bpf2go 到内核事件采集与故障定位
这个专题面向已经具备 Go 和 Linux 基础、希望深入可观测性与网络性能工程的开发者,围绕 cilium/ebpf 和真实内核事件建立从实验到排障的完整路线。

先掌握官方工具链

从 eBPF 概念到 Go 加载器

cilium/ebpf 官方 Go 库
外链

cilium/ebpf 官方 Go 库

纯 Go 方式读取、修改、加载 eBPF 程序并挂载到 Linux 内核钩子。
ebpf-go Getting Started
外链

ebpf-go Getting Started

从安装工具、编译 BPF 对象到 Go 程序加载的官方快速开始。
bpf2go 官方命令说明
外链

bpf2go 官方命令说明

把 C eBPF 源码编译并嵌入 Go 程序的生成工具文档。
cilium/ebpf Go Packages
外链

cilium/ebpf Go Packages

查看 Collection、Map、Program 和 Link 等核心 API。
Cilium BPF 与 XDP Reference Guide
外链

Cilium BPF 与 XDP Reference Guide

系统说明 BPF 架构、XDP、tc 和内核挂载点。
eBPF Docs
外链

eBPF Docs

覆盖 eBPF 程序类型、Map、Helper 与工具生态的社区权威资料。

按事件链阅读站内文章

从加载失败到用户态排障

bpf调用加载eBPF程序时参数列表太长怎么解决
文章

bpf调用加载eBPF程序时参数列表太长怎么解决

围绕 Go 调用 BPF 系统加载程序时的参数边界与错误定位。
eBPF LRU 哈希图中的元素被错误地驱逐出
文章

eBPF LRU 哈希图中的元素被错误地驱逐出

分析 LRU Hash Map 的淘汰行为和用户态观察方式。
ebpf 尾部调用无效即使 bpf 代码成功加载
文章

ebpf 尾部调用无效即使 bpf 代码成功加载

排查程序成功加载但 tail call 没有生效的场景。
移除BPF尾部程序以读取环形缓冲区
文章

移除BPF尾部程序以读取环形缓冲区

结合 tail program 与 ring buffer 读取行为定位程序被移除的问题。
创建 IP/CIDR 的最长前缀匹配(LPM)trie 记录片段的方法
文章

创建 IP/CIDR 的最长前缀匹配(LPM)trie 记录片段的方法

使用 cilium/ebpf 的批量 API 处理 IP/CIDR LPM Trie。
BPF尾调用的使用问题
文章

BPF尾调用的使用问题

通过最小案例分析 BPF tail call 未按预期调用的原因。
在 Golang 中获取内核符号名称
文章

在 Golang 中获取内核符号名称

从内核栈地址恢复符号名称并服务于跟踪分析。
调试用cilium/ebpf编写的Go用户程序的eBPF程序
文章

调试用cilium/ebpf编写的Go用户程序的eBPF程序

聚焦 Go 用户程序加载 eBPF 时的运行问题与调试线索。

把实验带到生产边界

权限、内核版本与可移植性

Cilium eBPF Architecture
外链

Cilium eBPF Architecture

理解 tc 与 XDP 等挂载路径及不同架构的执行方式。
eBPF Program Types
外链

eBPF Program Types

按内核 hook 查看可用的 eBPF 程序类型。
Linux BPF Documentation
外链

Linux BPF Documentation

Linux 内核官方 BPF 文档入口。
ebpf-go Documentation
外链

ebpf-go Documentation

面向 Go 开发者的 eBPF 概念、工具链与示例索引。
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码