From d8e5c9af6ac352c04c353c3250d7821c00309ee1 Mon Sep 17 00:00:00 2001 From: DenisN Date: Mon, 5 May 2025 09:10:47 -0400 Subject: [PATCH] After Disk Recovery --- src/zvksmetrics/conf/complex.json | 20 +++++++++++++ src/zvksmetrics/conf/ranges.json | 16 +++++------ src/zvksmetrics/zvksmetrics.controller.ts | 18 +++++++++--- src/zvksmetrics/zvksmetrics.service.ts | 34 +++++++++++++++++++---- 4 files changed, 70 insertions(+), 18 deletions(-) create mode 100644 src/zvksmetrics/conf/complex.json diff --git a/src/zvksmetrics/conf/complex.json b/src/zvksmetrics/conf/complex.json new file mode 100644 index 0000000..3754ef7 --- /dev/null +++ b/src/zvksmetrics/conf/complex.json @@ -0,0 +1,20 @@ +[ + { + "name": "CPU usage", + "values": "{\"arr\":[191, 192, 193]}", + "formula": "arr[1]+arr[2]+arr[3]" + }, + { + "name": "RAM usage", + "values": "{\"arr\":[191, 192, 193]}", + "formula": "arr[1]+arr[2]+arr[3]" + }, + { + "name": "Hard disks usage", + "values": "{\"arr\":[191, 192, 193]}", + "formula": "arr[1]+arr[2]+arr[3]" + } + + + +] \ No newline at end of file diff --git a/src/zvksmetrics/conf/ranges.json b/src/zvksmetrics/conf/ranges.json index 0925f62..57542f8 100644 --- a/src/zvksmetrics/conf/ranges.json +++ b/src/zvksmetrics/conf/ranges.json @@ -2,19 +2,19 @@ { "name": "measure_190", "_comment":"Загрузка процессора за 1 минуту", "ranges": [ - {"min": 0, "max": 0, "status": 3, "sum": "a+b*a-a"}, - {"min": 0, "max": 0.1, "status": 0, "sum": "val: a+b"}, - {"min": 0.11, "max": 0.12, "status": 1, "sum": "a+b"} , - {"min": 0.13, "max": 1, "status": 2, "sum": "a+b"}, - {"min": 0.5, "max": 0.8, "status": 1, "sum": "a+b"} + {"min": 0, "max": 0, "status": 3}, + {"min": 0, "max": 0.1, "status": 0}, + {"min": 0.11, "max": 0.12, "status": 1}, + {"min": 0.13, "max": 1, "status": 2}, + {"min": 0.5, "max": 0.8, "status": 1} ] }, { "name": "measure_191", "_comment":"Загрузка процессора за 5 минут", "ranges": [ - {"min": 0, "max": 0.2, "status": 0, "sum": "a+b"}, - {"min": 0.21, "max": 0.32, "status": 1, "sum": "a+b"}, - {"min": 0.33, "max": 1, "status": 2, "sum": "a+b"} + {"min": 0, "max": 0.2, "status": 0}, + {"min": 0.21, "max": 0.32, "status": 1}, + {"min": 0.33, "max": 1, "status": 2} ] } ] \ No newline at end of file diff --git a/src/zvksmetrics/zvksmetrics.controller.ts b/src/zvksmetrics/zvksmetrics.controller.ts index e3cffa6..84d880b 100644 --- a/src/zvksmetrics/zvksmetrics.controller.ts +++ b/src/zvksmetrics/zvksmetrics.controller.ts @@ -16,12 +16,22 @@ export class ZvksmetricsController { return sum.value; } - //Заглушка для будующей API - @Options('config/:code') - async showConfig (@Param('code', ParseIntPipe) code: number): Promise{ + //Заглушка для будующей API под граничные значения + @Options('ranges/:code') + async showRanges (@Param('code', ParseIntPipe) code: number): Promise{ let ret : JSON = JSON.parse('{"result":"null"}'); if(code === 9999){ - return await this.metricsService.showRangesConfig('File Name'); + return await this.metricsService.showRangesOptions('File Name'); + } + return ret; + } + + //Заглушка для будующей API под комплексные значения метрик + @Options('complex/:code') + async showComplexMetrics (@Param('code', ParseIntPipe) code: number): Promise{ + let ret : JSON = JSON.parse('{"result":"null"}'); + if(code === 5555){ + return await this.metricsService.showComplexMetricsConfig('File Name'); } return ret; } diff --git a/src/zvksmetrics/zvksmetrics.service.ts b/src/zvksmetrics/zvksmetrics.service.ts index de53ca1..f9066a2 100644 --- a/src/zvksmetrics/zvksmetrics.service.ts +++ b/src/zvksmetrics/zvksmetrics.service.ts @@ -28,7 +28,6 @@ export class RangeValues { min: number; max: number; status: number; - sum: any; }; @Injectable() @@ -49,14 +48,21 @@ export class ZvksmetricsService { scope = await this.setMetricsRanges (); - let rng: any = {val: [{x:3}, {x:4}, {x:5}, {x:9}]}; + // let rng: any = {val: [{x:3}, {x:4}, {x:5}, {x:9}]}; // console.log(rng.val[0].x); - let testFormula: string = (rng.val[0].x + rng.val[1].x - rng.val[2].x + rng.val[3].x).toString(); + // let testFormula: string = (rng.val[0].x + rng.val[1].x - rng.val[2].x + rng.val[3].x).toString(); // let formula: string = scope[0].ranges[0].sum; // let value: any = {formula}; - console.log(evaluate(testFormula, rng)); + // console.log(evaluate(testFormula, rng)); + // console.log(JSON.stringify("arr:[191, 192, 193]")); + + // let x: any = {arr:[191, 192, 193], sum: 'arr[1]+arr[2]+arr[3]'}; + // let x: any = JSON.parse(scope[0].ranges[0].values); + // let y: string = scope[0].ranges[0].formula; + // console.log(y, x); + // console.log(evaluate(y, x)); let editedMetrics : K2Metrics = await this.getMetrics (inp, scope); let responseFromExporter : any = await this.sendMetrics (editedMetrics); @@ -95,6 +101,7 @@ export class ZvksmetricsService { await axios.post(path, body, options).then((response)=>{ resp = response.status + ' ' + response.data; + // console.log(resp); }).catch((error)=>{ resp = error; }); @@ -120,7 +127,7 @@ export class ZvksmetricsService { } async setMetricsRanges (@Body() rangesData : any = null) : Promise { - let url : string = 'http://192.168.2.39:9999/api/config/9999'; + let url : string = 'http://192.168.2.39:9999/api/ranges/9999'; let options : any = { headers: {'Content-Type' : 'application/json'} }; @@ -134,7 +141,7 @@ export class ZvksmetricsService { return rangesData; } - async showRangesConfig(filePath: string) : Promise { + async showRangesOptions(filePath: string) : Promise { let content : JSON = JSON.parse('{"name":"name"}'); filePath = './src/zvksmetrics/conf/ranges.json'; try { @@ -146,4 +153,19 @@ export class ZvksmetricsService { return content; } + + async showComplexMetricsConfig(filePath: string) : Promise { + let content : JSON = JSON.parse('{"name":"name"}'); + filePath = './src/zvksmetrics/conf/complex.json'; + try { + content = JSON.parse(await readFile(filePath, { encoding: 'utf8' })); + } + catch { + console.log('Error read file'); + } + + return content; + } + + };