Skip to content

Commit

Permalink
#8 Basic graph for usersessions.
Browse files Browse the repository at this point in the history
  • Loading branch information
baardl committed Mar 8, 2016
1 parent 7a179a4 commit ba37841
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 15 deletions.
8 changes: 7 additions & 1 deletion src/main/java/org/valuereporter/activity/ActivitiesDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.BadSqlGrammarException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -83,7 +84,12 @@ public List<ObservedActivity> findUserSessions(DateTime startPeriod, DateTime en
String sql = "Select * from usersession where starttime > ? and starttime < ?";
long millisFrom = startPeriod.minusMillis(1).getMillis() ;
long millisTo = endPeriod.plusMillis(1).getMillis() ;
List<ObservedActivity> userSessions = jdbcTemplate.query(sql, new Object[]{new Timestamp(millisFrom), new Timestamp(millisTo)}, new UserSessionMapper());
List<ObservedActivity> userSessions = new ArrayList<>();
try {
userSessions = jdbcTemplate.query(sql, new Object[]{new Timestamp(millisFrom), new Timestamp(millisTo)}, new UserSessionMapper());
} catch (BadSqlGrammarException e) {
log.info("Failed to query the database for Sql {} Reason: {}", sql, e.getMessage());
}
return userSessions;
}

Expand Down
5 changes: 4 additions & 1 deletion src/main/java/org/valuereporter/gui/WhdyahGuiController.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,12 @@ public ModelAndView showSlaGraph(@RequestParam(value = PREFIX, required = false)


@RequestMapping("/whydah/usersession")
public ModelAndView showSlaGraphInterval(@RequestParam(value = PREFIX, required = true) String prefix, @RequestParam(value = METHOD_NAME, required = true) String methodName,
public ModelAndView showSlaGraphInterval(@RequestParam(value = PREFIX, required = false) String prefix, @RequestParam(value = METHOD_NAME, required = false) String methodName,
@RequestParam(value = FROM, required = false) Long from, @RequestParam(value = TO, required = false) String to) {
Map model = new HashMap<String,String>();
if (prefix == null || prefix.isEmpty()) {
prefix = "all";
}
model.put(PREFIX, prefix);
model.put(METHOD_NAME, methodName);
model.put("username", "All");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
import org.valuereporter.activity.ObservedActivity;
import org.valuereporter.whydah.LogonDao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.slf4j.LoggerFactory.getLogger;

Expand Down Expand Up @@ -77,6 +79,17 @@ public ActivityStatistics findUserSessions(Long startTime, Long endTime) {
DateTime startPeriod = buildStartPeriod(startTime, endPeriod);
List<ObservedActivity> userSessions = activitiesDao.findUserSessions(startPeriod, endPeriod);
ActivityStatistics activityStatistics = new ActivityStatistics("All","userSession", startPeriod.getMillis(), endPeriod.getMillis());
if (allowStubData) {
if (userSessions == null || userSessions.size() == 0) {
Map data = new HashMap<>();
data.put("usersessionfunction",null);
data.put("applicationid","app1");
data.put("userid","me");
data.put("applicationtokenid","token1");
ObservedActivity stubbedSession = new ObservedActivity("userSession",System.currentTimeMillis(), data);
userSessions.add(stubbedSession);
}
}
activityStatistics.add("userSessions", userSessions);
return activityStatistics;
}
Expand Down
29 changes: 16 additions & 13 deletions src/main/webapp/pages/whydah/usersessions.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
<h4>${message}</h4>
<div id="chart2" style="height:500px; width:800px;"></div>

<script src="http://code.jquery.com/jquery.js"></script>
<script src="//code.jquery.com/jquery.js"></script>
<!--<script src="${pageContext.request.contextPath}/js/jquery-1.8.2.min.js"></script> -->
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<script src="//code.highcharts.com/highcharts.js"></script>
<script src="//code.highcharts.com/modules/exporting.js"></script>
<script type="text/javascript">
// Expected output
//{"prefix":"All","activityName":"userSession","startTime":1457332781744,"endTime":1457419181744,"activities":{"userSessions":[{"prefix":"","name":"userSession","startTime":1457419114782,"data":{"usersessionfunction":null,"applicationid":"app1","userid":"me","applicationtokenid":"token1"}},{"prefix":"","name":"userSession","startTime":1457419114782,"data":{"usersessionfunction":null,"applicationid":"app2","userid":"me","applicationtokenid":"token2"}}]}}
Expand All @@ -23,14 +23,14 @@
}
});
var chart;
$.getJSON('/reporter/observe/sla/interval/${model.prefix}?filter=${model.methodName}&from=${model.from}&to=${model.to}', function(data) {
var methodNames = '${model.methodName}'.split(".");
var niceNum=methodNames.length-2;
var graphTitle=methodNames[niceNum] + '.' + methodNames[niceNum+1];
$.getJSON('/reporter/observe/statistics/${model.prefix}/usersession?startTime=${model.from}&endTime=${model.to}', function(data) {
<%--var methodNames = '${model.methodName}'.split(".");--%>
// var niceNum=methodNames.length-2;
var graphTitle='User Session activities';//methodNames[niceNum] + '.' + methodNames[niceNum+1];
var series=[
{
name: 'Count',
name: 'User Session',
data: []
},
{
Expand All @@ -46,12 +46,15 @@
data: [],
visible: false
}];
data.forEach(function(interval){
var userlogons = data.activities.userSessions;
userlogons.forEach(function(usersession){
// data.forEach(function(interval){
//console.log("startTime: " + interval.startTime +", mean : " + interval.mean + ", max: " + interval.max + ", p95: " + interval.p95);
series[0].data.push([interval.startTime,interval.count]);
series[1].data.push([interval.startTime,interval.mean]);
series[2].data.push([interval.startTime,interval.p95]);
series[3].data.push([interval.startTime,interval.max]);
//usersession.data.usersessionfunction=null
series[0].data.push([usersession.startTime,1]);
// series[1].data.push([interval.startTime,interval.mean]);
// series[2].data.push([interval.startTime,interval.p95]);
// series[3].data.push([interval.startTime,interval.max]);
});
$('#chart2').highcharts({
Expand Down

0 comments on commit ba37841

Please sign in to comment.