Skip to content

Commit

Permalink
Add parameter to stats requests "history=no" which doesn't return his…
Browse files Browse the repository at this point in the history
…tograms.
  • Loading branch information
Misterblue committed Oct 30, 2020
1 parent 55271bb commit a64ea50
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 20 deletions.
4 changes: 2 additions & 2 deletions src/Monitoring/Stat.ts
Expand Up @@ -67,14 +67,14 @@ export abstract class Stat {
// Called once a second to do any gathering operation
abstract Gather(): void;
// Return an object containing the values in this stat
Report(): any {
Report(pReturnHistogram: boolean = true): any {
const report: VKeyedCollection = {
'name': this.name,
'category': this.category,
'unit': this.unit,
'value': this.value
};
if (this._histograms.size > 0) {
if (pReturnHistogram && this._histograms.size > 0) {
const history: any = {};
this._histograms.forEach( (histo, name) => {
history[name] = histo.GetHistogram();
Expand Down
6 changes: 3 additions & 3 deletions src/Monitoring/StatsOs.ts
Expand Up @@ -64,15 +64,15 @@ export class StatsOs extends Stat {
Gather(): void {
return;
}
Report() {
Report(pReturnHistogram: boolean = true) {
return {
'cpus': os.cpus(),
'freemem': os.freemem(),
'totalmem': os.totalmem(),
'loadavg': os.loadavg(),
'uptime': os.uptime(),
'cpuBusy': Monitoring.getStat('cpuBusy')?.Report(),
'memUsage': Monitoring.getStat('memUsage')?.Report()
'cpuBusy': Monitoring.getStat('cpuBusy')?.Report(pReturnHistogram),
'memUsage': Monitoring.getStat('memUsage')?.Report(pReturnHistogram)
};
}
};
6 changes: 3 additions & 3 deletions src/Monitoring/StatsServer.ts
Expand Up @@ -53,10 +53,10 @@ export class StatsServer extends Stat {
Gather(): void {
return;
}
Report() {
Report(pReturnHistogram: boolean = true) {
return {
'apiRequests': Monitoring.getStat('apiRequests').Report(),
'apiErrors': Monitoring.getStat('apiErrors').Report(),
'apiRequests': Monitoring.getStat('apiRequests')?.Report(pReturnHistogram),
'apiErrors': Monitoring.getStat('apiErrors')?.Report(pReturnHistogram),
};
}
};
8 changes: 4 additions & 4 deletions src/routes/api/v1/requests.ts
Expand Up @@ -68,7 +68,7 @@ export const name = '/api/v1/requests';

export const router = Router();

router.get( '/api/v1/requests', [ setupMetaverseAPI,
accountFromAuthToken, // vRestResp.vAuthAccount
procGetRequests,
finishMetaverseAPI ] );
router.get( '/api/v1/requests', [ setupMetaverseAPI, // req.vRestResp
accountFromAuthToken, // req.vAuthAccount
procGetRequests,
finishMetaverseAPI ] );
18 changes: 12 additions & 6 deletions src/routes/api/v1/stats/category/category.ts
Expand Up @@ -20,15 +20,21 @@ import { Router, RequestHandler, Request, Response, NextFunction } from 'express
import { setupMetaverseAPI, finishMetaverseAPI, param1FromParams } from '@Route-Tools/middleware';
import { accountFromAuthToken } from '@Route-Tools/middleware';

import { Logger } from '@Tools/Logging';
import { Monitoring } from '@Monitoring/Monitoring';

import { Logger } from '@Tools/Logging';

const procGetCategoryStats: RequestHandler = async (req: Request, resp: Response, next: NextFunction) => {
if (req.vAuthAccount) {
if (req.vParam1) {
let includeHistory = true;
if (req.params.history) {
includeHistory = [ 'false', 'no' ].includes(req.params.history) ? false : true;
};

if (['os', 'server', 'metaverse'].includes(req.vParam1)) {
const data:any = {};
data[req.vParam1] = Monitoring.getStat(req.vParam1)?.Report()
data[req.vParam1] = Monitoring.getStat(req.vParam1)?.Report(includeHistory);

req.vRestResp.Data = data;
}
Expand All @@ -51,7 +57,7 @@ export const name = '/api/v1/stats/category/:category';
export const router = Router();

router.get('/api/v1/stats/category/:param1', [ setupMetaverseAPI, // req.vRestResp
accountFromAuthToken, // req.vAuthAccount
param1FromParams, // req.vParam1
procGetCategoryStats,
finishMetaverseAPI ] );
accountFromAuthToken, // req.vAuthAccount
param1FromParams, // req.vParam1
procGetCategoryStats,
finishMetaverseAPI ] );
9 changes: 7 additions & 2 deletions src/routes/api/v1/stats/stat.ts
Expand Up @@ -20,16 +20,21 @@ import { Router, RequestHandler, Request, Response, NextFunction } from 'express
import { setupMetaverseAPI, finishMetaverseAPI, param1FromParams } from '@Route-Tools/middleware';
import { accountFromAuthToken } from '@Route-Tools/middleware';

import { Logger } from '@Tools/Logging';
import { Monitoring } from '@Monitoring/Monitoring';

import { Logger } from '@Tools/Logging';

const procGetStat: RequestHandler = async (req: Request, resp: Response, next: NextFunction) => {
if (req.vAuthAccount) {
if (req.vParam1) {
let includeHistory = true;
if (req.params.history) {
includeHistory = [ 'false', 'no' ].includes(req.params.history) ? false : true;
};
const stat = Monitoring.getStat(req.vParam1);
if (stat) {
req.vRestResp.Data = {
'stat': stat.Report()
'stat': stat.Report(includeHistory)
};
}
else {
Expand Down

0 comments on commit a64ea50

Please sign in to comment.