fix: Improve graceful shutdown

This commit is contained in:
Tom Moor
2021-10-04 18:20:42 -07:00
parent 28097835d0
commit df5dc2f691
5 changed files with 21 additions and 6 deletions

View File

@@ -2,7 +2,7 @@
import Metrics from "../logging/metrics";
export default class Tracing {
async onCreateDocument({
onCreateDocument({
documentName,
instance,
}: {
@@ -17,11 +17,11 @@ export default class Tracing {
);
}
async onAuthenticationFailed({ documentName }: { documentName: string }) {
onAuthenticationFailed({ documentName }: { documentName: string }) {
Metrics.increment("collaboration.authentication_failed", { documentName });
}
async onConnect({
onConnect({
documentName,
instance,
}: {
@@ -35,7 +35,7 @@ export default class Tracing {
);
}
async onDisconnect({
onDisconnect({
documentName,
instance,
}: {
@@ -54,7 +54,12 @@ export default class Tracing {
);
}
async onChange({ documentName }: { documentName: string }) {
onChange({ documentName }: { documentName: string }) {
Metrics.increment("collaboration.change", { documentName });
}
onDestroy() {
Metrics.gaugePerInstance("collaboration.connections_count", 0);
Metrics.gaugePerInstance("collaboration.documents_count", 0);
}
}

View File

@@ -108,6 +108,8 @@ async function start(id: string, disconnect: () => void) {
function shutdown() {
Logger.info("lifecycle", "Stopping server");
server.emit("shutdown");
server.stop(disconnect);
}
}

View File

@@ -36,4 +36,8 @@ export default function init(app: Koa, server: http.Server) {
app.use(websocket());
app.use(router.routes());
app.use(router.allowedMethods());
server.on("shutdown", () => {
hocuspocus.destroy();
});
}

View File

@@ -23,6 +23,10 @@ export default function init(app: Koa, server: http.Server) {
cookie: false,
});
server.on("shutdown", () => {
Metrics.gaugePerInstance("websockets.count", 0);
});
io.adapter(
socketRedisAdapter({
pubClient: client,