Архитектура моего веб-приложения: Apache 2 (как балансировщик нагрузки) + JBoss 3.2.3 + MySQL 5.0.19.
Я хочу: измерить время обработки запроса (для каждого отдельного запроса), затраченное только на сервер JBoss (т. е. исключая время, затрачиваемое на веб-серверы и серверы баз данных.
Я изучал, как регистрировать время обработки запросов только на уровне приложений. Я нашел *mod_JK logging*, *mod_log_config* Apache и Tomcat AccessLogValve как два возможных метода.
Использование * ведения журнала mod_JK *: насколько я понимаю, ведение журнала mod_jk обеспечивает время обработки запроса для каждого запроса и рассчитывается как разница во времени между временем, когда запрос покидает сервер Apache, и временем, когда соответствующий ответ получен сервером Apache. Пожалуйста, поправьте меня, если это не точно / правильно.
Используя модель Apache mod_log_config (http://www.lifeenv.gov.sk/tomcat-docs/jk/config/apache.html): добавив "%{JK_REQUEST_DURATION}n" в конструкцию LogFormat (конструкция JKLogFile) (см. ссылку выше). «JK_REQUEST_DURATION» фиксирует общее время обработки Tomcat с точки зрения Apache.
Время (в приведенных выше случаях) включает время обработки Tomcat/JBoss + MySQL. В моем случае это не поможет, так как включает время обработки MySQL - я хочу записывать время обработки запроса только на JBoss. Любые предложения/идеи приветствуются?
Использование AccessLogValve: он может регистрировать «время, затраченное на обработку запроса, в миллисекундах», установив %D в атрибуте шаблона XML-конструкции AccessLogValve. Не очень понятно, если это
- Время, если это время требуется tomcat/JBoss для обслуживания запроса (например, выделение рабочего потока для его обработки)
- Время, затраченное на обработку запроса и его отправку на сервер базы данных (общее время на сервере Tomcat/JBoss)
- Время, затрачиваемое на обработку запроса Tomcat/JBoss и отправку ответа обратно на веб-сервер/клиент
Любая идея/подсказка?
Это мой опыт/исследование, которым я хочу поделиться. Будем признательны, если у кого-то есть аналогичная проблема/знает способ сделать это, чтобы поделиться своим опытом/указаниями/мыслями, где можно найти лучшее решение.
жду ваших мыслей/предложений