4.4.0 DEV3

This commit is contained in:
Rsl1122 2018-07-16 18:28:06 +03:00
parent bd2ffdce22
commit 9c46021f18
10 changed files with 225 additions and 9 deletions

View File

@ -52,6 +52,10 @@ GraphColors:
ServerPreferencePie: '"#707070", "#828282", "#595959", "#676767", "#7F7F7F", "#989898", "#535353", "#888888", "#6F6F6F", "#707070"' ServerPreferencePie: '"#707070", "#828282", "#595959", "#676767", "#7F7F7F", "#989898", "#535353", "#888888", "#6F6F6F", "#707070"'
WorldMap_High: "#555555" WorldMap_High: "#555555"
WorldMap_Low: "#DDDDDD" WorldMap_Low: "#DDDDDD"
Ping:
Max: '#707070'
Avg: '#828282'
Min: '#595959'
# Leave blank "" for white # Leave blank "" for white
ParsedElements: ParsedElements:

View File

@ -52,6 +52,10 @@ GraphColors:
ServerPreferencePie: '"#2A89A5", "#709B31", "#0075FE", "#865186", "#459A8F", "#A3A344", "#5F3F9E", "#C27B33", "#4A8567", "#5F7291"' ServerPreferencePie: '"#2A89A5", "#709B31", "#0075FE", "#865186", "#459A8F", "#A3A344", "#5F3F9E", "#C27B33", "#4A8567", "#5F7291"'
WorldMap_High: "#386F21" WorldMap_High: "#386F21"
WorldMap_Low: "#EEFFEE" WorldMap_Low: "#EEFFEE"
Ping:
Max: '#ffa000'
Avg: '#ffc107'
Min: '#ffd54f'
# Leave blank "" for white # Leave blank "" for white
ParsedElements: ParsedElements:

View File

@ -52,6 +52,10 @@ GraphColors:
ServerPreferencePie: '"#00E0FF", "#35EF00", "#0075FE", "#F007F0", "#00F5C6", "#C9C900", "#8700FF", "#FF4E00", "#00CF4C", "#267BFF"' ServerPreferencePie: '"#00E0FF", "#35EF00", "#0075FE", "#F007F0", "#00F5C6", "#C9C900", "#8700FF", "#FF4E00", "#00CF4C", "#267BFF"'
WorldMap_High: "#00C800" WorldMap_High: "#00C800"
WorldMap_Low: "#EEFFEE" WorldMap_Low: "#EEFFEE"
Ping:
Max: '#ffa000'
Avg: '#ffc107'
Min: '#ffd54f'
# Leave blank "" for white # Leave blank "" for white
ParsedElements: ParsedElements:

View File

@ -52,6 +52,10 @@ GraphColors:
ServerPreferencePie: '"#84705F", "#948271", "#6D5948", "#7B6755", "#917F6E", "#A89889", "#675342", "#9A8877", "#836F5D", "#84705F"' ServerPreferencePie: '"#84705F", "#948271", "#6D5948", "#7B6755", "#917F6E", "#A89889", "#675342", "#9A8877", "#836F5D", "#84705F"'
WorldMap_High: "#695544" WorldMap_High: "#695544"
WorldMap_Low: "#FFFFFF" WorldMap_Low: "#FFFFFF"
Ping:
Max: '#ffa000'
Avg: '#ffc107'
Min: '#ffd54f'
# Leave blank "" for white # Leave blank "" for white
ParsedElements: ParsedElements:

View File

@ -52,6 +52,10 @@ GraphColors:
ServerPreferencePie: '"#00869B", "#79AC00", "#25455D", "#8D3472", "#33A887", "#C5BC24", "#492176", "#EA7C00", "#307F4C", "#516681"' ServerPreferencePie: '"#00869B", "#79AC00", "#25455D", "#8D3472", "#33A887", "#C5BC24", "#492176", "#EA7C00", "#307F4C", "#516681"'
WorldMap_High: "#267f00" WorldMap_High: "#267f00"
WorldMap_Low: "#EEFFEE" WorldMap_Low: "#EEFFEE"
Ping:
Max: '#ffa000'
Avg: '#ffc107'
Min: '#ffd54f'
# Leave blank "" for white # Leave blank "" for white
ParsedElements: ParsedElements:

