telemetry

package
v1.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BytesTrackIDForParticipantID added in v1.3.2

func BytesTrackIDForParticipantID(typ BytesTrackType, participantID livekit.ParticipantID) livekit.TrackID

Types

type AnalyticsService added in v0.15.0

type AnalyticsService interface {
	SendStats(ctx context.Context, stats []*livekit.AnalyticsStat)
	SendEvent(ctx context.Context, events *livekit.AnalyticsEvent)
	SendNodeRoomStates(ctx context.Context, nodeRooms *livekit.AnalyticsNodeRooms)
}

func NewAnalyticsService added in v0.15.0

func NewAnalyticsService(_ *config.Config, currentNode routing.LocalNode) AnalyticsService

type BytesSignalStats added in v1.6.0

type BytesSignalStats struct {
	BytesTrackStats
	// contains filtered or unexported fields
}

func NewBytesSignalStats added in v1.6.0

func NewBytesSignalStats(ctx context.Context, telemetry TelemetryService) *BytesSignalStats

func (*BytesSignalStats) ResolveParticipant added in v1.6.0

func (s *BytesSignalStats) ResolveParticipant(pi *livekit.ParticipantInfo)

func (*BytesSignalStats) ResolveRoom added in v1.6.0

func (s *BytesSignalStats) ResolveRoom(ri *livekit.Room)

type BytesTrackStats added in v1.3.2

type BytesTrackStats struct {
	// contains filtered or unexported fields
}

stats for signal and data channel

func NewBytesTrackStats added in v1.3.2

func NewBytesTrackStats(trackID livekit.TrackID, pID livekit.ParticipantID, telemetry TelemetryService) *BytesTrackStats

func (*BytesTrackStats) AddBytes added in v1.3.2

func (s *BytesTrackStats) AddBytes(bytes uint64, isSend bool)

func (*BytesTrackStats) GetTrafficTotals added in v1.5.2

func (s *BytesTrackStats) GetTrafficTotals() *TrafficTotals

func (*BytesTrackStats) Stop added in v1.5.2

func (s *BytesTrackStats) Stop()

type BytesTrackType added in v1.3.2

type BytesTrackType string
const (
	BytesTrackTypeData   BytesTrackType = "DT"
	BytesTrackTypeSignal BytesTrackType = "SG"
)

type Conn added in v1.2.1

type Conn struct {
	net.Conn
	// contains filtered or unexported fields
}

func NewConn added in v1.2.1

func NewConn(c net.Conn, direction prometheus.Direction) *Conn

func (*Conn) Close added in v1.2.1

func (c *Conn) Close() error

func (*Conn) Read added in v1.2.1

func (c *Conn) Read(b []byte) (n int, err error)

func (*Conn) Write added in v1.2.1

func (c *Conn) Write(b []byte) (n int, err error)

type Listener added in v1.2.1

type Listener struct {
	net.Listener
}

func NewListener added in v1.2.1

func NewListener(l net.Listener) *Listener

func (*Listener) Accept added in v1.2.1

func (l *Listener) Accept() (net.Conn, error)

type PacketConn added in v1.2.1

type PacketConn struct {
	net.PacketConn
	// contains filtered or unexported fields
}

func NewPacketConn added in v1.2.1

func NewPacketConn(c net.PacketConn, direction prometheus.Direction) *PacketConn

func (*PacketConn) Close added in v1.2.1

func (c *PacketConn) Close() error

func (*PacketConn) ReadFrom added in v1.2.1

func (c *PacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)

func (*PacketConn) WriteTo added in v1.2.1

func (c *PacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error)

type RelayAddressGenerator added in v1.2.1

type RelayAddressGenerator struct {
	turn.RelayAddressGenerator
}

func NewRelayAddressGenerator added in v1.2.1

func NewRelayAddressGenerator(g turn.RelayAddressGenerator) *RelayAddressGenerator

func (*RelayAddressGenerator) AllocateConn added in v1.2.1

func (g *RelayAddressGenerator) AllocateConn(network string, requestedPort int) (net.Conn, net.Addr, error)

func (*RelayAddressGenerator) AllocatePacketConn added in v1.2.1

func (g *RelayAddressGenerator) AllocatePacketConn(network string, requestedPort int) (net.PacketConn, net.Addr, error)

type StatsKey added in v1.3.4

type StatsKey struct {
	// contains filtered or unexported fields
}

func StatsKeyForData added in v1.3.4

func StatsKeyForData(streamType livekit.StreamType, participantID livekit.ParticipantID, trackID livekit.TrackID) StatsKey

func StatsKeyForTrack added in v1.3.4

func StatsKeyForTrack(streamType livekit.StreamType, participantID livekit.ParticipantID, trackID livekit.TrackID, trackSource livekit.TrackSource, trackType livekit.TrackType) StatsKey

type StatsWorker

type StatsWorker struct {
	// contains filtered or unexported fields
}

StatsWorker handles participant stats

func (*StatsWorker) Close

func (s *StatsWorker) Close()

func (*StatsWorker) ClosedAt added in v1.2.0

func (s *StatsWorker) ClosedAt() time.Time

func (*StatsWorker) Flush added in v1.2.2

