diff --git a/go.mod b/go.mod index f5526c0bd..fc4b7292a 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/jxskiss/base62 v1.1.0 github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 github.com/livekit/mediatransportutil v0.0.0-20260501135216-8818f1b77e59 - github.com/livekit/protocol v1.45.7-0.20260502022852-0f86fd3cc9b0 + github.com/livekit/protocol v1.45.7-0.20260502131722-3c9faab50403 github.com/livekit/psrpc v0.7.1 github.com/mackerelio/go-osstat v0.2.7 github.com/magefile/mage v1.17.0 diff --git a/go.sum b/go.sum index a1be89249..1bf28b4d7 100644 --- a/go.sum +++ b/go.sum @@ -181,8 +181,8 @@ github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 h1:9x+U2HGLrSw5AT github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731/go.mod h1:Rs3MhFwutWhGwmY1VQsygw28z5bWcnEYmS1OG9OxjOQ= github.com/livekit/mediatransportutil v0.0.0-20260501135216-8818f1b77e59 h1:lWRMrb4ReRJu/e/BAp1kpT6fQOjS8WjCxdp0PGjgrBc= github.com/livekit/mediatransportutil v0.0.0-20260501135216-8818f1b77e59/go.mod h1:RCd46PT+6sEztld6XpkCrG1xskb0u3SqxIjy4G897Ss= -github.com/livekit/protocol v1.45.7-0.20260502022852-0f86fd3cc9b0 h1:Ry3xfhN75GQeCZ4MDyMWVRU3bn3Q6X4bMeMNQFrs41I= -github.com/livekit/protocol v1.45.7-0.20260502022852-0f86fd3cc9b0/go.mod h1:Q4uw9Bkz7ucNxPP/lcVj6IkVMYzlq3TwYo2TRFL6BN0= +github.com/livekit/protocol v1.45.7-0.20260502131722-3c9faab50403 h1:tWebMNKx9GWtvgSXN6BgmXYX1fuXS5buM2MqGzuypgM= +github.com/livekit/protocol v1.45.7-0.20260502131722-3c9faab50403/go.mod h1:Q4uw9Bkz7ucNxPP/lcVj6IkVMYzlq3TwYo2TRFL6BN0= github.com/livekit/psrpc v0.7.1 h1:ms37az0QTD3UXIWuUC5D/SkmKOlRMVRsI261eBWu/Vw= github.com/livekit/psrpc v0.7.1/go.mod h1:bZ4iHFQptTkbPnB0LasvRNu/OBYXEu1NA6O5BMFo9kk= github.com/mackerelio/go-osstat v0.2.7 h1:TCavZi10wF49bT6iQZ9eT2keGZQpC69MTDfdJej5e94= diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index bffda51b6..3af2b8edc 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -171,6 +171,7 @@ type ParticipantParams struct { LimitConfig config.LimitConfig ProtocolVersion types.ProtocolVersion SessionStartTime time.Time + SessionTimer *observability.SessionTimer TelemetryListener types.ParticipantTelemetryListener Trailer []byte PLIThrottleConfig sfu.PLIThrottleConfig @@ -405,15 +406,15 @@ func NewParticipant(params ParticipantParams) (*ParticipantImpl, error) { p.supervisor.OnPublicationError(p.onPublicationError) } - sessionTimer := observability.NewSessionTimer(p.params.SessionStartTime) params.Reporter.RegisterFunc(func(ts time.Time, tx roomobs.ParticipantSessionTx) bool { if dts := p.disconnectedAt.Load(); dts != nil { ts = *dts tx.ReportEndTime(ts) } - millis, mins := sessionTimer.Advance(ts) + millis, secs, mins := p.params.SessionTimer.Advance(ts) tx.ReportDuration(uint16(millis)) + tx.ReportDurationSeconds(uint16(secs)) tx.ReportDurationMinutes(uint8(mins)) return !p.IsClosed() diff --git a/pkg/service/roommanager.go b/pkg/service/roommanager.go index 9806d884e..472fd2efb 100644 --- a/pkg/service/roommanager.go +++ b/pkg/service/roommanager.go @@ -34,6 +34,7 @@ import ( "github.com/livekit/protocol/auth" "github.com/livekit/protocol/livekit" "github.com/livekit/protocol/logger" + "github.com/livekit/protocol/observability" "github.com/livekit/protocol/observability/roomobs" "github.com/livekit/protocol/rpc" "github.com/livekit/protocol/utils" @@ -472,6 +473,7 @@ func (r *RoomManager) StartSession( LimitConfig: r.config.Limit, ProtocolVersion: pv, SessionStartTime: sessionStartTime, + SessionTimer: observability.NewSessionTimer(sessionStartTime), TelemetryListener: room.ParticipantTelemetryListener(), Trailer: room.Trailer(), PLIThrottleConfig: r.config.RTC.PLIThrottle,