admin: Add stats about submissions rate

This commit is contained in:
nemunaire 2022-06-08 03:40:03 +02:00
commit 329bd246c7
4 changed files with 144 additions and 1 deletions

View file

@ -1723,6 +1723,32 @@ angular.module("FICApp")
}
})
.controller("SubmissionsStatsController", function($scope, $http, $interval) {
var refresh = function() {
$http({
url: "api/submissions-stats.json",
}).then(function(response) {
$scope.submissionsstats = response.data;
});
}
var myinterval = $interval(refresh, 15000);
refresh();
$scope.$on('$destroy', function () { $interval.cancel(myinterval); });
})
.controller("ValidationsStatsController", function($scope, $http, $interval) {
var refresh = function() {
$http({
url: "api/validations-stats.json",
}).then(function(response) {
$scope.validationsstats = response.data;
});
}
var myinterval = $interval(refresh, 15000);
refresh();
$scope.$on('$destroy', function () { $interval.cancel(myinterval); });
})
.controller("ExercicesStatsController", function($scope, Themes, ExercicesStats) {
$scope.themes = Themes.get();
$scope.exercices = {};

View file

@ -1,4 +1,4 @@
<div class="jumbotron text-light bg-dark">
<div class="jumbotron text-light bg-dark py-3">
<h1 class="display-4">Interface d'administration du challenge</h1>
<div class="row">
<div class="col">
@ -9,6 +9,20 @@
Latence frontend-backend : <span ng-class="{'text-success': t.diffFB <= 1000000000, 'text-warning': t.diffFB > 1000000000, 'text-danger': t.diffFB > 1500000000}"><ng-pluralize count="t.diffFB / 1000000000" when="{'one': '{}&nbsp;seconde', 'other': '{}&nbsp;secondes'}"></ng-pluralize></span><br>
Dernière synchronisation du frontend : {{ t.frontend | date:"mediumTime" }}
</p>
<ul class="pagination" ng-controller="SubmissionsStatsController">
<li class="page-item" title="Nombre de soumissions la dernière minute"><a class="page-link">{{ submissionsstats.nbsubminute }}</a></li>
<li class="page-item" title="Taux de soumission ces dernières 5 minutes ; total : {{ submissionsstats.nbsub5minute }}"><a class="page-link">{{ submissionsstats.nbsub5minute / 5 | number:2 }}</a></li>
<li class="page-item" title="Taux de soumission ces dernières 15 minutes ; total : {{ submissionsstats.nbsubquarter }}"><a class="page-link">{{ submissionsstats.nbsubquarter / 15 | number:2 }}</a></li>
<li class="page-item" title="Taux de soumission cette dernière heure ; total : {{ submissionsstats.nbsubhour }}"><a class="page-link">{{ submissionsstats.nbsubhour / 60 | number:2 }}</a></li>
<li class="page-item" title="Taux de soumission ce dernier jour ; total : {{ submissionsstats.nbsubday }}"><a class="page-link">{{ submissionsstats.nbsubday / 1440 | number:2 }}</a></li>
</ul>
<ul class="pagination" ng-controller="ValidationsStatsController">
<li class="page-item" title="Nombre de validations la dernière minute"><a class="page-link text-success">{{ validationsstats.nbsubminute }}</a></li>
<li class="page-item" title="Taux de validation ces dernières 5 minutes ; total : {{ validationsstats.nbsub5minute }}"><a class="page-link text-success">{{ validationsstats.nbsub5minute / 5 | number:2 }}</a></li>
<li class="page-item" title="Taux de validation ces dernières 15 minutes ; total : {{ validationsstats.nbsubquarter }}"><a class="page-link text-success">{{ validationsstats.nbsubquarter / 15 | number:2 }}</a></li>
<li class="page-item" title="Taux de validation cette dernière heure ; total : {{ validationsstats.nbsubhour }}"><a class="page-link text-success">{{ validationsstats.nbsubhour / 60 | number:2 }}</a></li>
<li class="page-item" title="Taux de validation ce dernier jour ; total : {{ validationsstats.nbsubday }}"><a class="page-link text-success">{{ validationsstats.nbsubday / 1440 | number:2 }}</a></li>
</ul>
</div>
<div class="col">