feat(monitoring): add frontend and backend protocol distribution metrics to network stats

This commit is contained in:
2026-04-04 16:45:02 +00:00
parent 94f53f0259
commit 6c3d8714a2
11 changed files with 135 additions and 16 deletions

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@serve.zone/dcrouter',
version: '12.8.1',
version: '12.9.0',
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
}

View File

@@ -29,9 +29,9 @@ export class StorageBackedCertManager implements plugins.smartacme.ICertManager
let doc = await AcmeCertDoc.findByDomain(cert.domainName);
if (!doc) {
doc = new AcmeCertDoc();
doc.id = cert.id;
doc.domainName = cert.domainName;
}
doc.id = cert.id;
doc.created = cert.created;
doc.privateKey = cert.privateKey;
doc.publicKey = cert.publicKey;

View File

@@ -591,6 +591,11 @@ export class MetricsManager {
const requestsPerSecond = proxyMetrics.requests.perSecond();
const requestsTotal = proxyMetrics.requests.total();
// Get frontend/backend protocol distribution (available in SmartProxy >= next release)
const conn = proxyMetrics.connections as any;
const frontendProtocols = conn.frontendProtocols?.() ?? null;
const backendProtocols = conn.backendProtocols?.() ?? null;
// Collect backend protocol data
const backendMetrics = proxyMetrics.backends.byBackend();
const protocolCache = proxyMetrics.backends.detectedProtocols();
@@ -705,6 +710,8 @@ export class MetricsManager {
requestsPerSecond,
requestsTotal,
backends,
frontendProtocols,
backendProtocols,
};
}, 1000); // 1s cache — matches typical dashboard poll interval
}

View File

@@ -311,6 +311,8 @@ export class StatsHandler {
requestsPerSecond: stats.requestsPerSecond || 0,
requestsTotal: stats.requestsTotal || 0,
backends: stats.backends || [],
frontendProtocols: stats.frontendProtocols || null,
backendProtocols: stats.backendProtocols || null,
};
})()
);