Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnalyticsService ¶
type AnalyticsService interface { SendStats(ctx context.Context, stats []*livekit.AnalyticsStat) SendEvent(ctx context.Context, events *livekit.AnalyticsEvent) }
func NewAnalyticsService ¶
func NewAnalyticsService(_ *config.Config, currentNode routing.LocalNode) AnalyticsService
type Stat ¶
type Stat struct { Score float32 Rtt uint32 Jitter uint32 TotalPrimaryPackets uint32 TotalPrimaryBytes uint64 TotalRetransmitPackets uint32 TotalRetransmitBytes uint64 TotalPaddingPackets uint32 TotalPaddingBytes uint64 TotalPacketsLost uint32 TotalFrames uint32 TotalNacks uint32 TotalPlis uint32 TotalFirs uint32 VideoLayers map[int32]*livekit.AnalyticsVideoLayer TotalBytes uint64 TotalPackets uint32 MaxLayer int32 }
func (*Stat) ToAnalyticsStats ¶
func (stat *Stat) ToAnalyticsStats(layers *livekit.AnalyticsVideoLayer) *livekit.AnalyticsStat
type StatsWorker ¶
type StatsWorker struct {
// contains filtered or unexported fields
}
StatsWorker handles participant stats
func (*StatsWorker) CleanUpTrackStats ¶
func (s *StatsWorker) CleanUpTrackStats()
func (*StatsWorker) Close ¶
func (s *StatsWorker) Close()
func (*StatsWorker) OnTrackStat ¶
func (s *StatsWorker) OnTrackStat(trackID livekit.TrackID, direction livekit.StreamType, stat *livekit.AnalyticsStat)
func (*StatsWorker) RemoveStats ¶
func (s *StatsWorker) RemoveStats(trackID livekit.TrackID)
func (*StatsWorker) Update ¶
func (s *StatsWorker) Update()
type TelemetryReporter ¶
type TelemetryReporter interface {
Report(ctx context.Context, stats []*livekit.AnalyticsStat)
}
type TelemetryService ¶
type TelemetryService interface { // stats TrackStats(streamType livekit.StreamType, participantID livekit.ParticipantID, trackID livekit.TrackID, stat *livekit.AnalyticsStat) // events RoomStarted(ctx context.Context, room *livekit.Room) RoomEnded(ctx context.Context, room *livekit.Room) ParticipantJoined(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo, clientInfo *livekit.ClientInfo, clientMeta *livekit.AnalyticsClientMeta) ParticipantActive(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo, clientMeta *livekit.AnalyticsClientMeta) ParticipantLeft(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo) TrackPublished(ctx context.Context, participantID livekit.ParticipantID, identity livekit.ParticipantIdentity, track *livekit.TrackInfo) TrackUnpublished(ctx context.Context, participantID livekit.ParticipantID, identity livekit.ParticipantIdentity, track *livekit.TrackInfo, ssrc uint32) TrackSubscribed(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo, publisher *livekit.ParticipantInfo) TrackUnsubscribed(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo) TrackPublishedUpdate(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo) TrackMaxSubscribedVideoQuality(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo, maxQuality livekit.VideoQuality) RecordingStarted(ctx context.Context, ri *livekit.RecordingInfo) RecordingEnded(ctx context.Context, ri *livekit.RecordingInfo) EgressStarted(ctx context.Context, info *livekit.EgressInfo) EgressEnded(ctx context.Context, info *livekit.EgressInfo) }
func NewTelemetryService ¶
func NewTelemetryService(notifier webhook.Notifier, analytics AnalyticsService) TelemetryService
type TelemetryServiceInternal ¶
type TelemetryServiceInternal interface { TelemetryService SendAnalytics() }
func NewTelemetryServiceInternal ¶
func NewTelemetryServiceInternal(notifier webhook.Notifier, analytics AnalyticsService) TelemetryServiceInternal
Source Files
¶
Click to show internal directories.
Click to hide internal directories.