// Package model 定义 AIOps Agent 与后端之间交互的数据结构。 // 这些结构经 JSON 序列化后上报至后端 /api/v1/agent/report 接口。 // // 署名 Logan.Li package model // Report 为单次采集周期的完整上报报文 type Report struct { Hostname string `json:"hostname"` // 主机名 Timestamp string `json:"timestamp"` // RFC3339 格式的 UTC 时间戳 CPU CPUStat `json:"cpu"` // CPU 指标 Memory MemoryStat `json:"memory"` // 内存指标 Disks []DiskStat `json:"disks"` // 磁盘指标列表 Ports []PortStat `json:"ports"` // 监听端口列表 Network NetworkStat `json:"network"` // 网络指标 DiskIO DiskIOStat `json:"disk_io"` // 磁盘 IO 指标 Middleware MiddlewareStat `json:"middleware,omitempty"` // 中间件指标(Redis/MySQL) System SystemStat `json:"system,omitempty"` // 系统信息(OS/内核/ulimit) Processes ProcessStat `json:"processes,omitempty"` // Top N 进程 } // MiddlewareStat 中间件综合指标 — 包含 Redis + MySQL type MiddlewareStat struct { Redis []RedisMetric `json:"redis,omitempty"` // Redis 实例指标 MySQL []MySQLMetric `json:"mysql,omitempty"` // MySQL 实例指标 } // RedisMetric Redis 实例采集指标 type RedisMetric struct { Instance string `json:"instance"` // 实例标识(host:port) Clients int `json:"clients"` // 连接客户端数 UsedMemory int64 `json:"used_memory"` // 已用内存(字节) HitRate float64 `json:"hit_rate"` // 缓存命中率(%) QPS float64 `json:"qps"` // 每秒命令数 Uptime int64 `json:"uptime"` // 运行时长(秒) Version string `json:"version"` // Redis 版本 } // MySQLMetric MySQL 实例采集指标 type MySQLMetric struct { Instance string `json:"instance"` // 实例标识(host:port) Connections int `json:"connections"` // 当前连接数 QPS float64 `json:"qps"` // 每秒查询数 SlowQueries int64 `json:"slow_queries"` // 慢查询累计数 BufferHitRate float64 `json:"buffer_hit_rate"` // 缓冲池命中率(%) ThreadsRunning int `json:"threads_running"` // 活跃线程数 Uptime int64 `json:"uptime"` // 运行时长(秒) Version string `json:"version"` // MySQL 版本 } // CPUStat CPU 相关指标 type CPUStat struct { UsagePercent float64 `json:"usage_percent"` // CPU 总体使用率(百分比) CoreCount int `json:"core_count"` // CPU 逻辑核心数 Load1 float64 `json:"load1"` // 1 分钟平均负载 Load5 float64 `json:"load5"` // 5 分钟平均负载 Load15 float64 `json:"load15"` // 15 分钟平均负载 } // MemoryStat 内存相关指标 type MemoryStat struct { TotalGB float64 `json:"total_gb"` // 总内存(GB) UsedGB float64 `json:"used_gb"` // 已用内存(GB) CachedGB float64 `json:"cached_gb"` // 缓存(Buffers + Cached,GB) UsagePercent float64 `json:"usage_percent"` // 内存使用率(百分比) } // DiskStat 单个挂载点的磁盘使用情况 type DiskStat struct { Mount string `json:"mount"` // 挂载点 Device string `json:"device"` // 设备名 TotalGB float64 `json:"total_gb"` // 总容量(GB) UsedGB float64 `json:"used_gb"` // 已用容量(GB) UsagePercent float64 `json:"usage_percent"` // 使用率(百分比) } // PortStat 监听端口及其归属进程 type PortStat struct { Port int `json:"port"` // 监听端口 Protocol string `json:"protocol"` // 协议:tcp / tcp6 Process string `json:"process"` // 进程名(可执行文件名) PID int `json:"pid"` // 进程 PID(无法解析时为 0) } // SystemStat 系统信息指标 type SystemStat struct { OS string `json:"os"` // 操作系统名称 Kernel string `json:"kernel"` // 内核版本 Arch string `json:"arch"` // 系统架构 Hostname string `json:"hostname"` // 主机名 UlimitNofile int64 `json:"ulimit_nofile"` // 文件句柄数上限 UlimitNproc int64 `json:"ulimit_nproc"` // 进程数上限 } // ProcessStat 进程监控指标 type ProcessStat struct { TopCPU []ProcessInfo `json:"top_cpu"` // Top 5 CPU 进程 TopMem []ProcessInfo `json:"top_mem"` // Top 5 内存进程 } // ProcessInfo 单个进程信息 type ProcessInfo struct { PID int `json:"pid"` // 进程 ID Name string `json:"name"` // 进程名 CPUPercent float64 `json:"cpu_percent"` // CPU 使用率 (%) RSSKB int64 `json:"rss_kb"` // 物理内存 (KB) }