Files
pc-monitor/client/collector/collector.go
672 0e8c9f7bff feat: init pc-monitor project
- Client: Go-based Windows hardware monitoring (CPU, GPU, memory, disk, network, power)
- Server: Go + Gin + SQLite backend with REST API
- Frontend: Vue 3 + Element Plus dashboard
- Docker deployment support
- Windows service installation script
2026-05-17 01:29:44 +08:00

62 lines
1.0 KiB
Go

package collector
import (
"time"
)
type Metrics struct {
DeviceID string `json:"device_id"`
Timestamp time.Time `json:"timestamp"`
CPU *CPUInfo `json:"cpu"`
Memory *MemoryInfo `json:"memory"`
GPU *GPUInfo `json:"gpu"`
Disks []DiskInfo `json:"disks"`
Net []NetInterface `json:"network"`
Power *PowerInfo `json:"power"`
}
func CollectAll() (*Metrics, error) {
metrics := &Metrics{
Timestamp: time.Now(),
}
// Collect CPU
cpuInfo, err := CollectCPU()
if err == nil {
metrics.CPU = cpuInfo
}
// Collect Memory
memInfo, err := CollectMemory()
if err == nil {
metrics.Memory = memInfo
}
// Collect GPU
gpuInfo, err := CollectGPU()
if err == nil {
metrics.GPU = gpuInfo
}
// Collect Disks
disks, err := CollectDisks()
if err == nil {
metrics.Disks = disks
}
// Collect Network
nets, err := CollectNetwork()
if err == nil {
metrics.Net = nets
}
// Collect Power
powerInfo, err := CollectPower()
if err == nil {
metrics.Power = powerInfo
}
return metrics, nil
}