Add tracing around websocket processor

This commit is contained in:
Tom Moor
2022-08-24 12:20:26 +02:00
parent c62bfc4a60
commit de5524d366

View File

@@ -6,6 +6,8 @@ import IO from "socket.io";
import { createAdapter } from "socket.io-redis"; import { createAdapter } from "socket.io-redis";
import Logger from "@server/logging/Logger"; import Logger from "@server/logging/Logger";
import Metrics from "@server/logging/metrics"; import Metrics from "@server/logging/metrics";
import * as Tracing from "@server/logging/tracing";
import { APM } from "@server/logging/tracing";
import { Document, Collection, View, User } from "@server/models"; import { Document, Collection, View, User } from "@server/models";
import { can } from "@server/policies"; import { can } from "@server/policies";
import { getUserForJWT } from "@server/utils/jwt"; import { getUserForJWT } from "@server/utils/jwt";
@@ -135,14 +137,23 @@ export default function init(
// Handle events from event queue that should be sent to the clients down ws // Handle events from event queue that should be sent to the clients down ws
const websockets = new WebsocketsProcessor(); const websockets = new WebsocketsProcessor();
websocketQueue.process(async function websocketEventsProcessor(job) { websocketQueue.process(
const event = job.data; APM.traceFunction({
websockets.perform(event, io).catch((error) => { serviceName: "websockets",
Logger.error("Error processing websocket event", error, { spanName: "process",
event, isRoot: true,
})(async function (job) {
const event = job.data;
Tracing.setResource(`Processor.WebsocketsProcessor`);
websockets.perform(event, io).catch((error) => {
Logger.error("Error processing websocket event", error, {
event,
});
}); });
}); })
}); );
} }
async function authenticated(io: IO.Server, socket: SocketWithAuth) { async function authenticated(io: IO.Server, socket: SocketWithAuth) {