2010-06-24 5 views
2

내 웹 응용 프로그램에서 "분당 요청 수"와 같은 부하 통계가 필요합니다. Servlet API 기반 webapp 내에서이 값을 얻는 방법은 무엇입니까?Java 웹 응용 프로그램에서 분당 요청 수를 얻는 방법

+3

아마도 이것은 웹 애플리케이션 자체가 아니라 서블릿 컨테이너 *가 더 나은 위치에있을 가능성이 있습니다. –

+0

사용중인 appserver/servletcontainer에 대해 언급하면 ​​훨씬 더 적합한 대답을 얻을 수 있습니다. 즉, 웹 응용 프로그램이 아니라 서버에 따라 다릅니다. 그것이 webapp에 의존했다면, 통계 코드를 직접 작성/구현했음을 의미 할 것입니다. 그러나 이것은 분명히 아닙니다.) – BalusC

+1

즉각적인로드 통계가 필요합니까 (현재 웹 응용 프로그램이 어떻게로드되어 있습니까?) 또는 통계가 필요합니까? 오랜 기간 (내 웹 앱은 지난 주에 비해 얼마나 많이로드 되었습니까?). –

답변

2

서블릿 배경에서 잘 나오지 않는다면, 나는 구식 방식으로 해보기를 원할 것이다.

이것은 PHP, ASPNET 또는 Django 인 경우 현재 분을 저장하는 memcache 키와 카운터의 다른 키를 유지합니다.

추적 할 작업이 발생하면 해당 시간이 현재와 동일한 지 확인하십시오. 그럴 경우 카운터를 증가시키고 그렇지 않으면 이전 수를 데이터베이스에 저장하고 새 현재 분을 저장하고 0에서 카운터를 시작하십시오.

memcache 키에 작업을 추가하여 다른 작업을 쉽게 추적 할 수 있습니다.

+1

접근 방식을 약간 업데이트하겠습니다 : 프로세스로 계산되지만 0으로 값을 떨어 뜨리지 않고 현재 시간을 저장하지 마십시오. 난 그냥 수시로 카운터를 쿼리하고 마지막 쿼리 이벤트의 시간과 그 순간의 값을 저장합니다. 이것은 쉬운 일로 만듭니다 : 나는 지금과 이전 질의 사이에 시간차가 있으며 가치 차이가 있습니다. 이것은 모두 계산에 필요합니다. –

3

거의 모든 컨테이너를 사용하면 JMX를 사용하여 계측 데이터를 쿼리 할 수 ​​있습니다. 플러그인을 설치해야 할 수도 있습니다.

정확한 내용은 컨테이너마다 다르지만 매우 간단합니다.

예를 들어 the docs related to tomcat입니다.

1

이러한 통계를 얻는 방법은 configure Tomcat access logs입니다. 이러한 로그를 분석하는 데 사용할 수있는 도구가 있지만 간단한 스크립트로 분당 요청을 처리 할 수 ​​있습니다.

관련 문제