From baf5b5eff12db95956c543a842daf4ee87a46569 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 17 Aug 2025 20:24:42 +0800 Subject: [PATCH] fix(handler): fixed health check import and corrected code for new metrics api handler --- agent/pkg/handler/check_health.go | 3 +-- agent/pkg/handler/handler.go | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/agent/pkg/handler/check_health.go b/agent/pkg/handler/check_health.go index 736e3d5e..57916490 100644 --- a/agent/pkg/handler/check_health.go +++ b/agent/pkg/handler/check_health.go @@ -9,11 +9,10 @@ import ( "strings" "github.com/yusing/go-proxy/internal/types" - "github.com/yusing/go-proxy/internal/watcher/health" "github.com/yusing/go-proxy/internal/watcher/health/monitor" ) -var defaultHealthConfig = health.DefaultHealthConfig() +var defaultHealthConfig = types.DefaultHealthConfig() func CheckHealth(w http.ResponseWriter, r *http.Request) { query := r.URL.Query() diff --git a/agent/pkg/handler/handler.go b/agent/pkg/handler/handler.go index 9459c948..9391597e 100644 --- a/agent/pkg/handler/handler.go +++ b/agent/pkg/handler/handler.go @@ -4,6 +4,8 @@ import ( "fmt" "net/http" + "github.com/gin-gonic/gin" + "github.com/gorilla/websocket" "github.com/yusing/go-proxy/agent/pkg/agent" "github.com/yusing/go-proxy/agent/pkg/env" "github.com/yusing/go-proxy/internal/metrics/systeminfo" @@ -21,9 +23,26 @@ func (mux ServeMux) HandleFunc(endpoint string, handler http.HandlerFunc) { mux.ServeMux.HandleFunc(agent.APIEndpointBase+endpoint, handler) } +var upgrader = &websocket.Upgrader{ + // no origin check needed for internal websocket + CheckOrigin: func(r *http.Request) bool { + return true + }, +} + func NewAgentHandler() http.Handler { + gin.SetMode(gin.ReleaseMode) mux := ServeMux{http.NewServeMux()} + metricsHandler := gin.Default() + { + metrics := metricsHandler.Group(agent.APIEndpointBase) + metrics.GET(agent.EndpointSystemInfo, func(c *gin.Context) { + c.Set("upgrader", upgrader) + systeminfo.Poller.ServeHTTP(c) + }) + } + mux.HandleFunc(agent.EndpointProxyHTTP+"/{path...}", ProxyHTTP) mux.HandleEndpoint("GET", agent.EndpointVersion, func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, pkg.GetVersion()) @@ -32,7 +51,7 @@ func NewAgentHandler() http.Handler { fmt.Fprint(w, env.AgentName) }) mux.HandleEndpoint("GET", agent.EndpointHealth, CheckHealth) - mux.HandleEndpoint("GET", agent.EndpointSystemInfo, systeminfo.Poller.ServeHTTP) + mux.HandleEndpoint("GET", agent.EndpointSystemInfo, metricsHandler.ServeHTTP) mux.ServeMux.HandleFunc("/", socketproxy.DockerSocketHandler(env.DockerSocket)) return mux }