1. 课程导论:eBPF 技术背景、网络观测的重要性、Prometheus 在可观测性中的角色、本课程目标与大纲概览

1.1 eBPF 技术背景:从内核扩展到可观测性革命

eBPF(extended Berkeley Packet Filter)是一项革命性的 Linux 内核技术,允许用户在无需修改内核源码或加载内核模块的情况下,安全、高效地注入自定义程序来扩展内核行为。其发展历程可概括为三个阶段:

阶段 时间 核心能力 典型应用
BPF 起源 1992 网络包过滤(tcpdump) 抓包、防火墙规则
eBPF 内核集成 2014 (Linux 3.18) 动态注入、Map 通信、辅助函数 性能剖析、网络监控、安全审计
可观测性爆发 2019 至今 CO-RE、BTF、libbpf 生态成熟 分布式追踪、网络流分析、持续 profiling
关键认知: eBPF 将内核从“黑盒”转变为“可编程观测层”,使得网络数据包、系统调用、函数调用等底层事件能够以纳秒级精度暴露给用户空间,这是传统 agent 模式无法比拟的。

1.2 网络观测的重要性:为什么需要“看得见”网络

在微服务、Service Mesh、容器化环境中,网络已成为应用性能与故障定位的核心瓶颈。传统网络观测手段(如 tcpdump、netstat、iptables 日志)存在以下痛点:

  • 数据碎片化: 无法关联应用层与网络层上下文。
  • 性能开销高: 全量抓包或轮询统计对生产环境不友好。
  • 动态拓扑缺失: 难以实时追踪 Pod、Service、Endpoint 之间的连接关系。

eBPF 网络观测的核心价值在于:

  • 零侵入: 无需修改应用代码或重启服务。
  • 全栈关联: 一次捕获即可获得 socket、进程、容器、网络命名空间、数据包内容等多维信息。
  • 低开销: 基于事件驱动,仅在关键 hook 点执行轻量级程序。
一句话总结: eBPF 让网络观测从“盲人摸象”走向“全息透视”。

1.3 Prometheus 在可观测性中的角色:指标聚合与告警基石

Prometheus 已成为云原生可观测性的事实标准,其 Pull 模型、多维数据模型(Metric + Label)、PromQL 查询语言以及强大的告警体系,使其天然适合作为 eBPF 网络观测数据的“出口”。

可观测性支柱 数据形态 Prometheus 角色 eBPF 贡献
Metrics 计数器、直方图、摘要 存储、查询、告警 提供高精度、低延迟的原始计数
Logging 结构化/非结构化文本 (非主要场景) 可通过 eBPF 捕获特定事件日志
Tracing Span、Trace ID (非主要场景) eBPF 可生成网络延迟 Span

本课程聚焦于 Metrics 支柱,将 eBPF 采集的网络事件(如包数量、字节数、延迟分布、连接状态变化)转化为 Prometheus 指标,并利用 Prometheus 生态进行可视化(Grafana)与告警(Alertmanager)。

1.4 本课程目标与大纲概览

课程总目标: 使学员掌握从零构建一个“eBPF 网络观测制品库”的能力,并能够将观测数据以标准 Prometheus 指标形式暴露、定制与集成到现有可观测性平台中。

课程分为六大模块,共 30 章:

  1. 基础篇(第 1-5 章): eBPF 编程模型、网络 Hook 点、CO-RE 原理、Prometheus 指标类型与 Exporter 开发基础。
  2. 核心篇(第 6-12 章): 基于 eBPF 实现网络流追踪(TCP/UDP)、延迟直方图、连接跟踪、DNS 解析观测。
  3. 制品库篇(第 13-18 章): 设计可复用的观测库 API、Map 管理、事件聚合、指标导出接口抽象。
  4. Prometheus 接入篇(第 19-24 章): 编写自定义 Collector、Label 动态注入、指标注册与 HTTP 暴露、性能调优。
  5. 定制与扩展篇(第 25-28 章): 用户自定义过滤规则、动态配置热加载、多协议支持(HTTP/gRPC/ICMP)。
  6. 生产实践篇(第 29-30 章): 部署到 Kubernetes、与 Grafana 集成、告警规则设计、大规模场景下的资源限制与优化。
前置要求: 学员需具备基本的 Linux 内核概念(进程、网络栈)、Go 或 C 语言基础、以及 Prometheus 的基本使用经验。本课程不从头教授 eBPF 语法,但会提供完整的代码示例与调试方法。
eBPF 网络观测制品库整体架构 eBPF 网络观测制品库 — 整体架构 Linux 内核网络栈 eBPF Hook 点 eBPF Map 用户空间采集器 (eBPF Loader + Map Reader) 周期读取 Map、聚合事件、计算指标 网络观测制品库 (Library) 指标定义 · 标签注入 · 过滤规则 · 多协议解析 · 配置热加载 Prometheus Exporter (HTTP /metrics) 核心产出 网络延迟直方图 连接数 · 丢包率 · 吞吐

1.5 本章小结

通过本章导论,我们明确了:

  • eBPF 为网络观测提供了前所未有的 深度与效率。
  • Prometheus 作为指标标准,是 eBPF 数据价值释放的 关键出口。
  • 本课程将带领学员构建一个 可复用、可定制、生产就绪 的 eBPF 网络观测制品库,并完整接入 Prometheus 生态。