From 72c6d08fdf8dbb0c7ab9b82544ed9b2a097ba6a0 Mon Sep 17 00:00:00 2001 From: deviantony Date: Tue, 7 Jun 2022 22:43:20 +0000 Subject: [PATCH 1/3] feat(http): add pprof handlers --- http/handler/handler.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/http/handler/handler.go b/http/handler/handler.go index 49d7e620..501c7f4b 100644 --- a/http/handler/handler.go +++ b/http/handler/handler.go @@ -2,7 +2,9 @@ package handler import ( "net/http" + "net/http/pprof" "regexp" + "runtime" "strconv" "strings" @@ -58,6 +60,11 @@ type Config struct { ContainerPlatform agent.ContainerPlatform } +func init() { + runtime.SetBlockProfileRate(1) + runtime.SetMutexProfileFraction(1) +} + var dockerAPIVersionRegexp = regexp.MustCompile(`(/v[0-9]\.[0-9]*)?`) // NewHandler returns a pointer to a Handler. @@ -101,6 +108,12 @@ func (h *Handler) ServeHTTP(rw http.ResponseWriter, request *http.Request) { rw.Header().Set(agent.HTTPResponseAgentPlatform, strconv.Itoa(int(agentPlatformIdentifier))) switch { + case strings.HasPrefix(request.URL.Path, "/debug/pprof/profile"): + pprof.Profile(rw, request) + case strings.HasPrefix(request.URL.Path, "/debug/pprof/trace"): + pprof.Trace(rw, request) + case strings.HasPrefix(request.URL.Path, "/debug/pprof"): + pprof.Index(rw, request) case strings.HasPrefix(request.URL.Path, "/v1"): h.ServeHTTPV1(rw, request) case strings.HasPrefix(request.URL.Path, "/v2"): From 0c5b9877092077eec70ffaed520ec9ab068188b9 Mon Sep 17 00:00:00 2001 From: deviantony Date: Wed, 8 Jun 2022 22:05:49 +0000 Subject: [PATCH 2/3] feat(edge): update default runtime config check interval to 5m --- agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent.go b/agent.go index 8726ea2e..bf963fc4 100644 --- a/agent.go +++ b/agent.go @@ -231,7 +231,7 @@ const ( // DefaultEdgeSleepInterval is the default interval after which the agent will close the tunnel if no activity. DefaultEdgeSleepInterval = "5m" // DefaultConfigCheckInterval is the default interval used to check if node config changed - DefaultConfigCheckInterval = "5s" + DefaultConfigCheckInterval = "300s" // SupportedDockerAPIVersion is the minimum Docker API version supported by the agent. SupportedDockerAPIVersion = "1.24" // DefaultClusterProbeTimeout is the default member list ping probe timeout. From aaa5110318c0cd8811c9ecc26a51619a17c6c1e5 Mon Sep 17 00:00:00 2001 From: deviantony Date: Tue, 21 Jun 2022 08:51:24 +0000 Subject: [PATCH 3/3] feat(edge): disable docker background process --- edge/edge.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/edge/edge.go b/edge/edge.go index 8c954796..683c099a 100644 --- a/edge/edge.go +++ b/edge/edge.go @@ -151,15 +151,15 @@ func (manager *Manager) startEdgeBackgroundProcessOnDocker(runtimeCheckFrequency return err } - go func() { - ticker := time.NewTicker(runtimeCheckFrequency) - for range ticker.C { - err := manager.checkDockerRuntimeConfig() - if err != nil { - log.Printf("[ERROR] [edge] [message: an error occurred during Docker runtime configuration check] [error: %s]", err) - } - } - }() + // go func() { + // ticker := time.NewTicker(runtimeCheckFrequency) + // for range ticker.C { + // err := manager.checkDockerRuntimeConfig() + // if err != nil { + // log.Printf("[ERROR] [edge] [message: an error occurred during Docker runtime configuration check] [error: %s]", err) + // } + // } + // }() return nil }