From 0e664d274a4503a754c35430cee3ca5612a41092 Mon Sep 17 00:00:00 2001 From: Andrey Goncharov Date: Thu, 12 Oct 2023 15:16:11 -0700 Subject: [PATCH] Track browser connections Reviewed By: lblasa Differential Revision: D50225630 fbshipit-source-id: 31842fcde494ec05edf2458396d466239397d2c8 --- .../src/server/attachSocketServer.tsx | 16 ++++++++++++++++ desktop/flipper-server-core/src/tracker.tsx | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/desktop/flipper-server-core/src/server/attachSocketServer.tsx b/desktop/flipper-server-core/src/server/attachSocketServer.tsx index 5ddd8095e..d89eb358a 100644 --- a/desktop/flipper-server-core/src/server/attachSocketServer.tsx +++ b/desktop/flipper-server-core/src/server/attachSocketServer.tsx @@ -27,6 +27,8 @@ import { } from 'flipper-server-companion'; import {URLSearchParams} from 'url'; import {getFlipperServerConfig} from '../FlipperServerConfig'; +import {tracker} from '../tracker'; +import {performance} from 'perf_hooks'; const safe = (f: () => void) => { try { @@ -50,6 +52,14 @@ export function attachSocketServer( server: FlipperServerImpl, companionEnv: FlipperServerCompanionEnv, ) { + const t0 = performance.now(); + const browserConnectionTimeout = setTimeout(() => { + tracker.track('browser-connection-created', { + successful: false, + timeMS: performance.now() - t0, + }); + }, 20000); + socket.on('connection', (client, req) => { const clientAddress = (req.socket.remoteAddress && @@ -59,6 +69,12 @@ export function attachSocketServer( console.log('Client connected', clientAddress); numberOfConnectedClients++; + clearTimeout(browserConnectionTimeout); + tracker.track('browser-connection-created', { + successful: true, + timeMS: performance.now() - t0, + }); + let connected = true; let flipperServerCompanion: FlipperServerCompanion | undefined; diff --git a/desktop/flipper-server-core/src/tracker.tsx b/desktop/flipper-server-core/src/tracker.tsx index 8cc820e7c..4f69560a7 100644 --- a/desktop/flipper-server-core/src/tracker.tsx +++ b/desktop/flipper-server-core/src/tracker.tsx @@ -47,6 +47,10 @@ type TrackerEvents = { error?: string; }; 'server-socket-already-in-use': {}; + 'browser-connection-created': { + successful: boolean; + timeMS: number; + }; 'app-connection-created': AppConnectionPayload; 'app-connection-secure-attempt': AppConnectionPayload; 'app-connection-insecure-attempt': AppConnectionPayload;