MCPcopy
hub / github.com/livekit/livekit / Flush

Method Flush

pkg/telemetry/statsworker.go:131–153  ·  view source on GitHub ↗
(now time.Time, closeWait time.Duration)

Source from the content-addressed store, hash-verified

129}
130
131func (s *StatsWorker) Flush(now time.Time, closeWait time.Duration) bool {
132 ts := timestamppb.New(now)
133
134 s.lock.Lock()
135 stats := make([]*livekit.AnalyticsStat, 0, len(s.incomingPerTrack)+len(s.outgoingPerTrack))
136
137 incomingPerTrack := s.incomingPerTrack
138 s.incomingPerTrack = make(map[livekit.TrackID][]*livekit.AnalyticsStat)
139
140 outgoingPerTrack := s.outgoingPerTrack
141 s.outgoingPerTrack = make(map[livekit.TrackID][]*livekit.AnalyticsStat)
142
143 closed := !s.closedAt.IsZero() && now.Sub(s.closedAt) > closeWait
144 s.lock.Unlock()
145
146 stats = s.collectStats(ts, livekit.StreamType_UPSTREAM, incomingPerTrack, stats)
147 stats = s.collectStats(ts, livekit.StreamType_DOWNSTREAM, outgoingPerTrack, stats)
148 if len(stats) > 0 {
149 s.t.SendStats(s.ctx, stats)
150 }
151
152 return closed
153}
154
155func (s *StatsWorker) Close(guard *ReferenceGuard) bool {
156 s.lock.Lock()

Callers 1

FlushStatsMethod · 0.80

Calls 2

collectStatsMethod · 0.95
SendStatsMethod · 0.65

Tested by

no test coverage detected