Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit ff58414

Browse files
committed
feat: add pprof to agent
1 parent ccecc2f commit ff58414

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

internal/cmd/agent.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package cmd
22

33
import (
4+
"context"
5+
"net/http"
6+
"net/http/pprof"
47
"net/url"
58
"os"
69
"os/signal"
@@ -78,6 +81,8 @@ coder agent start --coder-url https://my-coder.com --token xxxx-xxxx
7881
}
7982
}
8083

84+
go servePprof(ctx, log)
85+
8186
log.Info(ctx, "starting wsnet listener", slog.F("coder_access_url", u.String()))
8287
listener, err := wsnet.Listen(ctx, log, wsnet.ListenEndpoint(u, token), token)
8388
if err != nil {
@@ -105,3 +110,15 @@ coder agent start --coder-url https://my-coder.com --token xxxx-xxxx
105110

106111
return cmd
107112
}
113+
114+
// This prevents the pprof import from being accidentally deleted.
115+
var _ = pprof.Handler
116+
117+
func servePprof(ctx context.Context, log slog.Logger) {
118+
const pprofServerAddr = ":6060"
119+
log.Debug(ctx, "pprof http server listening", slog.F("addr", pprofServerAddr))
120+
err := http.ListenAndServe(pprofServerAddr, nil)
121+
if err != nil {
122+
log.Error(ctx, "pprof http server listen", slog.Error(err))
123+
}
124+
}

0 commit comments

Comments
 (0)