Skip to content

Commit d80e384

Browse files
authored
feat: expose comms message size by scene id and type (#6018)
expose comms message size by scene id and type
1 parent 029afd7 commit d80e384

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

browser-interface/packages/shared/comms/adapters/LivekitAdapter.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import {
1313
import mitt from 'mitt'
1414
import { trackEvent } from 'shared/analytics/trackEvent'
1515
import type { ILogger } from 'lib/logger'
16-
import { incrementCommsMessageSent } from 'shared/session/getPerformanceInfo'
1716
import type { VoiceHandler } from 'shared/voiceChat/VoiceHandler'
1817
import { commsLogger } from '../logger'
1918
import type { ActiveVideoStreams, CommsAdapterEvents, MinimumCommunicationsAdapter, SendHints } from './types'
@@ -94,7 +93,6 @@ export class LivekitAdapter implements MinimumCommunicationsAdapter {
9493
return
9594
}
9695

97-
incrementCommsMessageSent(data.length)
9896
const state = this.room.state
9997

10098
if (data.length > MAXIMUM_NETWORK_MSG_LENGTH) {

browser-interface/packages/shared/comms/logic/rfc-4-room-connection.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import { CommsEvents, RoomConnection } from '../interface'
33
import mitt from 'mitt'
44
import { AdapterMessageEvent, MinimumCommunicationsAdapter } from '../adapters/types'
55
import { VoiceHandler } from 'shared/voiceChat/VoiceHandler'
6+
import { incrementCommsMessageSent } from 'shared/session/getPerformanceInfo'
7+
import { getPositionSpawnPointAndScene } from 'shared/scene-loader/selectors'
8+
import { store } from 'shared/store/isolatedStore'
69

710
/**
811
* This class implements Rfc4 on top of a ICommsTransport. The idea behind it is
@@ -111,10 +114,16 @@ export class Rfc4RoomConnection implements RoomConnection {
111114
}
112115

113116
private async sendMessage(reliable: boolean, topicMessage: proto.Packet) {
114-
if (Object.keys(topicMessage).length === 0) {
117+
if (Object.keys(topicMessage).length === 0 || !topicMessage.message?.$case) {
115118
throw new Error('Invalid message')
116119
}
120+
121+
const state = store.getState()
122+
const sceneData = getPositionSpawnPointAndScene(state)
123+
117124
const bytes = proto.Packet.encode(topicMessage as any).finish()
125+
incrementCommsMessageSent(topicMessage.message?.$case, bytes.length, sceneData.sceneId)
126+
118127
if (!this.transport) debugger
119128
this.transport.send(bytes, { reliable })
120129
}

browser-interface/packages/shared/session/getPerformanceInfo.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ let kernelToRendererMessageCounter = 0
88
let rendererToKernelMessageCounter = 0
99
let receivedCommsMessagesCounter = 0
1010
let sentCommsMessagesCounter = 0
11+
let sentCommsMessages = {}
1112
let kernelToRendererMessageNativeCounter = 0
1213
let lastReport = 0
1314
let commsProtocol = ''
@@ -51,7 +52,14 @@ export function incrementAvatarSceneMessages(value: number) {
5152
commsPerfObservable.emit('avatar-renderer', { value })
5253
}
5354

54-
export function incrementCommsMessageSent(_bytes: number) {
55+
export function incrementCommsMessageSent(type: string, size: number, sceneId?: string) {
56+
if (!sceneId) {
57+
sceneId = 'no-scene'
58+
}
59+
const key = `${sceneId}:${type}`
60+
61+
sentCommsMessages[key] = (sentCommsMessages[key] ?? 0) + size
62+
5563
sentCommsMessagesCounter++
5664
}
5765

@@ -173,6 +181,7 @@ export function getPerformanceInfo(data: {
173181
rendererToKernelMessageCounter,
174182
receivedCommsMessagesCounter,
175183
sentCommsMessagesCounter,
184+
sentCommsMessages,
176185
kernelToRendererMessageNativeCounter,
177186

178187
// reserved
@@ -225,6 +234,7 @@ export function getPerformanceInfo(data: {
225234
pingResponsePercentages.length = 0
226235

227236
sentCommsMessagesCounter = 0
237+
sentCommsMessages = {}
228238
receivedCommsMessagesCounter = 0
229239
kernelToRendererMessageCounter = 0
230240
rendererToKernelMessageCounter = 0

0 commit comments

Comments
 (0)