otel for call start, end and mute
This is send over zipkin. And it uses a posthog exporter to export events to posthog using a _otel prefix
This commit is contained in:
		
					parent
					
						
							
								0423a494c4
							
						
					
				
			
			
				commit
				
					
						4c59638d00
					
				
			
		
					 7 changed files with 490 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -35,6 +35,7 @@ import { useLocationNavigation } from "../useLocationNavigation";
 | 
			
		|||
import { PosthogAnalytics } from "../analytics/PosthogAnalytics";
 | 
			
		||||
import { useMediaHandler } from "../settings/useMediaHandler";
 | 
			
		||||
import { findDeviceByName, getDevices } from "../media-utils";
 | 
			
		||||
import { callTracer } from "../telemetry/otel";
 | 
			
		||||
 | 
			
		||||
declare global {
 | 
			
		||||
  interface Window {
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +144,7 @@ export function GroupCallView({
 | 
			
		|||
        ]);
 | 
			
		||||
 | 
			
		||||
        await groupCall.enter();
 | 
			
		||||
 | 
			
		||||
        callTracer.startCall(groupCall.groupCallId);
 | 
			
		||||
        PosthogAnalytics.instance.eventCallEnded.cacheStartCall(new Date());
 | 
			
		||||
        PosthogAnalytics.instance.eventCallStarted.track(groupCall.groupCallId);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -164,6 +165,7 @@ export function GroupCallView({
 | 
			
		|||
    if (isEmbedded && !preload) {
 | 
			
		||||
      // In embedded mode, bypass the lobby and just enter the call straight away
 | 
			
		||||
      groupCall.enter();
 | 
			
		||||
      callTracer.startCall(groupCall.groupCallId);
 | 
			
		||||
 | 
			
		||||
      PosthogAnalytics.instance.eventCallEnded.cacheStartCall(new Date());
 | 
			
		||||
      PosthogAnalytics.instance.eventCallStarted.track(groupCall.groupCallId);
 | 
			
		||||
| 
						 | 
				
			
			@ -187,6 +189,7 @@ export function GroupCallView({
 | 
			
		|||
 | 
			
		||||
    // In embedded/widget mode the iFrame will be killed right after the call ended prohibiting the posthog event from getting sent,
 | 
			
		||||
    // therefore we want the event to be sent instantly without getting queued/batched.
 | 
			
		||||
    callTracer.endCall();
 | 
			
		||||
    const sendInstantly = !!widget;
 | 
			
		||||
    PosthogAnalytics.instance.eventCallEnded.track(
 | 
			
		||||
      groupCall.groupCallId,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue