Java 使用tcpdump记录失败的HTTP请求

Java 使用tcpdump记录失败的HTTP请求,java,tomcat,wireshark,tcpdump,Java,Tomcat,Wireshark,Tcpdump,我在Tomcat 7.0.22中运行Java webapp,有时会有HTTP请求导致生产环境中出现HTTP 500(我的应用中出现意外异常)。为了在登台环境中重现这些错误,我通常会运行tcpdump,记录所有HTTP流量,然后使用WireShark过滤带有HTTP.response.code!=200或204或302并对每个响应运行“跟随HTTP流”,从而给出导致此错误的请求。然后我可以在临时环境中使用cURL重新运行这个请求 我的问题是: 如何自动完成此过程 有没有其他方法可以达到同样的效果

我在Tomcat 7.0.22中运行Java webapp,有时会有HTTP请求导致生产环境中出现
HTTP 500
(我的应用中出现意外异常)。为了在登台环境中重现这些错误,我通常会运行
tcpdump
,记录所有HTTP流量,然后使用WireShark过滤带有
HTTP.response.code!=200或204或302
并对每个响应运行“跟随HTTP流”,从而给出导致此错误的请求。然后我可以在临时环境中使用cURL重新运行这个请求

我的问题是:

  • 如何自动完成此过程
  • 有没有其他方法可以达到同样的效果(重现错误)?(可能是Tomcat内部的一些
    过滤器
谢谢


Alex

有一些工具可以提供这种功能。实际上,它们甚至做得更多:它们通常为java代码提供工具,以便能够检测出哪个模块对故障负责


我个人在一家名为的公司工作,该公司实现了这样的解决方案。它是商业版,但您可以从免费分发的评估版开始,并可以从we站点下载。或者,我可以让你看看它比Correlsense更好看,虽然我个人没有用过它,但只是试着玩一点

但是为什么不做一些简单的事情,比如在prod env中记录请求呢?我希望它是透明的。我还没有找到一个很好的方法来实现这一点谢谢,实际上我们有一个newRelic许可证,我检查了这个功能。您是否碰巧知道它是如何在newRelic中实现的。因为有一个使用Tomcat过滤器的不太好的解决方案,它会消耗输入流,从而能够转储ip。