2012-09-14 5 views
1

통계 목적으로 하나의 Http Connection (하나의 열린 소켓에서 몇 개의 연결 유지 요청이 이루어 졌는지)에 대한 요청 수를 계산하고 싶습니다.Vertx.io - 단일 HTTP 연결에서 이루어진 요청 수를 얻는 방법?

node.js에서 요청 및 응답 개체에서 '소켓'에 액세스 할 수 있으며 '요청'과 같이 필드를 동적으로 추가 할 수 있습니다. 나는 또한 'socket close'핸들러를 부착하고 syslog에 'request'필드를 기록하고 Graphite에서 1 분 평균을 구할 수있다.

vertx.io에서 가능합니까? HttpRequest 및 HttpResponse 클래스에서 소켓 필드를 찾을 수 없습니다.

답변

2

이 작업을 수행하는 간단한 방법은 없습니다.

해킹 할 수 있습니다. HttpServerRequest은 실제로는 인 org.vertx.java.core.http.impl.DefaultHttpServerRequest의 인스턴스입니다. 이 필드는 반사를 통해 액세스 할 수 있습니다 (예 : http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html). 요청 계산은 정수에 대한 연결 맵을 작성하여 구현 될 수 있습니다.

이 해킹은 테스트 목적으로는 충분하지만 메모리 누수로 인해 프로덕션 환경에서는 작동하지 않습니다. 이 기능을 ServerConnection 클래스의 handleMessage 메서드에 추가하고 JMX를 통해 노출하는 것이 좋습니다.