// net-host-stats.js // Copyright (C) 2024 DTP Technologies, LLC // All Rights Reserved 'use strict'; import mongoose from 'mongoose'; const Schema = mongoose.Schema; const CpuInfoSchema = new Schema({ user: { type: Number }, nice: { type: Number }, sys: { type: Number }, idle: { type: Number }, irq: { type: Number }, }); const MemoryInfoSchema = new Schema({ total: { type: Number }, free: { type: Number }, used: { type: Number }, active: { type: Number }, available: { type: Number }, buffers: { type: Number }, cached: { type: Number }, slab: { type: Number }, buffcache: { type: Number }, swaptotal: { type: Number }, swapused: { type: Number }, swapfree: { type: Number }, }); const CacheStatsSchema = new Schema({ itemCount: { type: Number, required: true }, dataSize: { type: Number, required: true }, expireCount: { type: Number, required: true }, expireDataSize: { type: Number, required: true }, hitCount: { type: Number, required: true }, hitDataSize: { type: Number, required: true }, missCount: { type: Number, required: true }, missDataSize: { type: Number, required: true }, }); const DiskUsageSchema = new Schema({ total: { type: Number }, used: { type: Number }, available: { type: Number }, pctUsed: { type: Number }, }); const NetworkInterfaceStatsSchema = new Schema({ iface: { type: String, required: true }, rxPerSecond: { type: Number }, rxDropped: { type: Number }, rxErrors: { type: Number }, txPerSecond: { type: Number }, txDropped: { type: Number }, txErrors: { type: Number }, }); export { CpuInfoSchema, MemoryInfoSchema, CacheStatsSchema, DiskUsageSchema, NetworkInterfaceStatsSchema, };