After Disk Recovery

main
DenisN 2025-05-05 09:10:47 -04:00
parent 5e3d836b29
commit d8e5c9af6a
4 changed files with 70 additions and 18 deletions

View File

@ -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]"
}
]

View File

@ -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}
]
}
]

View File

@ -16,12 +16,22 @@ export class ZvksmetricsController {
return sum.value;
}
//Заглушка для будующей API
@Options('config/:code')
async showConfig (@Param('code', ParseIntPipe) code: number): Promise<JSON>{
//Заглушка для будующей API под граничные значения
@Options('ranges/:code')
async showRanges (@Param('code', ParseIntPipe) code: number): Promise<JSON>{
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<JSON>{
let ret : JSON = JSON.parse('{"result":"null"}');
if(code === 5555){
return await this.metricsService.showComplexMetricsConfig('File Name');
}
return ret;
}

View File

@ -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<MetricsRanges []> {
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<JSON> {
async showRangesOptions(filePath: string) : Promise<JSON> {
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<JSON> {
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;
}
};