kyanos详解

一、简介

官网:https://kyanos.io/cn/

github:https://github.com/hengyoush/kyanos

Kyanos 是一个网络流量采集和分析工具,它提供如下特性:

强大的流量过滤功能:不仅可以根据传统 IP/端口 等信息过滤,还支持根据:进程/容器、L7协议信息、请求/响应字节数、耗时等过滤你想要的数据。

  1. 强大的分析功能: 和 tcpdump 只提供细粒度的抓包功能不同,kyanos 还支持以各种维度聚合抓取的数据包的指标信息,快速得到对排查问题最有用的关键数据。想象一下你的 HTTP 服务的带宽突然被打满,你该如何快速的分析是 哪些 ip 的 哪些请求 造成的?
    使用 kyanos 只需要一行命令:kyanos stat http --bigresp 即可找到发送给哪些远程 ip 的响应字节数最大,并且还能够发现请求响应的具体数据。
  2. 深入内核的耗时细节:在实际业务场景中我们经常遇到远程服务慢查询问题,比如访问 Redis 请求较慢,但是 具体慢在哪里 在传统监控方式下很难给出确切答案。而 kyanos 提供了 请求/响应 到达网卡以及从 内核Socket 缓冲区读取的内核埋点,并且以可视化的图形展示出来,你可以方便的判断是哪一个环节出现了问题。
  3. 轻量级零依赖:几乎 0 依赖,只需要单个二进制文件,一行命令,所有结果都展示在命令行中。
  4. SSL流量自动解密:kyanos 为你抓取的请求响应结果全部都是明文。

二、速成法

kyanos 共有三个子命令:watch、stat、overview。每个命令的作用如下:

  1. watch:根据你指定的条件抓取网络流量并自动解析为请求响应记录。
  2. stat:根据你指定的条件抓取请求响应记录并且聚合这些记录,得到更高维度的统计信息。
  3. overview:一键展示当前机器依赖的外部资源。

watch:

./kyanos watch

 
每个请求响应记录会记录在表格中的一行,每列记录这个请求的基本信息。你可以通过方向键或者j/k上下移动来选择记录:

 抓取http流量:

./kyanos watch http
 抓取http path流量:
./kyanos watch http --path /abc
 

stat:

主要用于统计分析,哪些连接请求数最多?哪些远程服务端上的平均耗时最高?哪些客户端发送的请求带宽占比最高?

./kyanos stat http --slow --path /abc
 默认收集10s(可以通过--time参数指定收集时间)

指定metric选项为total-time代表我们需要统计的指标是请求响应的总耗时,指定group-by选项为remote-ip,代表观察的响应时间是每个ip的响应时间,最终将相同的ip请求聚合,得出每个ip的总耗时相关指标
./kyanos stat --metric total-time --group-by remote-ip

简写:

./kyanos stat -m t -g remote-ip

 

常用查询:

分析慢请求:

./kyanos stat http --slow --time 10

 

分析大请求:

./kyanos stat http --bigreq

 

分析大响应:

./kyanos stat http --bigresp

 

该工具轻量,使用简单。

本文摘取其官方文档中的一些常用命令,感兴趣可以去官网学习

posted @ 2024-12-13 15:50  紫陌花间客  阅读(54)  评论(0编辑  收藏  举报