feat(stats): add typed network stats response fields for bandwidth, domain activity, and protocol distribution
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2026-04-13 - 13.15.0 - feat(stats)
|
||||||
|
add typed network stats response fields for bandwidth, domain activity, and protocol distribution
|
||||||
|
|
||||||
|
- extends the network stats request interface with top IP bandwidth, domain activity, and frontend/backend protocol distribution data
|
||||||
|
- updates app state to use a typed getNetworkStats request instead of casting the response to any
|
||||||
|
|
||||||
## 2026-04-13 - 13.14.0 - feat(network)
|
## 2026-04-13 - 13.14.0 - feat(network)
|
||||||
add bandwidth-ranked IP and domain activity metrics to network monitoring
|
add bandwidth-ranked IP and domain activity metrics to network monitoring
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/dcrouter',
|
name: '@serve.zone/dcrouter',
|
||||||
version: '13.14.0',
|
version: '13.15.0',
|
||||||
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,5 +180,9 @@ export interface IReq_GetNetworkStats extends plugins.typedrequestInterfaces.imp
|
|||||||
requestsPerSecond: number;
|
requestsPerSecond: number;
|
||||||
requestsTotal: number;
|
requestsTotal: number;
|
||||||
backends?: statsInterfaces.IBackendInfo[];
|
backends?: statsInterfaces.IBackendInfo[];
|
||||||
|
topIPsByBandwidth: Array<{ ip: string; count: number; bwIn: number; bwOut: number }>;
|
||||||
|
domainActivity: statsInterfaces.IDomainActivity[];
|
||||||
|
frontendProtocols?: statsInterfaces.IProtocolDistribution | null;
|
||||||
|
backendProtocols?: statsInterfaces.IProtocolDistribution | null;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@serve.zone/dcrouter',
|
name: '@serve.zone/dcrouter',
|
||||||
version: '13.14.0',
|
version: '13.15.0',
|
||||||
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
description: 'A multifaceted routing service handling mail and SMS delivery functions.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -522,14 +522,13 @@ export const fetchNetworkStatsAction = networkStatePart.createAction(async (stat
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Get network stats for throughput and IP data
|
// Get network stats for throughput and IP data
|
||||||
const networkStatsRequest = new plugins.domtools.plugins.typedrequest.TypedRequest(
|
const networkStatsRequest = new plugins.domtools.plugins.typedrequest.TypedRequest<
|
||||||
'/typedrequest',
|
interfaces.requests.IReq_GetNetworkStats
|
||||||
'getNetworkStats'
|
>('/typedrequest', 'getNetworkStats');
|
||||||
);
|
|
||||||
|
|
||||||
const networkStatsResponse = await networkStatsRequest.fire({
|
const networkStatsResponse = await networkStatsRequest.fire({
|
||||||
identity: context.identity,
|
identity: context.identity,
|
||||||
}) as any;
|
});
|
||||||
|
|
||||||
// Use the connections data for the connection list
|
// Use the connections data for the connection list
|
||||||
// and network stats for throughput and IP analytics
|
// and network stats for throughput and IP analytics
|
||||||
|
|||||||
Reference in New Issue
Block a user