From ddb058b58c96cd259d22effe9b4f01f41dfdfdd1 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 21 Oct 2024 10:58:16 +0800 Subject: [PATCH] Add model for hardware monitoring checks --- Server/db/models/HardwareCheck.js | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Server/db/models/HardwareCheck.js diff --git a/Server/db/models/HardwareCheck.js b/Server/db/models/HardwareCheck.js new file mode 100644 index 000000000..a9e8485f1 --- /dev/null +++ b/Server/db/models/HardwareCheck.js @@ -0,0 +1,60 @@ +import mongoose from "mongoose"; + +const cpuSchema = mongoose.Schema({ + physical_core: { type: Number, default: 0 }, + logical_core: { type: Number, default: 0 }, + frequency: { type: Number, default: 0 }, + temperature: { type: Number, default: 0 }, + free_percent: { type: Number, default: 0 }, + usage_percent: { type: Number, default: 0 }, +}); + +const memorySchema = mongoose.Schema({ + total_bytes: { type: Number, default: 0 }, + available_bytes: { type: Number, default: 0 }, + used_bytes: { type: Number, default: 0 }, + usage_percent: { type: Number, default: 0 }, +}); + +const discSchema = mongoose.Schema({ + read_speed_bytes: { type: Number, default: 0 }, + write_speed_bytes: { type: Number, default: 0 }, + total_bytes: { type: Number, default: 0 }, + free_bytes: { type: Number, default: 0 }, + usage_percent: { type: Number, default: 0 }, +}); + +const hostSchema = mongoose.Schema({ + os: { type: String, default: "" }, + platform: { type: String, default: "" }, + kernel_version: { type: String, default: "" }, +}); + +const HardwareCheckSchema = mongoose.Schema( + { + monitorId: { + type: mongoose.Schema.Types.ObjectId, + ref: "Monitor", + immutable: true, + }, + cpu: { + type: cpuSchema, + default: () => ({}), + }, + memory: { + type: memorySchema, + default: () => ({}), + }, + disk: { + type: discSchema, + default: () => ({}), + }, + host: { + type: hostSchema, + default: () => ({}), + }, + }, + { timestamps: true } +); + +export default mongoose.model("HardwareCheck", HardwareCheckSchema);