// Package reporter 实现 AIOps Agent 向后端上报采集结果的能力。 // 通过 HTTP POST 将指标 JSON 发送至 {server}/api/v1/agent/report。 // 共享 client 处理鉴权 + 重试,Reporter 仅负责序列化和路径选择。 // // 署名 Logan.Li package reporter import ( "context" "fmt" "log" "ezops/agent/client" "ezops/agent/model" ) const reportPath = "/api/v1/agent/report" // Reporter 负责将采集报告上报至 AIOps 后端 type Reporter struct { client *client.Client logger *log.Logger } // New 创建 Reporter 实例。 // - cli: 共享 HTTP 客户端 // - logger: 日志输出 func New(cli *client.Client, logger *log.Logger) *Reporter { return &Reporter{client: cli, logger: logger} } // Send 将报告 POST 到后端。纯上报,不解析响应。 func (r *Reporter) Send(ctx context.Context, report *model.Report) error { if err := r.client.DoJSON(ctx, "POST", reportPath, report, nil); err != nil { return fmt.Errorf("上报失败: %w", err) } return nil }