add duration seconds reporting (#4500)

* add duration seconds reporting

* deps

* deps
This commit is contained in:
Paul Wells authored and GitHub committed 2026-05-02 06:19:23 -07:00
1 parent ffab3bd308
commit 253f977d32
4 files changed
+8 -5

No files matched your search

+1 -1
View File
@@ -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
+2 -2
View File
@@ -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=
+3 -2
View File
@@ -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()
+2
View File
@@ -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,