7个版本
0.5.0 | 2024年7月12日 |
---|---|
0.5.0-rc1 | 2024年7月10日 |
0.4.2 | 2024年6月21日 |
0.4.1 | 2024年5月3日 |
0.4.0 | 2024年4月10日 |
#283 in Unix API
203 每月下载量
2MB
7.5K SLoC
bpf-metrics-exporter
导出内核BPF子系统的指标到OpenTelmetry。这些指标可以后来与系统中的其他指标一起丰富,例如,关联进程ID -> 容器 -> k8s pods。
用法
./bpf-metrics-exporter --otlp-grpc localhost:4317
指标
以下指标目前正在导出,此列表将持续扩展
度量
bpf_program_info
:每个加载的BPF程序的信息- 标签
id
:BPF程序的IDname
:BPF程序的名字type
:BPF程序类型的可读字符串tag
:BPF程序的标签gpl_compatible
:BPF程序是否与GPL兼容load_time
:BPF程序加载的时间
- 标签
bpf_map_info
:每个加载的BPF Map的信息- 标签
id
:BPF Map的IDname
:BPF Map的名字type
:BPF Map的类型,对应以下内核枚举key_size
:BPF Map的键大小(以字节为单位)value_size
:BPF映射的值大小。max_entries
:BPF映射的最大条目数。flags
:BPF映射的加载时间特定标志。
- 标签
bpf_link_info
:加载的每个BPF链接的信息。- 标签
id
:bpf Link的ID。prog_id
:使用链接的BPF程序的程序ID。type
:BPF链接类型,作为u32
,对应以下内核枚举。
- 标签
bpf_program_load_time
:程序加载的标准UTC时间(秒)。- 标签
id
:BPF程序的IDname
:BPF程序的名字type
:BPF程序类型的可读字符串
- 标签
计数器
注意:所有计数器都将附加后缀 _total
。
bpf_program_size_jitted_bytes
:程序JIT编译的机器代码的大小(字节)。- 标签
id
:BPF程序的IDname
:BPF程序的名字type
:BPF程序类型的可读字符串
- 标签
bpf_program_size_translated_bytes
:BPF程序的大小(字节)。- 标签
id
:BPF程序的IDname
:BPF程序的名字type
:BPF程序类型的可读字符串
- 标签
bpf_program_mem_bytes
:BPF程序使用的内存量(字节)。- 标签
id
:BPF程序的IDname
:BPF程序的名字type
:BPF程序类型的可读字符串
- 标签
bpf_program_verified_instructions
:BPF程序中的指令数。- 标签
id
:BPF程序的IDname
:BPF程序的名字type
:BPF程序类型的可读字符串
- 标签
bpf_map_key_size
:BPF映射键的大小。- 标签
id
:BPF Map的IDname
:BPF Map的名字type
:BPF Map的类型,对应以下内核枚举
- 标签
bpf_map_value_size
:BPF映射值的大小。- 标签
id
:BPF Map的IDname
:BPF Map的名字type
:BPF Map的类型,对应以下内核枚举
- 标签
bpf_map_max_entries
:BPF映射允许的最大条目数。- 标签
id
:BPF Map的IDname
:BPF Map的名字type
:BPF Map的类型,对应以下内核枚举
- 标签
试试看
您需要一个设置好的Grafana堆栈。您可以使用以下命令快速部署:
podman play kube metrics-stack.yaml
然后,您可以部署导出器
sudo ./target/debug/bpf-metrics-exporter
您可以使用默认用户名和密码https://127.0.0.1:3000/
登录Grafana:admin:admin
。
从那里,只需选择标题为eBPF 子系统指标
的默认仪表板。
要清理一切,只需使用ctrl+c
退出bpf-metrics-exporter进程并运行
podman kube down metrics-stack.yaml
依赖关系
~51–68MB
~1.5M SLoC