在 eunomia-bpf
中,您可以:
CO-RE
的 eBPF 应用程序WASM
模块,就可以在用户空间 WASM
运行时中控制eBPF程序或处理数据1MB
且不依赖 LLVM/Clang
,可以轻松嵌入到其他的项目中100ms
的时间动态加载和运行任何eBPF程序,比 bcc
更迅速我们的主要开发在 Github 仓库中完成:https://github.com/eunomia-bpf/eunomia-bpf
我们有一个加载器库,一个编译工具链,以及一些额外的工具,如cli和一个自定义指标导出器。
这个库包含了 libbpf
的主要函数,提供了将 eBPF
代码动态加载到内核的能力,并使用 JSON
和简单的 API
运行它。
查看 bpf-loader 以获得更多细节信息
我们提供了一个简单的cli接口, 使得您可以通过在命令行输入URL的方式启动任何eBPF程序。您可以从release版本中下载样例:
# download the release from https://github.com/eunomia-bpf/eunomia-bpf/releases/latest/download/ecli
$ wget https://aka.pw/bpf-ecli -O ecli && chmod +x ./ecli
$ sudo ./ecli run https://eunomia-bpf.github.io/ebpm-template/package.json # simply run a pre-compiled ebpf code from a url
使用 bpf-loader
库从WASM
模块加载eBPF程序,您可以编写WASM
模块来操作eBPF程序或在用户空间WASM
运行时处理数据。这个想法很简单:
eunomia-cc
工具链将 eBPF
代码骨架编译成 JSON
格式WASM
模块中嵌入 JSON
数据,并为操作eBPF程序框架提供一些APIWASM
模块加载 JSON
数据,并使用 bpf-loader
库运行eBPF程序框架在单个 WASM
模块中可以有多个 eBPF
程序。
您可以在 wasm-runtime 中看到更多细节
该工具链可以和docker一样使用,在一个命令中生成预编译的eBPF数据: 详细信息请参见 eunomia-cc。 您也可以简单地使用 ebpm-template 作为一个模板,将修改推送到这里后使用github action可以帮助您编译CO-RE ebpf代码!
我们提供了一个 prometheus
和 OpenTelemetry
的输出工具用于定制eBPF指标,它用异步rust编写:eunomia-exporter
您可以编译它或从release版本下载它
查看build以获得更多细节
Eunomia
项目中的代码并提供快速示例tracepoints
、fentry
、kprobe
、lsm
和ring buffer
/perf event
输出。libbpf
添加更多功能MIT LICENSE
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。