From bca86e48aea474ec7217edcad49f8d7fbb6d6d28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AC=E6=98=8E?= <83812544+Ed1s0nZ@users.noreply.github.com> Date: Tue, 23 Jun 2026 15:40:04 +0800 Subject: [PATCH] Add files via upload --- internal/handler/monitor.go | 57 ++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/internal/handler/monitor.go b/internal/handler/monitor.go index 81fc8630..fe9b7204 100644 --- a/internal/handler/monitor.go +++ b/internal/handler/monitor.go @@ -10,8 +10,10 @@ import ( "time" "cyberstrike-ai/internal/audit" + "cyberstrike-ai/internal/config" "cyberstrike-ai/internal/database" "cyberstrike-ai/internal/mcp" + "cyberstrike-ai/internal/monitor" "cyberstrike-ai/internal/security" "github.com/gin-gonic/gin" "go.uber.org/zap" @@ -19,12 +21,18 @@ import ( // MonitorHandler 监控处理器 type MonitorHandler struct { - mcpServer *mcp.Server - externalMCPMgr *mcp.ExternalMCPManager - executor *security.Executor - db *database.DB - logger *zap.Logger - audit *audit.Service + mcpServer *mcp.Server + externalMCPMgr *mcp.ExternalMCPManager + executor *security.Executor + db *database.DB + logger *zap.Logger + audit *audit.Service + monitorRetention *monitor.Service +} + +// SetMonitorRetention wires MCP execution retention settings. +func (h *MonitorHandler) SetMonitorRetention(s *monitor.Service) { + h.monitorRetention = s } // SetAudit wires platform audit logging. @@ -50,13 +58,14 @@ func (h *MonitorHandler) SetExternalMCPManager(mgr *mcp.ExternalMCPManager) { // MonitorResponse 监控响应 type MonitorResponse struct { - Executions []*mcp.ToolExecution `json:"executions"` - Stats map[string]*mcp.ToolStats `json:"stats"` - Timestamp time.Time `json:"timestamp"` - Total int `json:"total,omitempty"` - Page int `json:"page,omitempty"` - PageSize int `json:"page_size,omitempty"` - TotalPages int `json:"total_pages,omitempty"` + Executions []*mcp.ToolExecution `json:"executions"` + Stats map[string]*mcp.ToolStats `json:"stats"` + Timestamp time.Time `json:"timestamp"` + Total int `json:"total,omitempty"` + Page int `json:"page,omitempty"` + PageSize int `json:"page_size,omitempty"` + TotalPages int `json:"total_pages,omitempty"` + RetentionDays int `json:"retention_days,omitempty"` } // Monitor 获取监控信息 @@ -89,16 +98,24 @@ func (h *MonitorHandler) Monitor(c *gin.Context) { } c.JSON(http.StatusOK, MonitorResponse{ - Executions: executions, - Stats: stats, - Timestamp: time.Now(), - Total: total, - Page: page, - PageSize: pageSize, - TotalPages: totalPages, + Executions: executions, + Stats: stats, + Timestamp: time.Now(), + Total: total, + Page: page, + PageSize: pageSize, + TotalPages: totalPages, + RetentionDays: h.monitorRetentionDays(), }) } +func (h *MonitorHandler) monitorRetentionDays() int { + if h.monitorRetention != nil { + return h.monitorRetention.RetentionDays() + } + return config.MonitorConfig{}.RetentionDaysEffective() +} + func (h *MonitorHandler) loadExecutions() []*mcp.ToolExecution { executions, _ := h.loadExecutionsWithPagination(1, 1000, "", "") return executions