-
Notifications
You must be signed in to change notification settings - Fork 62
/
livekit_analytics.proto
108 lines (96 loc) · 2.53 KB
/
livekit_analytics.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
syntax = "proto3";
package livekit;
option go_package = "github.com/livekit/protocol/livekit";
option csharp_namespace = "LiveKit.Proto";
option ruby_package = "LiveKit::Proto";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
import "livekit_models.proto";
service AnalyticsRecorderService {
rpc IngestStats(stream AnalyticsStats) returns (google.protobuf.Empty){};
rpc IngestEvents(stream AnalyticsEvents) returns (google.protobuf.Empty){};
}
enum StreamType {
UPSTREAM = 0;
DOWNSTREAM = 1;
}
message AnalyticsVideoLayer {
int32 layer = 1;
uint32 total_packets = 2;
uint64 total_bytes = 3;
uint32 total_frames = 4;
}
message AnalyticsStream {
uint32 ssrc = 1;
uint32 total_primary_packets = 2;
uint64 total_primary_bytes = 3;
uint32 total_retransmit_packets = 4;
uint64 total_retransmit_bytes = 5;
uint32 total_padding_packets = 6;
uint64 total_padding_bytes = 7;
uint32 total_packets_lost = 8;
uint32 total_frames = 9;
uint32 rtt = 10;
uint32 jitter = 11;
uint32 total_nacks = 12;
uint32 total_plis = 13;
uint32 total_firs = 14;
repeated AnalyticsVideoLayer video_layers = 15;
}
message AnalyticsStat {
string analytics_key = 1;
StreamType kind = 2;
google.protobuf.Timestamp time_stamp = 3;
string node = 4;
string room_id = 5;
string room_name = 6;
string participant_id = 7;
string track_id = 8;
float score = 9;
repeated AnalyticsStream streams = 10;
}
message AnalyticsStats {
repeated AnalyticsStat stats = 1;
}
enum AnalyticsEventType {
ROOM_CREATED = 0;
ROOM_ENDED = 1;
PARTICIPANT_JOINED = 2;
PARTICIPANT_LEFT = 3;
TRACK_PUBLISHED = 4;
TRACK_UNPUBLISHED = 5;
TRACK_SUBSCRIBED = 6;
TRACK_UNSUBSCRIBED = 7;
RECORDING_STARTED = 8;
RECORDING_ENDED = 9;
TRACK_PUBLISHED_UPDATE = 10;
PARTICIPANT_ACTIVE = 11;
EGRESS_STARTED = 12;
EGRESS_ENDED = 13;
TRACK_MAX_SUBSCRIBED_VIDEO_QUALITY = 14;
}
message AnalyticsClientMeta {
string region = 1;
string node = 2;
string client_addr = 3;
uint32 client_connect_time = 4;
}
message AnalyticsEvent {
AnalyticsEventType type = 1;
google.protobuf.Timestamp timestamp = 2;
string room_id = 3;
Room room = 4;
string participant_id = 5;
ParticipantInfo participant = 6;
string track_id = 7;
TrackInfo track = 8;
string recording_id = 9;
string analytics_key = 10;
ClientInfo client_info = 11;
AnalyticsClientMeta client_meta = 12;
string egress_id = 13;
VideoQuality max_subscribed_video_quality = 14;
}
message AnalyticsEvents {
repeated AnalyticsEvent events = 1;
}