fix: Metrics lib to account for multiple server instances
This commit is contained in:
@ -41,11 +41,17 @@ io.of("/").adapter.on("error", (err) => {
|
|||||||
|
|
||||||
io.on("connection", (socket) => {
|
io.on("connection", (socket) => {
|
||||||
metrics.increment("websockets.connected");
|
metrics.increment("websockets.connected");
|
||||||
metrics.gauge("websockets.count", socket.client.conn.server.clientsCount);
|
metrics.gaugePerInstance(
|
||||||
|
"websockets.count",
|
||||||
|
socket.client.conn.server.clientsCount
|
||||||
|
);
|
||||||
|
|
||||||
socket.on("disconnect", () => {
|
socket.on("disconnect", () => {
|
||||||
metrics.increment("websockets.disconnected");
|
metrics.increment("websockets.disconnected");
|
||||||
metrics.gauge("websockets.count", socket.client.conn.server.clientsCount);
|
metrics.gaugePerInstance(
|
||||||
|
"websockets.count",
|
||||||
|
socket.client.conn.server.clientsCount
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -9,12 +9,31 @@ if (process.env.DD_API_KEY) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function gauge(key: string, value: number): void {
|
export function gauge(
|
||||||
|
key: string,
|
||||||
|
value: number,
|
||||||
|
tags?: { [string]: string }
|
||||||
|
): void {
|
||||||
if (!process.env.DD_API_KEY) {
|
if (!process.env.DD_API_KEY) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
return metrics.gauge(key, value);
|
return metrics.gauge(key, value, tags);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function gaugePerInstance(
|
||||||
|
key: string,
|
||||||
|
value: number,
|
||||||
|
tags?: { [string]: string } = {}
|
||||||
|
): void {
|
||||||
|
if (!process.env.DD_API_KEY) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return metrics.gauge(key, value, {
|
||||||
|
...tags,
|
||||||
|
instance: process.env.INSTANCE_ID || process.env.HEROKU_DYNO_ID,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function increment(key: string, tags?: { [string]: string }): void {
|
export function increment(key: string, tags?: { [string]: string }): void {
|
||||||
|
Reference in New Issue
Block a user