View File

@ -52,6 +52,10 @@ GraphColors:
ServerPreferencePie: '"#0099C6", "#66AA00", "#316395", "#994499", "#22AA99", "#AAAA11", "#6633CC", "#E67300", "#329262", "#5574A6"' ServerPreferencePie: '"#0099C6", "#66AA00", "#316395", "#994499", "#22AA99", "#AAAA11", "#6633CC", "#E67300", "#329262", "#5574A6"'
WorldMap_High: "#267f00" WorldMap_High: "#267f00"
WorldMap_Low: "#EEFFEE" WorldMap_Low: "#EEFFEE"
Ping:
Max: '#ffa000'
Avg: '#ffc107'
Min: '#ffd54f'
# Leave blank "" for white # Leave blank "" for white
ParsedElements: ParsedElements:

View File

@ -0,0 +1,40 @@
function horizontalBarChart(id, categories, series, text) {
Highcharts.chart(id, {
chart: {
type: 'bar'
},
title: {
text: ''
},
xAxis: {
categories: categories,
title: {
text: null
}
},
yAxis: {
min: 0,
title: {
text: text,
align: 'high'
},
labels: {
overflow: 'justify'
}
},
legend: {
enabled: false
},
plotOptions: {
bar: {
dataLabels: {
enabled: true
}
}
},
credits: {
enabled: true
},
series: series
});
}

View File

@ -0,0 +1,36 @@
function lineChart(id, series) {
Highcharts.stockChart(id, {
rangeSelector: {
selected: 2,
buttons: [{
type: 'hour',
count: 12,
text: '12h'
}, {
type: 'hour',
count: 24,
text: '24h'
}, {
type: 'day',
count: 7,
text: '7d'
}, {
type: 'month',
count: 1,
text: '30d'
}, {
type: 'all',
text: 'All'
}]
},
yAxis: {
softMax: 2,
softMin: 0
},
title: {text: ''},
legend: {
enabled: true
},
series: series
});
}

View File

