start of coredump (#2050)

* start of coredump

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add local

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more coredummp

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add arch

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* os info

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix app version

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* more webrtc stats

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* webrtc data

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* webrtc stats

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add wasm function

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add coredump things

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* add hotkey

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* cleanup

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* clippy

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
Jess Frazelle
2024-04-09 18:05:36 -07:00
committed by GitHub
parent d18e35b7ea
commit 959433e357
16 changed files with 535 additions and 11 deletions

View File

@ -69,6 +69,15 @@ type Timeout = ReturnType<typeof setTimeout>
type ClientMetrics = Models['ClientMetrics_type']
interface WebRTCClientMetrics extends ClientMetrics {
rtc_frame_height: number
rtc_frame_width: number
rtc_packets_lost: number
rtc_pli_count: number
rtc_pause_count: number
rtc_total_pauses_duration_sec: number
}
type Value<T, U> = U extends undefined
? { type: T; value: U }
: U extends void
@ -234,7 +243,7 @@ class EngineConnection {
private onNewTrack: (track: NewTrackArgs) => void
// TODO: actual type is ClientMetrics
private webrtcStatsCollector?: () => Promise<ClientMetrics>
public webrtcStatsCollector?: () => Promise<WebRTCClientMetrics>
private engineCommandManager: EngineCommandManager
constructor({
@ -406,7 +415,7 @@ class EngineConnection {
},
}
this.webrtcStatsCollector = (): Promise<ClientMetrics> => {
this.webrtcStatsCollector = (): Promise<WebRTCClientMetrics> => {
return new Promise((resolve, reject) => {
if (mediaStream.getVideoTracks().length !== 1) {
reject(new Error('too many video tracks to report'))
@ -415,7 +424,7 @@ class EngineConnection {
let videoTrack = mediaStream.getVideoTracks()[0]
void this.pc?.getStats(videoTrack).then((videoTrackStats) => {
let client_metrics: ClientMetrics = {
let client_metrics: WebRTCClientMetrics = {
rtc_frames_decoded: 0,
rtc_frames_dropped: 0,
rtc_frames_received: 0,
@ -424,6 +433,12 @@ class EngineConnection {
rtc_jitter_sec: 0.0,
rtc_keyframes_decoded: 0,
rtc_total_freezes_duration_sec: 0.0,
rtc_frame_height: 0,
rtc_frame_width: 0,
rtc_packets_lost: 0,
rtc_pli_count: 0,
rtc_pause_count: 0,
rtc_total_pauses_duration_sec: 0.0,
}
// TODO(paultag): Since we can technically have multiple WebRTC
@ -449,6 +464,13 @@ class EngineConnection {
videoTrackReport.keyFramesDecoded || 0
client_metrics.rtc_total_freezes_duration_sec =
videoTrackReport.totalFreezesDuration || 0
client_metrics.rtc_frame_height =
videoTrackReport.frameHeight || 0
client_metrics.rtc_frame_width =
videoTrackReport.frameWidth || 0
client_metrics.rtc_packets_lost =
videoTrackReport.packetsLost || 0
client_metrics.rtc_pli_count = videoTrackReport.pliCount || 0
} else if (videoTrackReport.type === 'transport') {
// videoTrackReport.bytesReceived,
// videoTrackReport.bytesSent,