Доступ к данным мониторинга Java EE внутри сервлета - PullRequest
1 голос
/ 07 ноября 2011

Я пытаюсь получить доступ к данным мониторинга, которые собирает glassfish v3 после того, как я включил службу мониторинга и включил службу mbean.

Я хотел бы показать данные типа ProcessingTime или RequestCount в сервлете QuickInfo на том же компьютере, чтобы показать пользователям / администраторам, если машина занята.

Я думаю, что вход в данные, вероятно, InitalContext JNDI ... но я не смог найти пример.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 08 ноября 2011

Для устранения неполадок и поиска точных имен данных, которые вас интересуют, используйте эту команду:

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();
}

============

Ссылки:

...