#java #servlets #glassfish #monitoring
#java #сервлеты #glassfish #мониторинг
Вопрос:
Я пытаюсь получить доступ к данным мониторинга, которые собирает glassfish v3 после того, как я включил службу мониторинга и службу mbean.
Я хотел бы показать такие данные, как ProcessingTime или RequestCount в сервлете «QuickInfo» на том же компьютере, чтобы показать пользователям / администраторам, занята ли машина.
Я думаю, что вход в данные, вероятно, является InitalContext JNDI… но я не смог найти пример.
Спасибо за вашу помощь.
Ответ №1:
Для устранения неполадок и поиска точных имен интересующих вас данных используйте эту команду:
asadmin get -m pattern-here
asadmin get -m "server.web.request.*" # for example
Вам нужна одна зависимость:
<dependency>
<groupId>org.glassfish.flashlight</groupId>
<artifactId>flashlight-framework</artifactId>
<version>3.2-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Для версии используйте любую версию GlassFish, которую вы используете.
Вывод немного запутанный, но это даст вам представление.
import org.glassfish.flashlight.MonitoringRuntimeDataRegistry;
import org.glassfish.flashlight.datatree.TreeNode;
import javax.annotation.Resource;
@Resource
private MonitoringRuntimeDataRegistry datareg;
private String showOneNode() {
StringBuilder sb = new StringBuilder("<ul>n");
TreeNode mainNode = datareg.get("server");
List<TreeNode> ltn = mainNode.getNodes("server.web.request.*");
for(TreeNode tn : ltn) {
String val = tn.getValue().toString();
sb.append("<li>").append(tn.getCompletePathName() val);
}
sb.append("</ul>");
return sb.toString();
}
============
Ссылки:
Комментарии:
1. Спасибо за ваш ответ. У меня получилось. Мне пришлось добавить flashlight-framework.jar к моему проекту eclipse. Теперь я получаю много информации о server.web. * но как я могу указать конкретный компонент или сервлет?
2. взгляните на вывод этой команды, и вы увидите, как это сделать: asadmin get -m «*»