《温怀湘--中国联通软研院基于eBPF可观测性落地实践.pdf》由会员分享,可在线阅读,更多相关《温怀湘--中国联通软研院基于eBPF可观测性落地实践.pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、基于eBPF可观测性落地实践第二届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安中国联通软件研究院-温怀湘第 二 届 e B P F 开 发 者 大 会01可观测性演进路线第 二 届 e B P F 开 发 者 大 会微服务演进过程单体应用框架微服务mesos网格kubernetesVM应用架构演进第 二 届 e B P F 开 发 者 大 会监控演进过程可观测性演进日志调用链指标性能特性运维工具第 二 届 e B P F 开 发 者 大 会02eBPF可观测性落地实践第 二 届 e B P F 开 发 者 大 会 新特性可以快速加载,业务受影
2、响快速卸载 计算、网络、IO场景应用 专注于业务开发,提升开发效率演进时需要解决的问题第 二 届 e B P F 开 发 者 大 会用户态和内核态程序加载REST API内核态配置用户态配置eBPF-Agentlib.so 文件lib.so 文件用户态文件eBPF.o 文件eBPF.o 文件eBPF文件内核空间用户空间kprobeuprobetracepointftracehook支持远程和本地加载支持默认和声明解析支持.so链接库函数programs:-name:tcp_connlat path:file:/xxx/tcp_connlat.bpf.o type:ebpf_object -na
3、me:tcp_connlat_user path:http:/xxxx/tcp_connlat.so type:user_so properties:initfile:functions:-name:process type:default.支持用户函数初始化、调用前/后处理第 二 届 e B P F 开 发 者 大 会eBPF-Agentlib.so 文件lib.so 文件处理函数eBPF.o 文件eBPF.o 文件数据采集内核空间用户空间kprobeuprobetracepointftracehook支持kafka、本地文件及内嵌tsdb输出file或tsdb数据采集与消息处理支持数据采集
4、、消息通道与用户函数多对多关联处理支持全局配置和单独配置channels:tcp_connlat_events:type:ring_buffer events:-name:tcp_connlat_user hash:hash target_processor:process storage:kafka:true消息事件告警存储后端查询第 二 届 e B P F 开 发 者 大 会内核函数、用户函数、配置示例type TracerCtx struct CRingCtx uintptr CResCtx uintptr.RingCtx RingCtx ResCtx ResCtx type tcpCo
5、nnlatEvent struct Comm 16uint8 Pid uint32.Delta_time uint64func process(ctx uintptr)var event tcpConnlatEventvar saddr,daddr stringtraceCtx:=(*TracerCtx)(unsafe.Pointer(ctx)err:=binary.Read(bytes.NewBuffer(traceCtx.RingCtx.Data),binary.LittleEndian,&event).result:=mapstringanypid:event.Pid,.copy(tra
6、ceCtx.ResCtx.Data,resData:)struct _uint(type,BPF_MAP_TYPE_RINGBUF);_uint(max_entries,1 filename);第 二 届 e B P F 开 发 者 大 会演进方向-支持进程过滤与业务标识ContainerdSystemdxxx进程PodPodPodeBPF-Agentlib.so 文件lib.so 文件处理函数eBPF.o 文件eBPF.o 文件数据采集kprobeuprobetracepointftracehookmonitormap标签用户空间内核空间xxx进程41231.标签模块分别监控Systemd进
7、程创建的进程和Containerd创建的pod2.将需要采集数据的进程写入monitor map3.内核根据标签过滤进程数据,按需采集数据4.标签模块在传输数据之前附加进程业务属性标识ring_buffer第 二 届 e B P F 开 发 者 大 会演进方向-支持源码文件装卸eBPF-Agentlib.so 文件lib.so 文件用户态文件eBPF.o 文件eBPF.o 文件eBPF文件kprobeuprobetracepointftracehook构建用户空间内核空间1.用户态和内核态配置文件是源码文件2.根据源码文件在主机上进行源码编译,生成本地.o和.so文件3.加载.o和.so文件ring_bufferlib.so 文件lib.so文件lib.so 文件ebpf.o文件内核态配置用户态配置第 二 届 e B P F 开 发 者 大 会演进方向-支持网络更多特性协议解析绕过内核函数实现性能提升更多特性gRPC DNS TLS SSL支持IP及以下层数据解析节点之间协议第 二 届 e B P F 开 发 者 大 会谢谢