@ -473,7 +473,14 @@
</div> </div>
</div> </div>
<div class="body"> <div class="body">
<div id="worldMap" class="dashboard-flot-chart"></div> <div class="row clearfix">
<div class="col-xs-12 col-sm-12 col-md-3 col-lg-3">
<div id="countryBarChart" class="dashboard-flot-chart"></div>
</div>
<div class="col-xs-12 col-sm-12 col-md-9 col-lg-9">
<div id="worldMap" class="dashboard-flot-chart"></div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -511,6 +518,7 @@
<script src="../js/charts/activityPie.js"></script> <script src="../js/charts/activityPie.js"></script>
<script src="../js/charts/stackGraph.js"></script> <script src="../js/charts/stackGraph.js"></script>
<script src="../js/charts/worldMap.js"></script> <script src="../js/charts/worldMap.js"></script>
<script src="../js/charts/horizontalBarGraph.js"></script>
<!-- Chart Data --> <!-- Chart Data -->
<script> <script>
@ -533,7 +541,9 @@
geolocations: ${geoMapSeries}, geolocations: ${geoMapSeries},
activityStack: ${activityStackSeries}, activityStack: ${activityStackSeries},
activityStackCategories: ${activityStackCategories}, activityStackCategories: ${activityStackCategories},
healthIndex: ${healthIndex} healthIndex: ${healthIndex},
countryCategories: ${countryCategories},
country: ${countrySeries}
} }
}; };
// HighCharts Series // HighCharts Series
@ -559,6 +569,11 @@
colorByPoint: true, colorByPoint: true,
data: v.data.activityPie data: v.data.activityPie
}, },
country: {
color: '#4CAF50',
name: 'Players',
data: v.data.country
},
activityStack: v.data.activityStack, activityStack: v.data.activityStack,
activityStackCategories: v.data.activityStackCategories activityStackCategories: v.data.activityStackCategories
}; };
@ -590,6 +605,7 @@
stackChart('activityStackGraph', series.activityStackCategories, series.activityStack, 'Players'); stackChart('activityStackGraph', series.activityStackCategories, series.activityStack, 'Players');
healthGauge('healthGauge', [v.data.healthIndex]); healthGauge('healthGauge', [v.data.healthIndex]);
worldMap('worldMap', v.colors.geolocationsLow, v.colors.geolocationsHigh, series.geolocations); worldMap('worldMap', v.colors.geolocationsLow, v.colors.geolocationsHigh, series.geolocations);
horizontalBarChart('countryBarChart', v.data.countryCategories, [series.country], 'Players');
function openFunc(i) { function openFunc(i) {
return function () { return function () {

View File

@ -468,7 +468,8 @@
data-container="body" data-html="true" data-container="body" data-html="true"
data-original-title="Player Online Activity" data-original-title="Player Online Activity"
data-content="Chart of Player Counts, recorded by TPS task. data-content="Chart of Player Counts, recorded by TPS task.
<br><br>TPS task starts 50 seconds after Plan enables and records Maximum player count for each minute." <br><br>TPS task starts 50 seconds after Plan enables and records Maximum player count for each minute.
<br><br><b>Unique Players:</b> Calculated from sessions, new players are calculated from register dates. Same data is available on the Calendar."
>help_outline</a> >help_outline</a>
<ul class="nav nav-tabs tab-nav-right" role="tablist"> <ul class="nav nav-tabs tab-nav-right" role="tablist">
<li role="presentation" class="active"><a href="#playersOnline" <li role="presentation" class="active"><a href="#playersOnline"
@ -819,7 +820,7 @@
tabindex="0" data-trigger="focus" data-toggle="popover" data-placement="left" tabindex="0" data-trigger="focus" data-toggle="popover" data-placement="left"
data-container="body" data-html="true" data-container="body" data-html="true"
data-original-title="Performance Charts" data-original-title="Performance Charts"
data-content="Charts of different performance metrics, recorded by TPS task. data-content="Charts of different performance metrics, recorded by TPS task & Ping task.
<br><br>TPS task starts 50 seconds after Plan enables and records Maximum player count & Average of other metrics for each minute. <br><br>TPS task starts 50 seconds after Plan enables and records Maximum player count & Average of other metrics for each minute.
<br><br>Any dataset can be hidden by clicking the name in the legend. <br><br>Any dataset can be hidden by clicking the name in the legend.
<br><br>Note: Due to JVM performance restraints CPU usage may be unavailable on some Machines." <br><br>Note: Due to JVM performance restraints CPU usage may be unavailable on some Machines."
@ -835,6 +836,9 @@
<li role="presentation"><a href="#world" data-toggle="tab"><i <li role="presentation"><a href="#world" data-toggle="tab"><i
class="fa fa-map"></i> class="fa fa-map"></i>
WORLD LOAD</a></li> WORLD LOAD</a></li>
<li role="presentation"><a href="#ping" data-toggle="tab"><i
class="fa fa-signal"></i>
PING</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -853,6 +857,9 @@
<div role="tabpanel" class="tab-pane fade" id="world"> <div role="tabpanel" class="tab-pane fade" id="world">
<div id="worldGraph" style="height: 500px;"></div> <div id="worldGraph" style="height: 500px;"></div>
</div> </div>
<div role="tabpanel" class="tab-pane fade" id="ping">
<div id="pingGraph" style="height: 500px;"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -1044,7 +1051,39 @@
</div> </div>
</div> </div>
<div class="body"> <div class="body">
<div id="worldMap" class="dashboard-flot-chart"></div> <div class="row clearfix">
<div class="col-xs-12 col-sm-12 col-md-3 col-lg-3">
<div id="countryBarChart" class="dashboard-flot-chart"></div>
</div>
<div class="col-xs-12 col-sm-12 col-md-9 col-lg-9">
<div id="worldMap" class="dashboard-flot-chart"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="card">
<div class="header">
<div class="row clearfix">
<div class="col-xs-8 col-sm-8 col-lg-8">
<h2><i class="fa fa-wifi"></i> Connection Information</h2>
</div>
<div class="col-xs-4 col-sm-4 col-lg-4">
<a href="javascript:void(0)" class="help material-icons pull-right"
tabindex="0" data-trigger="focus" data-toggle="popover" data-placement="left"
data-container="body" data-html="true"
data-original-title="Connection Information"
data-content="Ping gathered by Ping task - Ping data is stored for 2 weeks.<br><br>
Geolocations are not directly linked to ping data, so player's ping is placed under the most recent login location."
>help_outline</a>
</div>
</div>
</div>
<div class="panel panel-default">
${tablePing}
</div> </div>
</div> </div>
</div> </div>
@ -1119,6 +1158,7 @@
<script src="js/charts/punchCard.js"></script> <script src="js/charts/punchCard.js"></script>
<script src="js/charts/healthGauge.js"></script> <script src="js/charts/healthGauge.js"></script>
<script src="js/charts/activityPie.js"></script> <script src="js/charts/activityPie.js"></script>
<script src="js/charts/lineGraph.js"></script>
<script src="js/charts/stackGraph.js"></script> <script src="js/charts/stackGraph.js"></script>
<script src="js/charts/worldPie.js"></script> <script src="js/charts/worldPie.js"></script>
<script src="js/charts/performanceGraph.js"></script> <script src="js/charts/performanceGraph.js"></script>
@ -1127,6 +1167,7 @@
<script src="js/charts/worldGraph.js"></script> <script src="js/charts/worldGraph.js"></script>
<script src="js/charts/worldMap.js"></script> <script src="js/charts/worldMap.js"></script>
<script src="js/charts/onlineActivityCalendar.js"></script> <script src="js/charts/onlineActivityCalendar.js"></script>
<script src="js/charts/horizontalBarGraph.js"></script>
<!-- Chart Data --> <!-- Chart Data -->
<script> <script>
@ -1134,13 +1175,14 @@
lang: {noData: "No Data to Display"}, lang: {noData: "No Data to Display"},
time: { time: {
timezoneOffset: ${timeZone} * 60 timezoneOffset: ${timeZone} * 60
} }
}) })
// Replaced Variables // Replaced Variables
var v = { var v = {
colors: { colors: {
playersOnline: '${playersGraphColor}', playersOnline: '${playersGraphColor}',
newPlayers: '#8BC34A',
tpsLow: '${tpsLowColor}', tpsLow: '${tpsLowColor}',
tpsMed: '${tpsMediumColor}', tpsMed: '${tpsMediumColor}',
tpsHigh: '${tpsHighColor}', tpsHigh: '${tpsHighColor}',
@ -1150,7 +1192,10 @@
chunks: '#b58310', chunks: '#b58310',
geolocationsLow: '${worldMapColLow}', geolocationsLow: '${worldMapColLow}',
geolocationsHigh: '${worldMapColHigh}', geolocationsHigh: '${worldMapColHigh}',
punchCard: '#222' punchCard: '#222',
maxPing: '${maxPingColor}',
minPing: '${minPingColor}',
avgPing: '${avgPingColor}'
}, },
values: { values: {
tpsMed: ${tpsMedium}, tpsMed: ${tpsMedium},
@ -1159,6 +1204,8 @@
}, },
data: { data: {
playersOnline: ${playersOnlineSeries}, playersOnline: ${playersOnlineSeries},
uniquePlayers: ${uniquePlayersSeries},
newPlayers: ${newPlayersSeries},
tps: ${tpsSeries}, tps: ${tpsSeries},
cpu: ${cpuSeries}, cpu: ${cpuSeries},
ram: ${ramSeries}, ram: ${ramSeries},
@ -1172,7 +1219,12 @@
activityStack: ${activityStackSeries}, activityStack: ${activityStackSeries},
activityStackCategories: ${activityStackCategories}, activityStackCategories: ${activityStackCategories},
healthIndex: ${healthIndex}, healthIndex: ${healthIndex},
calendar: ${calendarSeries} calendar: ${calendarSeries},
countryCategories: ${countryCategories},
country: ${countrySeries},
avgPing: ${avgPingSeries},
maxPing: ${maxPingSeries},
minPing: ${minPingSeries}
} }
}; };
@ -1180,11 +1232,16 @@
var s = { var s = {
name: { name: {
playersOnline: 'Players Online', playersOnline: 'Players Online',
uniquePlayers: 'Unique Players',
newPlayers: 'New Players',
tps: 'TPS', tps: 'TPS',
cpu: 'CPU Usage (%)', cpu: 'CPU Usage (%)',
ram: 'RAM Usage (MB)', ram: 'RAM Usage (MB)',
entities: 'Loaded Entities', entities: 'Loaded Entities',
chunks: 'Loaded Chunks' chunks: 'Loaded Chunks',
maxPing: 'Worst Ping',
minPing: 'Best Ping',
avgPing: 'Average Ping'
}, },
tooltip: { tooltip: {
twoDecimals: { twoDecimals: {
@ -1220,6 +1277,41 @@
color: v.colors.playersOnline, color: v.colors.playersOnline,
yAxis: 0 yAxis: 0
}, },
avgPing: {
name: s.name.avgPing,
type: s.type.spline,
tooltip: s.tooltip.twoDecimals,
data: v.data.avgPing,
color: v.colors.avgPing
},
maxPing: {
name: s.name.maxPing,
type: s.type.spline,
tooltip: s.tooltip.zeroDecimals,
data: v.data.maxPing,
color: v.colors.maxPing
},
minPing: {
name: s.name.minPing,
type: s.type.spline,
tooltip: s.tooltip.zeroDecimals,
data: v.data.minPing,
color: v.colors.minPing
},
uniquePlayers: {
name: s.name.uniquePlayers,
type: s.type.spline,
tooltip: s.tooltip.zeroDecimals,
data: v.data.uniquePlayers,
color: v.colors.playersOnline
},
newPlayers: {
name: s.name.newPlayers,
type: s.type.spline,
tooltip: s.tooltip.zeroDecimals,
data: v.data.newPlayers,
color: v.colors.newPlayers
},
tps: { tps: {
name: s.name.tps, name: s.name.tps,
type: s.type.spline, type: s.type.spline,
@ -1315,6 +1407,11 @@
color: v.colors.punchCard, color: v.colors.punchCard,
data: v.data.punchCard data: v.data.punchCard
}, },
country: {
color: '#4CAF50',
name: 'Players',
data: v.data.country
},
activityStack: v.data.activityStack, activityStack: v.data.activityStack,
activityStackCategories: v.data.activityStackCategories activityStackCategories: v.data.activityStackCategories
}; };
@ -1346,6 +1443,7 @@
// Chart draw scripts // Chart draw scripts
activityPie('activityPie', series.activityPie); activityPie('activityPie', series.activityPie);
lineChart('uniqueChart', [series.uniquePlayers, series.newPlayers]);
stackChart('activityStackGraph', series.activityStackCategories, series.activityStack, 'Players'); stackChart('activityStackGraph', series.activityStackCategories, series.activityStack, 'Players');
worldPie('worldPie', series.worldPie, series.worldPieDrillDown); worldPie('worldPie', series.worldPie, series.worldPieDrillDown);
playersChart('playerChartDay', series.playersOnline, 3); playersChart('playerChartDay', series.playersOnline, 3);
@ -1358,6 +1456,8 @@
punchCard('punchCard', series.punchCard); punchCard('punchCard', series.punchCard);
healthGauge('healthGauge', [v.data.healthIndex]); healthGauge('healthGauge', [v.data.healthIndex]);
onlineActivityCalendar('#calendar', v.data.calendar, v.values.firstDay); onlineActivityCalendar('#calendar', v.data.calendar, v.values.firstDay);
horizontalBarChart('countryBarChart', v.data.countryCategories, [series.country], 'Players');
lineChart('pingGraph', [series.avgPing, series.maxPing, series.minPing]);
${sessionTabGraphViewFunctions} ${sessionTabGraphViewFunctions}
/**/ /**/