From f0b9ac1dda61e42ca93ea44f891c1f367740e984 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Mon, 16 Dec 2024 19:29:31 +0000 Subject: [PATCH] Add pprof annotations to roomserver worker goroutines --- roomserver/internal/input/input_events.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/roomserver/internal/input/input_events.go b/roomserver/internal/input/input_events.go index 95a8d377..994e1d12 100644 --- a/roomserver/internal/input/input_events.go +++ b/roomserver/internal/input/input_events.go @@ -22,6 +22,7 @@ import ( "encoding/json" "errors" "fmt" + "runtime/pprof" "time" "github.com/neilalexander/harmony/roomserver/storage/tables" @@ -116,6 +117,10 @@ func (r *Inputer) processRoomEvent( }) } + // Set goroutine labels, useful for pprof CPU profiles, useful for CPU + // pprof profiles to find out where time is being spent. + pprof.SetGoroutineLabels(context.WithValue(ctx, "room_id", event.RoomID().String())) + // Don't waste time processing the event if the room doesn't exist. // A room entry locally will only be created in response to a create // event.