Track WS server error
Summary: This is currently done by querying the 'console-log' event. Instead, make it type safe and official. Reviewed By: antonk52 Differential Revision: D50927803 fbshipit-source-id: e0488782dd584e36b6f742f9892fc09ffaf62469
This commit is contained in:
committed by
Facebook GitHub Bot
parent
8f1b4ffa1c
commit
d5a0c206f2
@@ -29,6 +29,7 @@ import {Server} from 'net';
|
|||||||
import {serializeError} from 'serialize-error';
|
import {serializeError} from 'serialize-error';
|
||||||
import {WSCloseCode} from '../utils/WSCloseCode';
|
import {WSCloseCode} from '../utils/WSCloseCode';
|
||||||
import {recorder} from '../recorder';
|
import {recorder} from '../recorder';
|
||||||
|
import {tracker} from '../tracker';
|
||||||
|
|
||||||
export interface ConnectionCtx {
|
export interface ConnectionCtx {
|
||||||
clientQuery?: ClientQuery;
|
clientQuery?: ClientQuery;
|
||||||
@@ -63,11 +64,11 @@ class ServerWebSocket extends ServerWebSocketBase {
|
|||||||
// We do not need to listen to http server's `error` because it is propagated to WS
|
// We do not need to listen to http server's `error` because it is propagated to WS
|
||||||
// https://github.com/websockets/ws/blob/a3a22e4ed39c1a3be8e727e9c630dd440edc61dd/lib/websocket-server.js#L109
|
// https://github.com/websockets/ws/blob/a3a22e4ed39c1a3be8e727e9c630dd440edc61dd/lib/websocket-server.js#L109
|
||||||
const onConnectionError = (error: Error) => {
|
const onConnectionError = (error: Error) => {
|
||||||
|
const message = JSON.stringify(serializeError(error));
|
||||||
|
tracker.track('server-ws-server-error', {port, error: message});
|
||||||
reject(
|
reject(
|
||||||
new Error(
|
new Error(
|
||||||
`Unable to start server at port ${port} due to ${JSON.stringify(
|
`Unable to start server at port ${port} due to ${message}`,
|
||||||
serializeError(error),
|
|
||||||
)}`,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ type TrackerEvents = {
|
|||||||
};
|
};
|
||||||
'server-socket-already-in-use': {};
|
'server-socket-already-in-use': {};
|
||||||
'server-open-ui': {browser: boolean; hasToken: boolean};
|
'server-open-ui': {browser: boolean; hasToken: boolean};
|
||||||
|
'server-ws-server-error': {port: number; error: string};
|
||||||
'browser-connection-created': {
|
'browser-connection-created': {
|
||||||
successful: boolean;
|
successful: boolean;
|
||||||
timeMS: number;
|
timeMS: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user