feat: Phase 6 Agent 系统信息+进程监控采集器
- 新增 collector/system.go: SystemCollector(OS/内核/ulimit) + ProcessCollector(Top 5 CPU/内存) - 模型新增 SystemStat + ProcessStat + ProcessInfo - Report 结构新增 System + Processes 字段 - Agent 启动时采集系统信息,每周期采集进程列表
This commit is contained in:
1 parent
2e71371257
commit
06d7451cf9
3 files changed
+265
No files matched your search
@@ -77,6 +77,18 @@ func main() {
|
||||
diskIOCollector := collector.NewDiskIOCollector()
|
||||
rep := reporter.New(*server, *token, logger)
|
||||
|
||||
// 系统信息(仅启动时采集一次)
|
||||
sysCollector := collector.NewSystemCollector()
|
||||
var systemStat model.SystemStat
|
||||
if stat, err := sysCollector.Collect(); err == nil {
|
||||
systemStat = stat
|
||||
logger.Printf("系统信息: OS=%s Kernel=%s Arch=%s nofile=%d nproc=%d",
|
||||
stat.OS, stat.Kernel, stat.Arch, stat.UlimitNofile, stat.UlimitNproc)
|
||||
}
|
||||
|
||||
// 进程采集器
|
||||
procCollector := collector.NewProcessCollector()
|
||||
|
||||
// 中间件采集器(可选)
|
||||
var mwCollector *collector.MiddlewareCollector
|
||||
if *redisFlag != "" || *mysqlFlag != "" {
|
||||
@@ -154,6 +166,16 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
// 系统信息(每次上报附带)
|
||||
report.System = systemStat
|
||||
|
||||
// 进程采集
|
||||
if procStat, err := procCollector.Collect(); err != nil {
|
||||
logger.Printf("进程采集异常: %v", err)
|
||||
} else {
|
||||
report.Processes = procStat
|
||||
}
|
||||
|
||||
if err := rep.Send(ctx, report); err != nil {
|
||||
logger.Printf("上报失败: %v", err)
|
||||
return
|
||||
|
||||
Reference in new issue
Block a user