1、eBPF 在故障定位的应用匠 心杭州乘云数字有限公司第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安第 三 届 e B P F 开 发 者 大 会NPM旁路抓包,关注网络指标:吞吐率、时延、重传、回放支持 SNMP,NetFlow,sFlow 等与传输、路由相关协议为主APM应用代理,关注应用指标:请求/响应、接口、错误率、中间件分布式追踪、日志关联、应用性能监控、编程程言和框架BPM业务网关,关注业务事件:业务关联、监控/优化 业务流程应用性能管理、异常检测、根因分析、数据互通EBPFeBPF+APM 为我们带来的核心能力 更精准的数据采
2、集,脱离“全流量”的苦海 更丰富的指标维度,如pid,offset 更精准的指标计算,如rtt 更多的指标类型,如 tcp queueeBPF+APM 为我们带来的核心能力 将“微服务”的排障粒度从接口延伸到“访问资源”。更便捷的应用/业务洞察能力 事后分析-事前预警/事中告警故障案例 1 Nagle+延迟确认故障案例 2 错误的 socket 选项设置BPF_CGROUP_SOCK_OPSBPF_CGROUP_SOCK_OPSBPF_CGROUP_SOCK_OPS 程序附加到 cgroup 上,会在以下 socket 事件发生时被调用:连接建立(TCP)连接终止 数据发送/接收 重传超时 拥
3、塞控制状态变化等kprobekprobe/tcp_sendmsg,kretprobetcp_sendmsg,kretprobe/tcp_recvmsgtcp_recvmsg 以流为单位,建立指标体系五元组 进程ID,进程名 收/发包数,收/发字节数,重传包数 Counter Rtt/Rtt-var Histogram 连接状态 Gauge RWND Histogram OneAgent 辅助,尽量减少数据量实时调整参数,优化传输性能故障演练与定位沙盒 EasyShopping:被测应用,一个包含17个服务、覆盖多种常见访问协议(Http、Dubbo、MQ、Mysql、Redis、ES、Mongo等)的复杂微服务系统。Chaos:故障注入平台,可以对被测应用注入各种故障。DataBuff:故障定位平台,监测被测应用的运行情况,当发生故障时会触发告警并自动定位根因。SandBox Console:沙盒控制台故障演练与定位沙盒 故障注入故障演练与定位沙盒 选择故障故障演练与定位沙盒 查看故障谢 谢!