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) => {
|
||||
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", () => {
|
||||
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) {
|
||||
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 {
|
||||
|
Reference in New Issue
Block a user