aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin/requests/request-stats
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+admin/requests/request-stats')
-rw-r--r--client/src/app/+admin/requests/request-stats/index.ts1
-rw-r--r--client/src/app/+admin/requests/request-stats/request-stats.component.html33
-rw-r--r--client/src/app/+admin/requests/request-stats/request-stats.component.scss19
-rw-r--r--client/src/app/+admin/requests/request-stats/request-stats.component.ts48
4 files changed, 101 insertions, 0 deletions
diff --git a/client/src/app/+admin/requests/request-stats/index.ts b/client/src/app/+admin/requests/request-stats/index.ts
new file mode 100644
index 000000000..be3a66f77
--- /dev/null
+++ b/client/src/app/+admin/requests/request-stats/index.ts
@@ -0,0 +1 @@
export * from './request-stats.component';
diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.html b/client/src/app/+admin/requests/request-stats/request-stats.component.html
new file mode 100644
index 000000000..9dbed1739
--- /dev/null
+++ b/client/src/app/+admin/requests/request-stats/request-stats.component.html
@@ -0,0 +1,33 @@
1<h3>Requests stats</h3>
2
3<div *ngIf="stats !== null">
4 <div class="requests-general">
5 <div>
6 <span class="label-description">Remaining requests:</span>
7 {{ stats.totalRequests }}
8 </div>
9
10 <div>
11 <span class="label-description">Interval seconds between requests:</span>
12 {{ stats.secondsInterval }}
13 </div>
14
15 <div>
16 <span class="label-description">Remaining time before the scheduled request:</span>
17 {{ stats.remainingSeconds }}
18 </div>
19 </div>
20
21 <div class="requests-limit">
22 <div>
23 <span class="label-description">Maximum number of different pods for a scheduled request:</span>
24 {{ stats.requestsLimitPods }}
25 </div>
26
27 <div>
28 <span class="label-description">Maximum number of requests per pod for a scheduled request:</span>
29 {{ stats.requestsLimitPerPod }}
30 </div>
31 </div>
32
33</div>
diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.scss b/client/src/app/+admin/requests/request-stats/request-stats.component.scss
new file mode 100644
index 000000000..9c68fba99
--- /dev/null
+++ b/client/src/app/+admin/requests/request-stats/request-stats.component.scss
@@ -0,0 +1,19 @@
1.label-description {
2 display: inline-block;
3 font-weight: bold;
4 color: black;
5}
6
7.requests-general {
8 .label-description {
9 width: 320px;
10 }
11}
12
13.requests-limit {
14 margin-top: 20px;
15
16 .label-description {
17 width: 430px;
18 }
19}
diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.ts b/client/src/app/+admin/requests/request-stats/request-stats.component.ts
new file mode 100644
index 000000000..23b836779
--- /dev/null
+++ b/client/src/app/+admin/requests/request-stats/request-stats.component.ts
@@ -0,0 +1,48 @@
1import { setInterval } from 'timers'
2import { Component, OnInit, OnDestroy } from '@angular/core';
3
4import { RequestService, RequestStats } from '../shared';
5
6@Component({
7 selector: 'my-request-stats',
8 templateUrl: './request-stats.component.html',
9 styleUrls: [ './request-stats.component.scss' ]
10})
11export class RequestStatsComponent implements OnInit, OnDestroy {
12 stats: RequestStats = null;
13
14 private interval: NodeJS.Timer = null;
15
16 constructor(private requestService: RequestService) { }
17
18 ngOnInit() {
19 this.getStats();
20 this.runInterval();
21 }
22
23 ngOnDestroy() {
24 if (this.stats !== null && this.stats.secondsInterval !== null) {
25 clearInterval(this.interval);
26 }
27 }
28
29 getStats() {
30 this.requestService.getStats().subscribe(
31 stats => this.stats = stats,
32
33 err => alert(err.text)
34 );
35 }
36
37 private runInterval() {
38 this.interval = setInterval(() => {
39 this.stats.remainingMilliSeconds -= 1000;
40
41 if (this.stats.remainingMilliSeconds <= 0) {
42 setTimeout(() => this.getStats(), this.stats.remainingMilliSeconds + 100);
43 }
44 }, 1000);
45 }
46
47
48}