feat: 基本完成

This commit is contained in:
garymeng 2025-06-23 11:45:53 +08:00
parent da51926c2f
commit ea696c2c38
3 changed files with 13 additions and 12 deletions

View File

@ -12,7 +12,7 @@ async function bootstrap() {
const systemUsageCron: SystemUsageCron = app.get(SystemUsageCron); const systemUsageCron: SystemUsageCron = app.get(SystemUsageCron);
systemUsageCron.startCronJob(); systemUsageCron.startCronJob();
const server = await app.listen(0); const server = await app.listen(3003);
console.log(`Application is running on port ${server.address().port}`); console.log(`Application is running on port ${server.address().port}`);
} }
bootstrap(); bootstrap();

View File

@ -66,7 +66,7 @@ export class SystemUsageCron {
gpu: GPUItem[]; gpu: GPUItem[];
}; };
} }
this.logger.log('stdout', stdout) // this.logger.log('stdout', stdout)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
xml2js.parseString( xml2js.parseString(
stdout, stdout,
@ -81,8 +81,8 @@ export class SystemUsageCron {
if (process.env.GPU_MODEL === 'P800') { if (process.env.GPU_MODEL === 'P800') {
const xpuData = (result as XPUSmiLog).xpu_smi_log.xpu; const xpuData = (result as XPUSmiLog).xpu_smi_log.xpu;
this.logger.log('以下时xpu打他'); this.logger.log('以下时xpu打他');
this.logger.log(xpuData); // this.logger.log(xpuData);
this.logger.log(_.get(xpuData, '[0].utilization[0].xpu_util[0]')); // this.logger.log(_.get(xpuData, '[0].utilization[0].xpu_util[0]'));
resolve({ resolve({
usage: parseFloat( usage: parseFloat(
_.get(xpuData, '[0].utilization[0].xpu_util[0]'), _.get(xpuData, '[0].utilization[0].xpu_util[0]'),
@ -91,7 +91,7 @@ export class SystemUsageCron {
} else { } else {
const cpuData = (result as NvidiaSmiLog).nvidia_smi_log.gpu; const cpuData = (result as NvidiaSmiLog).nvidia_smi_log.gpu;
this.logger.log('以下时cpu打他'); this.logger.log('以下时cpu打他');
this.logger.log(_.get(cpuData, '[0]')); // this.logger.log(_.get(cpuData, '[0]'));
resolve({ resolve({
usage: parseFloat( usage: parseFloat(
_.get(cpuData, '[0].utilization[0].gpu_util[0]'), _.get(cpuData, '[0].utilization[0].gpu_util[0]'),
@ -115,11 +115,11 @@ export class SystemUsageCron {
si.mem(), si.mem(),
this.handleGpuInfo(), this.handleGpuInfo(),
]); ]);
this.logger.log('gpu', gpuInfo.usage); // this.logger.log('gpu', gpuInfo.usage);
this.logger.log('cpu', parseFloat(cpu?.currentLoad.toFixed(2))); // this.logger.log('cpu', parseFloat(cpu?.currentLoad.toFixed(2)));
this.logger.log('memory', memory) // // this.logger.log('memory', memory)
this.logger.log('memory used', parseFloat(memory?.active.toFixed(2))) // this.logger.log('memory used', parseFloat(memory?.active.toFixed(2)))
this.logger.log('memory total', parseFloat(memory?.total.toFixed(2))) // this.logger.log('memory total', parseFloat(memory?.total.toFixed(2)))
await this.systemUsageService.create({ await this.systemUsageService.create({
cpuUsage: parseFloat(cpu?.currentLoad.toFixed(2)), cpuUsage: parseFloat(cpu?.currentLoad.toFixed(2)),

View File

@ -30,6 +30,7 @@ export class SystemUsageService {
async getLatestUsage(interval: 'minute' | 'hour' | 'day' = 'minute') { async getLatestUsage(interval: 'minute' | 'hour' | 'day' = 'minute') {
const now = new Date(); const now = new Date();
now.setHours(now.getHours() - 8)
let timeFunction: (date: Date, amount: number) => Date; let timeFunction: (date: Date, amount: number) => Date;
let intervalMinutes: number; let intervalMinutes: number;
@ -40,11 +41,11 @@ export class SystemUsageService {
break; break;
case 'hour': case 'hour':
timeFunction = subHours; timeFunction = subHours;
intervalMinutes = 60; intervalMinutes = 1;
break; break;
case 'day': case 'day':
timeFunction = subDays; timeFunction = subDays;
intervalMinutes = 1440; intervalMinutes = 1;
break; break;
default: default:
timeFunction = subMinutes; timeFunction = subMinutes;