func (s *StatsWorker) Flush()

func (*StatsWorker) IsConnected added in v1.3.3

func (s *StatsWorker) IsConnected() bool

func (*StatsWorker) OnTrackStat added in v0.15.3

func (s *StatsWorker) OnTrackStat(trackID livekit.TrackID, direction livekit.StreamType, stat *livekit.AnalyticsStat)

func (*StatsWorker) ParticipantID added in v1.2.0

func (s *StatsWorker) ParticipantID() livekit.ParticipantID

func (*StatsWorker) SetConnected added in v1.3.3

func (s *StatsWorker) SetConnected()

type TelemetryService

type TelemetryService interface {
	// TrackStats is called periodically for each track in both directions (published/subscribed)
	TrackStats(key StatsKey, stat *livekit.AnalyticsStat)

	// events
	RoomStarted(ctx context.Context, room *livekit.Room)
	RoomEnded(ctx context.Context, room *livekit.Room)
	// ParticipantJoined - a participant establishes signal connection to a room
	ParticipantJoined(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo, clientInfo *livekit.ClientInfo, clientMeta *livekit.AnalyticsClientMeta, shouldSendEvent bool)
	// ParticipantActive - a participant establishes media connection
	ParticipantActive(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo, clientMeta *livekit.AnalyticsClientMeta, isMigration bool)
	// ParticipantResumed - there has been an ICE restart or connection resume attempt, and we've received their signal connection
	ParticipantResumed(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo, nodeID livekit.NodeID, reason livekit.ReconnectReason)
	// ParticipantLeft - the participant leaves the room, only sent if ParticipantActive has been called before
	ParticipantLeft(ctx context.Context, room *livekit.Room, participant *livekit.ParticipantInfo, shouldSendEvent bool)
	// TrackPublishRequested - a publication attempt has been received
	TrackPublishRequested(ctx context.Context, participantID livekit.ParticipantID, identity livekit.ParticipantIdentity, track *livekit.TrackInfo)
	// TrackPublished - a publication attempt has been successful
	TrackPublished(ctx context.Context, participantID livekit.ParticipantID, identity livekit.ParticipantIdentity, track *livekit.TrackInfo)
	// TrackUnpublished - a participant unpublished a track
	TrackUnpublished(ctx context.Context, participantID livekit.ParticipantID, identity livekit.ParticipantIdentity, track *livekit.TrackInfo, shouldSendEvent bool)
	// TrackSubscribeRequested - a participant requested to subscribe to a track
	TrackSubscribeRequested(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo)
	// TrackSubscribed - a participant subscribed to a track successfully
	TrackSubscribed(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo, publisher *livekit.ParticipantInfo, shouldSendEvent bool)
	// TrackUnsubscribed - a participant unsubscribed from a track successfully
	TrackUnsubscribed(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo, shouldSendEvent bool)
	// TrackSubscribeFailed - failure to subscribe to a track
	TrackSubscribeFailed(ctx context.Context, participantID livekit.ParticipantID, trackID livekit.TrackID, err error, isUserError bool)
	// TrackMuted - the publisher has muted the Track
	TrackMuted(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo)
	// TrackUnmuted - the publisher has muted the Track
	TrackUnmuted(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo)
	// TrackPublishedUpdate - track metadata has been updated
	TrackPublishedUpdate(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo)
	// TrackMaxSubscribedVideoQuality - publisher is notified of the max quality subscribers desire
	TrackMaxSubscribedVideoQuality(ctx context.Context, participantID livekit.ParticipantID, track *livekit.TrackInfo, mime string, maxQuality livekit.VideoQuality)
	TrackPublishRTPStats(ctx context.Context, participantID livekit.ParticipantID, trackID livekit.TrackID, mimeType string, layer int, stats *livekit.RTPStats)
	TrackSubscribeRTPStats(ctx context.Context, participantID livekit.ParticipantID, trackID livekit.TrackID, mimeType string, stats *livekit.RTPStats)
	EgressStarted(ctx context.Context, info *livekit.EgressInfo)
	EgressUpdated(ctx context.Context, info *livekit.EgressInfo)
	EgressEnded(ctx context.Context, info *livekit.EgressInfo)
	IngressCreated(ctx context.Context, info *livekit.IngressInfo)
	IngressDeleted(ctx context.Context, info *livekit.IngressInfo)
	IngressStarted(ctx context.Context, info *livekit.IngressInfo)
	IngressUpdated(ctx context.Context, info *livekit.IngressInfo)
	IngressEnded(ctx context.Context, info *livekit.IngressInfo)
	LocalRoomState(ctx context.Context, info *livekit.AnalyticsNodeRooms)

	// helpers
	AnalyticsService
	NotifyEvent(ctx context.Context, event *livekit.WebhookEvent)
	FlushStats()
}

func NewTelemetryService

func NewTelemetryService(notifier webhook.QueuedNotifier, analytics AnalyticsService) TelemetryService

type TrafficTotals added in v1.5.2

type TrafficTotals struct {
	At           time.Time
	SendBytes    uint64
	SendMessages uint32
	RecvBytes    uint64
	RecvMessages uint32
}

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL