chore: add more pprof labels for various go routines (#19243)

- ReplicaSync
- Notifications
- MetricsAggregator
- DBPurge
This commit is contained in:
Steven Masley
2025-08-07 15:05:32 -05:00
committed by GitHub
parent c65996a041
commit 0a3afeddc8
5 changed files with 25 additions and 14 deletions
+6 -5
View File
@@ -12,6 +12,7 @@ import (
"github.com/coder/coder/v2/coderd/database"
"github.com/coder/coder/v2/coderd/database/dbauthz"
"github.com/coder/coder/v2/coderd/database/dbtime"
"github.com/coder/coder/v2/coderd/pproflabel"
"github.com/coder/quartz"
)
@@ -38,7 +39,7 @@ func New(ctx context.Context, logger slog.Logger, db database.Store, clk quartz.
// Start the ticker with the initial delay.
ticker := clk.NewTicker(delay)
doTick := func(start time.Time) {
doTick := func(ctx context.Context, start time.Time) {
defer ticker.Reset(delay)
// Start a transaction to grab advisory lock, we don't want to run
// multiple purges at the same time (multiple replicas).
@@ -85,21 +86,21 @@ func New(ctx context.Context, logger slog.Logger, db database.Store, clk quartz.
}
}
go func() {
pproflabel.Go(ctx, pproflabel.Service(pproflabel.ServiceDBPurge), func(ctx context.Context) {
defer close(closed)
defer ticker.Stop()
// Force an initial tick.
doTick(dbtime.Time(clk.Now()).UTC())
doTick(ctx, dbtime.Time(clk.Now()).UTC())
for {
select {
case <-ctx.Done():
return
case tick := <-ticker.C:
ticker.Stop()
doTick(dbtime.Time(tick).UTC())
doTick(ctx, dbtime.Time(tick).UTC())
}
}
}()
})
return &instance{
cancel: cancelFunc,
closed: closed,