From ba0680ed9491f34239dd1b83ea97920ef1243ddc Mon Sep 17 00:00:00 2001 From: RunsTp Date: Sat, 25 Feb 2023 14:21:37 +0800 Subject: [PATCH] =?UTF-8?q?[feature]=20#19=20=E5=A2=9E=E5=8A=A0pprof?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/api/main.go | 13 ++++++++++++- internal/pkg/httpserver/pprof.go | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 internal/pkg/httpserver/pprof.go diff --git a/cmd/api/main.go b/cmd/api/main.go index 4e02d92..6e5052e 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "go.uber.org/zap" "git.vtb.link/eoefans/internal/app" "git.vtb.link/eoefans/internal/app/api/service" @@ -24,7 +25,12 @@ func newAPI() fx.Option { ) } -func lc(lifecycle fx.Lifecycle, ginServer *httpserver.Server, randPicsCache *service.RandomPicsCache) { +func lc( + lifecycle fx.Lifecycle, + ginServer *httpserver.Server, + randPicsCache *service.RandomPicsCache, + logger *zap.Logger, +) { lifecycle.Append(fx.Hook{ OnStart: func(ctx context.Context) error { return ginServer.Start() @@ -33,6 +39,11 @@ func lc(lifecycle fx.Lifecycle, ginServer *httpserver.Server, randPicsCache *ser return ginServer.Stop() }, }) + lifecycle.Append(fx.Hook{ + OnStart: func(ctx context.Context) error { + return httpserver.RunPprofHttpServer(logger) + }, + }) lifecycle.Append(fx.Hook{ OnStart: func(ctx context.Context) error { return randPicsCache.Run() diff --git a/internal/pkg/httpserver/pprof.go b/internal/pkg/httpserver/pprof.go new file mode 100644 index 0000000..a6d0a1c --- /dev/null +++ b/internal/pkg/httpserver/pprof.go @@ -0,0 +1,18 @@ +package httpserver + +import ( + "go.uber.org/zap" + "net/http" + _ "net/http/pprof" +) + +func RunPprofHttpServer(logger *zap.Logger) error { + go func() { + err := http.ListenAndServe(":9651", nil) + if err != nil { + logger.Error("RunPprofHttpServer failed: ", zap.Error(err)) + } + }() + + return nil +}