From 521b0a857aa90ffdd4f162370bd6779acd482cc3 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 16 Mar 2023 18:08:28 +0000 Subject: [PATCH] Send spans for state events --- src/otel/OTelGroupCallMembership.ts | 31 ++++++++++++++++++++++++++--- src/room/GroupCallInspector.tsx | 2 ++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/otel/OTelGroupCallMembership.ts b/src/otel/OTelGroupCallMembership.ts index d8570b7..5a8dae3 100644 --- a/src/otel/OTelGroupCallMembership.ts +++ b/src/otel/OTelGroupCallMembership.ts @@ -23,7 +23,7 @@ import { tracer } from "./otel"; /** * Recursively sets the contents of a todevice event object as attributes on a span */ -function setNestedAttributesFromToDeviceEvent(span: Span, event: VoipEvent) { +function setNestedAttributesFromEvent(span: Span, event: VoipEvent) { setSpanEventAttributesRecursive( span, event as unknown as Record, // XXX Types @@ -109,7 +109,23 @@ export class OTelGroupCallMembership { if (this.callMembershipSpan) this.callMembershipSpan.end(); } - public onSendStateEvent(stateEvent: MatrixEvent) {} + public onUpdateRoomState(event: MatrixEvent) { + if ( + !event || + (!event.getType().startsWith("m.call") && + !event.getType().startsWith("org.matrix.msc3401.call")) + ) + return; + + const span = tracer.startSpan( + `otel_onRoomStateEvent_${event.getType()}`, + undefined, + this.context + ); + + setNestedAttributesFromEvent(span, event.getContent()); + span.end(); + } public onSendEvent(event: VoipEvent) { const eventType = event.eventType as string; @@ -122,7 +138,16 @@ export class OTelGroupCallMembership { this.context ); - setNestedAttributesFromToDeviceEvent(span, event); + setNestedAttributesFromEvent(span, event); + span.end(); + } else if (event.type === "sendEvent") { + const span = tracer.startSpan( + `otel_sendToRoomEvent_${event.eventType}`, + undefined, + this.context + ); + + setNestedAttributesFromEvent(span, event); span.end(); } } diff --git a/src/room/GroupCallInspector.tsx b/src/room/GroupCallInspector.tsx index 18c5752..e1e12ea 100644 --- a/src/room/GroupCallInspector.tsx +++ b/src/room/GroupCallInspector.tsx @@ -382,6 +382,8 @@ function useGroupCallState( callStateEvent, memberStateEvents, }); + + otelGroupCallMembership.onUpdateRoomState(event); } function onReceivedVoipEvent(event: MatrixEvent) {