Skip to content
Snippets Groups Projects
Commit 600ed54c authored by srosse's avatar srosse
Browse files

no-jira: move the sessions/clicks/requests statistics to the system informations panel

parent 7e8e6611
No related branches found
No related tags found
No related merge requests found
...@@ -32,6 +32,8 @@ import java.lang.management.MemoryMXBean; ...@@ -32,6 +32,8 @@ import java.lang.management.MemoryMXBean;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; 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.basesecurity.BaseSecurity;
import org.olat.core.CoreSpringFactory; import org.olat.core.CoreSpringFactory;
import org.olat.core.dispatcher.DispatcherAction; import org.olat.core.dispatcher.DispatcherAction;
...@@ -58,6 +60,7 @@ import org.olat.core.util.WebappHelper; ...@@ -58,6 +60,7 @@ import org.olat.core.util.WebappHelper;
public class SysinfoController extends FormBasicController { public class SysinfoController extends FormBasicController {
private final BaseSecurity securityManager; private final BaseSecurity securityManager;
private final SessionStatsManager sessionStatsManager;
/** /**
* @param ureq * @param ureq
...@@ -67,6 +70,7 @@ public class SysinfoController extends FormBasicController { ...@@ -67,6 +70,7 @@ public class SysinfoController extends FormBasicController {
super(ureq, wControl, "sysinfo"); super(ureq, wControl, "sysinfo");
securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); securityManager = CoreSpringFactory.getImpl(BaseSecurity.class);
sessionStatsManager = CoreSpringFactory.getImpl(SessionStatsManager.class);
initForm(ureq); initForm(ureq);
} }
...@@ -120,6 +124,30 @@ public class SysinfoController extends FormBasicController { ...@@ -120,6 +124,30 @@ public class SysinfoController extends FormBasicController {
uifactory.addStaticTextElement("controllercount", "runtime.controllercount", Integer.toString(controllerCnt), runtimeCont); uifactory.addStaticTextElement("controllercount", "runtime.controllercount", Integer.toString(controllerCnt), runtimeCont);
int numOfDispatchingThreads = DispatcherAction.getConcurrentCounter(); int numOfDispatchingThreads = DispatcherAction.getConcurrentCounter();
uifactory.addStaticTextElement("dispatchingthreads", "runtime.dispatchingthreads", Integer.toString(numOfDispatchingThreads), runtimeCont); 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 //server informations
FormLayoutContainer serverCont = FormLayoutContainer.createDefaultFormLayout("server", getTranslator()); FormLayoutContainer serverCont = FormLayoutContainer.createDefaultFormLayout("server", getTranslator());
......
...@@ -28,8 +28,6 @@ package org.olat.admin.sysinfo; ...@@ -28,8 +28,6 @@ package org.olat.admin.sysinfo;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.admin.sysinfo.model.UserSessionView;
import org.olat.core.CoreSpringFactory; import org.olat.core.CoreSpringFactory;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
...@@ -69,7 +67,6 @@ public class UserSessionController extends BasicController implements StackedCon ...@@ -69,7 +67,6 @@ public class UserSessionController extends BasicController implements StackedCon
private StackedController stackController; private StackedController stackController;
private final UserSessionManager sessionManager; private final UserSessionManager sessionManager;
private final InstantMessagingService imService; private final InstantMessagingService imService;
private final SessionStatsManager sessionStatsManager;
/** /**
...@@ -83,7 +80,6 @@ public class UserSessionController extends BasicController implements StackedCon ...@@ -83,7 +80,6 @@ public class UserSessionController extends BasicController implements StackedCon
imService = CoreSpringFactory.getImpl(InstantMessagingService.class); imService = CoreSpringFactory.getImpl(InstantMessagingService.class);
sessionManager = CoreSpringFactory.getImpl(UserSessionManager.class); sessionManager = CoreSpringFactory.getImpl(UserSessionManager.class);
sessionStatsManager = CoreSpringFactory.getImpl(SessionStatsManager.class);
myContent = createVelocityContainer("sessions"); myContent = createVelocityContainer("sessions");
...@@ -122,23 +118,6 @@ public class UserSessionController extends BasicController implements StackedCon ...@@ -122,23 +118,6 @@ public class UserSessionController extends BasicController implements StackedCon
} }
usessTableModel = new UserSessionTableModel(authUserSessionViews, getIdentity().getKey()); usessTableModel = new UserSessionTableModel(authUserSessionViews, getIdentity().getKey());
tableCtr.setTableDataModel(usessTableModel); 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");
} }
/** /**
......
<table>
<theader>
<tr>
<th>&nbsp;</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
<fieldset><legend>$r.translate("sess.title")</legend> <fieldset><legend>$r.translate("sess.title")</legend>
<table> $r.render("sessiontable")
<theader>
<tr>
<th>&nbsp;</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>
</fieldset> </fieldset>
$r.render("sessiontable")
\ No newline at end of file
...@@ -65,6 +65,7 @@ java.envprops.value=Wert ...@@ -65,6 +65,7 @@ java.envprops.value=Wert
sess.access=Letzter Zugriff sess.access=Letzter Zugriff
sess.active =Aktive Nutzer sess.active =Aktive Nutzer
sess.click=Clicks sess.click=Clicks
sess.and.clicks=$\:sess.active
sess.last.1.minute=Letzte Minute sess.last.1.minute=Letzte Minute
sess.last.5.minutes=Letzte 5 Minuten sess.last.5.minutes=Letzte 5 Minuten
sess.request=Requests sess.request=Requests
......
...@@ -98,7 +98,8 @@ runtime.users.lastday=Active users within last 24 hours ...@@ -98,7 +98,8 @@ runtime.users.lastday=Active users within last 24 hours
runtime.users.lastmonth=Active users within last month runtime.users.lastmonth=Active users within last month
runtime.users.lastweek=Active users within last 7 days runtime.users.lastweek=Active users within last 7 days
sess.access=Last access 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.attributes.title=Attributes
sess.authent=Authentication sess.authent=Authentication
sess.authprovider=Auth. sess.authprovider=Auth.
......
...@@ -65,7 +65,8 @@ requestloglevel.usernames=Noms d'utilisateurs ...@@ -65,7 +65,8 @@ requestloglevel.usernames=Noms d'utilisateurs
resetloglevels=Remettre tous les niveaux des log sur INFO resetloglevels=Remettre tous les niveaux des log sur INFO
run.gc=Run garbage collection run.gc=Run garbage collection
sess.access=Dernier acc\u00E8s 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.attributes.title=Attributs
sess.authent=Authentification sess.authent=Authentification
sess.authprovider=Fournisseur d'authentification sess.authprovider=Fournisseur d'authentification
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment