Monitor Socket.IO Connections
Monitoring is essential for understanding application health in production.
Useful metrics include:
- Active Socket.IO connections.
- New connections per minute.
- Disconnections per minute.
- Connection failures.
- Event processing duration.
- Messages published per second.
- Redis connectivity.
- Memory usage.
- CPU usage.
For basic monitoring, maintain a connection count.
For production, export structured metrics to an observability platform and avoid using socket IDs or user IDs as high-cardinality metric labels.
For multiple server instances, aggregate connection metrics across instances using a monitoring system. A local JavaScript variable cannot represent the global connection count.
let activeConnections = 0;
io.on('connection', (socket) => {
activeConnections += 1;
console.log('Active connections:', activeConnections);
socket.on('disconnect', () => {
activeConnections -= 1;
console.log('Active connections:', activeConnections);
});
});Maintains a local count of active connections. The value is process-specific and is not a global count when multiple instances are deployed.
Monitor active connections and disconnections.
Track Redis and application health.
Aggregate metrics across server instances.