Add tracing around websocket processor
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user