赞
踩
Kindling是一款基于eBPF技术的云原生可观测性开源项目。本文将主要介绍如何通过Kindling对HTTP协议进行解析。
在故障排查过程中,我们通常对请求性能、请求内容和返回内容感兴趣。这使我们能知道请求和接收了什么内容,是否有异常等基本信息。如何获取请求的具体详细信息,传统方式是通过tcpdump获取请求包数据,然后通过wireshark查看其具体协议内容。
tcpdump虽然在生产环境中经常使用,但由于获取的数据量和大小限制,不适合一直开启,只有在排查问题时使用。而获取的数据也无法直接查看,需下载到本地通过wireshark分析查看。基于tcp的诸多问题,所以Kindling通过eBPF方式实现请求的具体分析。
那么Kindling是如何实现实时可用的协议解析功能呢?主要涉及3块功能:
数据采集
请求/响应关联
请求/响应解析
协议解析流程图
先来查看下一个简单的HTTP服务
HTTP服务伪代码
当接收到请求时会有accept/read/write/close等函数执行,这些函数最终执行内核的系统调用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。