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.