45 lines
1.2 KiB
C#
45 lines
1.2 KiB
C#
namespace QemuVmManager.Models;
|
|
|
|
public enum VmState
|
|
{
|
|
Stopped,
|
|
Starting,
|
|
Running,
|
|
Paused,
|
|
Stopping,
|
|
Error
|
|
}
|
|
|
|
public class VmStatus
|
|
{
|
|
public string Name { get; set; } = string.Empty;
|
|
public VmState State { get; set; } = VmState.Stopped;
|
|
public int ProcessId { get; set; } = -1;
|
|
public DateTime? StartedAt { get; set; }
|
|
public DateTime? StoppedAt { get; set; }
|
|
public string? ErrorMessage { get; set; }
|
|
public VmResourceUsage? ResourceUsage { get; set; }
|
|
}
|
|
|
|
public class VmResourceUsage
|
|
{
|
|
public double CpuUsage { get; set; } = 0.0; // Percentage
|
|
public long MemoryUsage { get; set; } = 0; // MB
|
|
public long DiskUsage { get; set; } = 0; // MB
|
|
public long NetworkRx { get; set; } = 0; // Bytes
|
|
public long NetworkTx { get; set; } = 0; // Bytes
|
|
}
|
|
|
|
public class VmPerformanceMetrics
|
|
{
|
|
public DateTime Timestamp { get; set; }
|
|
public int ProcessId { get; set; }
|
|
public double CpuUsagePercent { get; set; }
|
|
public double SystemCpuUsagePercent { get; set; }
|
|
public long MemoryUsageMB { get; set; }
|
|
public long PrivateMemoryMB { get; set; }
|
|
public long VirtualMemoryMB { get; set; }
|
|
public int ThreadCount { get; set; }
|
|
public int HandleCount { get; set; }
|
|
}
|