Strace是一个linux系统下的小工具,可以用于跟踪一个指定进程的系统调用和其接收到的数据。该工具可以查看写入/收到file descriptor的内容,可以被用于分析微服务间的HTTP通信。

首先通过ps找到需要跟踪的进程。

sudo ps -ef|grep istio-demo

然后使用strace来监控该进程的网络消息。

sudo strace -p 91558 -f -e trace=network -s 1000

下面是strace对一个HTTP请求的相关调试输出信息,可以看到该进程对外发出了一个http请求,并收到了一个404错误。可以从输出中查看到HTTP请求的完整内容,包括Method, URL, Header等内容。

[pid 93648] sendto(285, "GET /api/istioserver/v1/animals/panda HTTP/1.1\r\nHost: 100.100.0.112:9090\r\nConnection: Keep-Alive\r\nAccept-Encoding: gzip\r\nUser-Agent: okhttp/3.3.0\r\n\r\n", 149, 0, NULL, 0) = 149
[pid 93648] recvfrom(285, "HTTP/1.1 404 Not Found\r\ndate: Fri, 11 Jan 2019 04:59:07 GMT\r\nserver: envoy\r\ncontent-length: 0\r\n\r\n", 8192, MSG_DONTWAI

strace的使用方法可参考: http://man7.org/linux/man-pages/man1/strace.1.html

Copyright © zhaohuabing.com 2019 all right reserved,powered by Gitbook Updated at 2020-05-26 09:08:50

results matching ""

    No results matching ""