You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
背景
参考 Pixie 和 Datadog,我们计划建设 eBPF 网络监控插件。
目前提供的能力:
设计
主要分为三部分:
架构
具体的架构如下图所示:
其中,采集配置如下:
eBPF 事件采集
hook 点与采集内容如下所示:
eBPF 事件处理
事件获取
通过 coolbpf 来管理 eBPF Object 的加载和 perf buffer 的管理。
在用户态,我们需要定时拉取 perf buffer 的数据。
ConnTracker
在用户态,我们会为每一条 TCP 连接分配一个 ConnTracker 对象,用来管理连接的元信息。
我们还需要一个 ConnTrackerManager 来管理所有的 ConnTracker,主要包含以下能力:
协议解析
当我们收到 L7 的 Data 事件后,我们将进行异步的协议解析。目前支持的协议解析器只有 HTTP,后续计划扩展 DNS、MySQL、Kafka、Redis。
通用数据处理
协议解析完成后,我们需要进行如下流程:
数据模型
需要支持 Metric、Trace、Log 三种数据类型的上报。
通用标签 Key 的定义参考下表:
Beta Was this translation helpful? Give feedback.
All reactions