diff --git a/src/main/java/org/olat/admin/sysinfo/SysinfoController.java b/src/main/java/org/olat/admin/sysinfo/SysinfoController.java index 811f66f4a3b60ba7db4b6561c544de62e08867e1..f6084bb28230a21d80ff770161c2ba08731334e1 100644 --- a/src/main/java/org/olat/admin/sysinfo/SysinfoController.java +++ b/src/main/java/org/olat/admin/sysinfo/SysinfoController.java @@ -32,6 +32,8 @@ import java.lang.management.MemoryMXBean; import java.util.Calendar; import java.util.Date; +import org.olat.admin.sysinfo.manager.SessionStatsManager; +import org.olat.admin.sysinfo.model.SessionsStats; import org.olat.basesecurity.BaseSecurity; import org.olat.core.CoreSpringFactory; import org.olat.core.dispatcher.DispatcherAction; @@ -58,6 +60,7 @@ import org.olat.core.util.WebappHelper; public class SysinfoController extends FormBasicController { private final BaseSecurity securityManager; + private final SessionStatsManager sessionStatsManager; /** * @param ureq @@ -67,6 +70,7 @@ public class SysinfoController extends FormBasicController { super(ureq, wControl, "sysinfo"); securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); + sessionStatsManager = CoreSpringFactory.getImpl(SessionStatsManager.class); initForm(ureq); } @@ -120,6 +124,30 @@ public class SysinfoController extends FormBasicController { uifactory.addStaticTextElement("controllercount", "runtime.controllercount", Integer.toString(controllerCnt), runtimeCont); int numOfDispatchingThreads = DispatcherAction.getConcurrentCounter(); uifactory.addStaticTextElement("dispatchingthreads", "runtime.dispatchingthreads", Integer.toString(numOfDispatchingThreads), runtimeCont); + + //sessions and clicks + String sessionAndClicksPage = velocity_root + "/session_clicks.html"; + FormLayoutContainer sessionAndClicksCont = FormLayoutContainer.createCustomFormLayout("session_clicks", getTranslator(), sessionAndClicksPage); + runtimeCont.add(sessionAndClicksCont); + sessionAndClicksCont.setLabel("sess.and.clicks", null); + + //last 5 minutes + long activeSessions = sessionStatsManager.getActiveSessions(300); + sessionAndClicksCont.contextPut("count5Minutes", String.valueOf(activeSessions)); + SessionsStats stats = sessionStatsManager.getSessionsStatsLast(300); + sessionAndClicksCont.contextPut("click5Minutes", String.valueOf(stats.getAuthenticatedClickCalls())); + sessionAndClicksCont.contextPut("poll5Minutes", String.valueOf(stats.getAuthenticatedPollerCalls())); + sessionAndClicksCont.contextPut("request5Minutes", String.valueOf(stats.getRequests())); + sessionAndClicksCont.contextPut("minutes", String.valueOf(5)); + + //last minute + activeSessions = sessionStatsManager.getActiveSessions(60); + sessionAndClicksCont.contextPut("count1Minute", String.valueOf(activeSessions)); + stats = sessionStatsManager.getSessionsStatsLast(60); + sessionAndClicksCont.contextPut("click1Minute", String.valueOf(stats.getAuthenticatedClickCalls())); + sessionAndClicksCont.contextPut("poll1Minute", String.valueOf(stats.getAuthenticatedPollerCalls())); + sessionAndClicksCont.contextPut("request1Minute", String.valueOf(stats.getRequests())); + sessionAndClicksCont.contextPut("oneMinute", "1"); //server informations FormLayoutContainer serverCont = FormLayoutContainer.createDefaultFormLayout("server", getTranslator()); diff --git a/src/main/java/org/olat/admin/sysinfo/UserSessionController.java b/src/main/java/org/olat/admin/sysinfo/UserSessionController.java index 16016c775458a33ad3107cba6d27e755e7bcbe05..a2245066789ef2f3ba4372a055d37cacef63a718 100644 --- a/src/main/java/org/olat/admin/sysinfo/UserSessionController.java +++ b/src/main/java/org/olat/admin/sysinfo/UserSessionController.java @@ -28,8 +28,6 @@ package org.olat.admin.sysinfo; import java.util.ArrayList; import java.util.List; -import org.olat.admin.sysinfo.manager.SessionStatsManager; -import org.olat.admin.sysinfo.model.SessionsStats; import org.olat.admin.sysinfo.model.UserSessionView; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; @@ -69,7 +67,6 @@ public class UserSessionController extends BasicController implements StackedCon private StackedController stackController; private final UserSessionManager sessionManager; private final InstantMessagingService imService; - private final SessionStatsManager sessionStatsManager; /** @@ -83,7 +80,6 @@ public class UserSessionController extends BasicController implements StackedCon imService = CoreSpringFactory.getImpl(InstantMessagingService.class); sessionManager = CoreSpringFactory.getImpl(UserSessionManager.class); - sessionStatsManager = CoreSpringFactory.getImpl(SessionStatsManager.class); myContent = createVelocityContainer("sessions"); @@ -122,23 +118,6 @@ public class UserSessionController extends BasicController implements StackedCon } usessTableModel = new UserSessionTableModel(authUserSessionViews, getIdentity().getKey()); tableCtr.setTableDataModel(usessTableModel); - //lats 5 minutes - long activeSessions = sessionStatsManager.getActiveSessions(300); - myContent.contextPut("count5Minutes", String.valueOf(activeSessions)); - SessionsStats stats = sessionStatsManager.getSessionsStatsLast(300); - myContent.contextPut("click5Minutes", String.valueOf(stats.getAuthenticatedClickCalls())); - myContent.contextPut("poll5Minutes", String.valueOf(stats.getAuthenticatedPollerCalls())); - myContent.contextPut("request5Minutes", String.valueOf(stats.getRequests())); - myContent.contextPut("minutes", String.valueOf(5)); - - //last minute - activeSessions = sessionStatsManager.getActiveSessions(60); - myContent.contextPut("count1Minute", String.valueOf(activeSessions)); - stats = sessionStatsManager.getSessionsStatsLast(60); - myContent.contextPut("click1Minute", String.valueOf(stats.getAuthenticatedClickCalls())); - myContent.contextPut("poll1Minute", String.valueOf(stats.getAuthenticatedPollerCalls())); - myContent.contextPut("request1Minute", String.valueOf(stats.getRequests())); - myContent.contextPut("oneMinute", "1"); } /** diff --git a/src/main/java/org/olat/admin/sysinfo/_content/session_clicks.html b/src/main/java/org/olat/admin/sysinfo/_content/session_clicks.html new file mode 100644 index 0000000000000000000000000000000000000000..9a560cc5a4ab627d74ffe284ded40ce2299383aa --- /dev/null +++ b/src/main/java/org/olat/admin/sysinfo/_content/session_clicks.html @@ -0,0 +1,27 @@ +<table> + <theader> + <tr> + <th> </th> + <th>$r.translate("sess.active")</th> + <th>$r.translate("sess.click")</th> + <th>$r.translate("sess.poll")</th> + <th>$r.translate("sess.request")</th> + </tr> + </theader> + <tbody> + <tr> + <td>$r.translate("sess.last.1.minute")</td> + <td>$count1Minute</td> + <td>$click1Minute</td> + <td>$poll1Minute</td> + <td>$request1Minute</td> + </tr> + <tr> + <td>$r.translate("sess.last.5.minutes")</td> + <td>$count5Minutes</td> + <td>$click5Minutes</td> + <td>$poll5Minutes</td> + <td>$request5Minutes</td> + </tr> + </tbody> +</table> \ No newline at end of file diff --git a/src/main/java/org/olat/admin/sysinfo/_content/sessions.html b/src/main/java/org/olat/admin/sysinfo/_content/sessions.html index f029cd8820adcef50ce8598ea5ac3380b706d222..85e9f392f079e9c2b1cac94442b2c0474af2a09e 100644 --- a/src/main/java/org/olat/admin/sysinfo/_content/sessions.html +++ b/src/main/java/org/olat/admin/sysinfo/_content/sessions.html @@ -1,31 +1,4 @@ <fieldset><legend>$r.translate("sess.title")</legend> -<table> - <theader> - <tr> - <th> </th> - <th>$r.translate("sess.active")</th> - <th>$r.translate("sess.click")</th> - <th>$r.translate("sess.poll")</th> - <th>$r.translate("sess.request")</th> - </tr> - </theader> - <tbody> - <tr> - <td>$r.translate("sess.last.1.minute")</td> - <td>$count1Minute</td> - <td>$click1Minute</td> - <td>$poll1Minute</td> - <td>$request1Minute</td> - </tr> - <tr> - <td>$r.translate("sess.last.5.minutes")</td> - <td>$count5Minutes</td> - <td>$click5Minutes</td> - <td>$poll5Minutes</td> - <td>$request5Minutes</td> - </tr> - </tbody> -</table> + $r.render("sessiontable") </fieldset> -$r.render("sessiontable") \ No newline at end of file diff --git a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_de.properties index 4a5270eb7824b816cc8c3cfd404e934c3cfd451a..ccd5a2fa8f7fb85f66a71db5dec5015b1d1f5c08 100644 --- a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_de.properties @@ -65,6 +65,7 @@ java.envprops.value=Wert sess.access=Letzter Zugriff sess.active =Aktive Nutzer sess.click=Clicks +sess.and.clicks=$\:sess.active sess.last.1.minute=Letzte Minute sess.last.5.minutes=Letzte 5 Minuten sess.request=Requests diff --git a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_en.properties index 758133ea2fc4aef17fbd53fadd7729cc8bef3fe1..69af17452d121a51420d06eedad127622f433fb1 100644 --- a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_en.properties @@ -98,7 +98,8 @@ runtime.users.lastday=Active users within last 24 hours runtime.users.lastmonth=Active users within last month runtime.users.lastweek=Active users within last 7 days sess.access=Last access -sess.active=Number of users which have clicked within the last {0} minutes +sess.active=Active users +sess.and.clicks=$\:sess.active sess.attributes.title=Attributes sess.authent=Authentication sess.authprovider=Auth. diff --git a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_fr.properties index d991e8f91f45537d7bd0b01305d51c94375cc434..295513ac4d3a88ea149677424ddc54db10882dad 100644 --- a/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/admin/sysinfo/_i18n/LocalStrings_fr.properties @@ -65,7 +65,8 @@ requestloglevel.usernames=Noms d'utilisateurs resetloglevels=Remettre tous les niveaux des log sur INFO run.gc=Run garbage collection sess.access=Dernier acc\u00E8s -sess.active=Nombre d'utilisateurs qui ont cliqu\u00E9 durant les derni\u00E8res {0} minutes +sess.active=Utilisateurs actifs +sess.and.clicks=$\:sess.active sess.attributes.title=Attributs sess.authent=Authentification sess.authprovider=Fournisseur d'authentification