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 Logger from "@server/logging/Logger";
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 { can } from "@server/policies";
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
const websockets = new WebsocketsProcessor();
websocketQueue.process(async function websocketEventsProcessor(job) {
const event = job.data;
websockets.perform(event, io).catch((error) => {
Logger.error("Error processing websocket event", error, {
event,
websocketQueue.process(
APM.traceFunction({
serviceName: "websockets",
spanName: "process",
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) {