2012-04-22 7 views
3

때때로 Tomcat 7.0.22에서 Java webapp를 실행하고 있는데, 때때로 생산 환경에서 HTTP 500 (내 앱에서 예상치 못한 예외)을 발생시키는 HTTP 요청이 있습니다. 스테이징 환경에서 이러한 오류를 재현하려면 일반적으로 tcpdump을 실행하고 모든 HTTP 트래픽을 기록한 다음 WireShark를 사용하여 http.response.code != 200 or 204 or 302으로 패킷을 필터링하고 각 응답마다 "follow HTTP stream"을 실행하여이 오류의 원인이 된 요청을 제공합니다 . 그런 다음 스테이징 환경에서이 요청을 cURL로 다시 실행할 수 있습니다.tcpdump로 실패한 HTTP 요청 기록하기

내 질문은 :

이 이
  • 방법이 절차가 자동으로 수행 할 수 있는가?
  • 다른 기술을 사용하여 동일한 효과 (오류를 재현)를 얻을 수있는 방법이 있습니까? (톰캣 내부 어쩌면 일부 Filter)

감사

알렉스 등의 기능을 제공하는 도구가 있습니다

+0

하지만 prod env에서 요청을 로깅하는 것과 같은 간단한 작업을 수행하지 마십시오. –

+0

나는 그것을 투명하게하고 싶다. 좋은 방법을 찾지 못했습니다. – AlexV

답변

1

. 사실 그들은 심지어 더 많은 일을합니다 : 그들은 일반적으로 Java 코드를 계측하여 어떤 모듈이 실패에 책임이 있는지를 탐지 할 수 있습니다.

저는 개인적으로 이러한 솔루션을 구현하는 Correlsense이라는 회사에서 일하고있었습니다. 그것은 상업적이지만 무료로 배포되는 평가판에서 시작하여 우리 사이트에서 다운로드 할 수 있습니다. 또는 개인적으로 사용하지는 않았지만 조금만 재생하려고 시도했지만 Correlsense보다 더 좋아 보이는 newrelic.com을 확인할 수 있습니다.

+0

감사합니다. 사실 우리는 newRelic 라이센스를 보유하고 있습니다.이 기능을 확인합니다. 우연히 newRelic에서 어떻게 구현되는지 알고 있습니다. 입력 스트림을 소비하는 Tomcat 필터를 사용하면 좋지 않은 해결책이 있으므로 ip를 덤프 할 수 있습니다. – AlexV