@serve.zone/dcrouter 17.1.8 → 17.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist_serve/bundle.js +886 -860
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/monitoring/classes.metricsmanager.d.ts +5 -1
- package/dist_ts/monitoring/classes.metricsmanager.js +18 -3
- package/dist_ts/opsserver/handlers/security.handler.js +5 -1
- package/dist_ts/opsserver/handlers/stats.handler.js +3 -1
- package/dist_ts_interfaces/data/stats.d.ts +7 -0
- package/dist_ts_interfaces/requests/stats.d.ts +2 -0
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/appstate/network.d.ts +2 -0
- package/dist_ts_web/appstate/network.js +5 -1
- package/dist_ts_web/appstate/runtime.js +3 -1
- package/dist_ts_web/elements/network/network-activity-history.d.ts +24 -0
- package/dist_ts_web/elements/network/network-activity-history.js +65 -0
- package/dist_ts_web/elements/network/ops-view-network-activity.d.ts +14 -17
- package/dist_ts_web/elements/network/ops-view-network-activity.js +139 -77
- package/package.json +3 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/monitoring/classes.metricsmanager.ts +18 -3
- package/ts/opsserver/handlers/security.handler.ts +4 -0
- package/ts/opsserver/handlers/stats.handler.ts +2 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate/network.ts +6 -0
- package/ts_web/appstate/runtime.ts +2 -0
- package/ts_web/elements/network/network-activity-history.ts +126 -0
- package/ts_web/elements/network/ops-view-network-activity.ts +180 -81
|
@@ -36,6 +36,8 @@ export interface INetworkState {
|
|
|
36
36
|
in: number;
|
|
37
37
|
out: number;
|
|
38
38
|
}>;
|
|
39
|
+
frontendConnectionHistory: interfaces.data.IProtocolConnectionHistoryPoint[];
|
|
40
|
+
backendConnectionHistory: interfaces.data.IProtocolConnectionHistoryPoint[];
|
|
39
41
|
requestsPerSecond: number;
|
|
40
42
|
requestsTotal: number;
|
|
41
43
|
backends: interfaces.data.IBackendInfo[];
|
|
@@ -17,6 +17,8 @@ export const networkStatePart = await appState.getStatePart('network', {
|
|
|
17
17
|
ipIntelligence: [],
|
|
18
18
|
domainActivity: [],
|
|
19
19
|
throughputHistory: [],
|
|
20
|
+
frontendConnectionHistory: [],
|
|
21
|
+
backendConnectionHistory: [],
|
|
20
22
|
requestsPerSecond: 0,
|
|
21
23
|
requestsTotal: 0,
|
|
22
24
|
backends: [],
|
|
@@ -108,6 +110,8 @@ export const fetchNetworkStatsAction = networkStatePart.createAction(async (stat
|
|
|
108
110
|
ipIntelligence: currentState.ipIntelligence,
|
|
109
111
|
domainActivity: networkStatsResponse.domainActivity || [],
|
|
110
112
|
throughputHistory: networkStatsResponse.throughputHistory || [],
|
|
113
|
+
frontendConnectionHistory: networkStatsResponse.frontendConnectionHistory || [],
|
|
114
|
+
backendConnectionHistory: networkStatsResponse.backendConnectionHistory || [],
|
|
111
115
|
requestsPerSecond: networkStatsResponse.requestsPerSecond || 0,
|
|
112
116
|
requestsTotal: networkStatsResponse.requestsTotal || 0,
|
|
113
117
|
backends: networkStatsResponse.backends || [],
|
|
@@ -128,4 +132,4 @@ export const fetchNetworkStatsAction = networkStatePart.createAction(async (stat
|
|
|
128
132
|
}
|
|
129
133
|
});
|
|
130
134
|
// ============================================================================
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9hcHBzdGF0ZS9uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE1BQU0sbUNBQW1DLEdBQUcsTUFBTSxDQUFDO0FBQ25ELElBQUksMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0FBMEJwQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQ3pELFNBQVMsRUFDVDtJQUNFLFdBQVcsRUFBRSxFQUFFO0lBQ2YsZUFBZSxFQUFFLEVBQUU7SUFDbkIsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRTtJQUM3RCxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7SUFDN0IsTUFBTSxFQUFFLEVBQUU7SUFDVixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsY0FBYyxFQUFFLEVBQUU7SUFDbEIsY0FBYyxFQUFFLEVBQUU7SUFDbEIsY0FBYyxFQUFFLEVBQUU7SUFDbEIsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQix5QkFBeUIsRUFBRSxFQUFFO0lBQzdCLHdCQUF3QixFQUFFLEVBQUU7SUFDNUIsaUJBQWlCLEVBQUUsQ0FBQztJQUNwQixhQUFhLEVBQUUsQ0FBQztJQUNoQixRQUFRLEVBQUUsRUFBRTtJQUNaLGlCQUFpQixFQUFF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
|
|
@@ -278,6 +278,8 @@ async function dispatchCombinedRefreshActionInner() {
|
|
|
278
278
|
throughputByIP: network.topEndpoints.map(e => ({ ip: e.endpoint, in: e.bandwidth?.in || 0, out: e.bandwidth?.out || 0 })),
|
|
279
279
|
domainActivity: network.domainActivity || [],
|
|
280
280
|
throughputHistory: network.throughputHistory || [],
|
|
281
|
+
frontendConnectionHistory: network.frontendConnectionHistory || [],
|
|
282
|
+
backendConnectionHistory: network.backendConnectionHistory || [],
|
|
281
283
|
requestsPerSecond: network.requestsPerSecond || 0,
|
|
282
284
|
requestsTotal: network.requestsTotal || 0,
|
|
283
285
|
backends: network.backends || [],
|
|
@@ -401,4 +403,4 @@ startAutoRefresh();
|
|
|
401
403
|
if (loginStatePart.getState().isLoggedIn) {
|
|
402
404
|
connectSocket();
|
|
403
405
|
}
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9hcHBzdGF0ZS9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLDhCQUE4QixHQUMvQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0ws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
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzX3dlYi9hcHBzdGF0ZS9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsOEJBQThCLEVBQzlCLDhCQUE4QixHQUMvQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0ws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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface IChartPoint {
|
|
2
|
+
x: string | number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export interface IProtocolConnectionHistoryPointLike {
|
|
6
|
+
timestamp: number;
|
|
7
|
+
total: number;
|
|
8
|
+
protocols: Record<string, number>;
|
|
9
|
+
}
|
|
10
|
+
export type TProtocolChartSeries = Array<{
|
|
11
|
+
name: string;
|
|
12
|
+
data: IChartPoint[];
|
|
13
|
+
}>;
|
|
14
|
+
export declare const PROTOCOL_ORDER: readonly ["HTTP/1.1", "HTTP/2", "HTTP/3", "WebSocket", "Other"];
|
|
15
|
+
export declare const PROTOCOL_SERIES_ORDER: readonly ["Total Active", "HTTP/1.1", "HTTP/2", "HTTP/3", "WebSocket", "Other"];
|
|
16
|
+
export declare const getLatestHistoryEpochSecond: (historyArg: Array<{
|
|
17
|
+
timestamp: number;
|
|
18
|
+
}>) => number;
|
|
19
|
+
export declare const mergeChartPoints: (localPointsArg: IChartPoint[], canonicalPointsArg: IChartPoint[], maximumPointsArg: number) => IChartPoint[];
|
|
20
|
+
export declare const createProtocolConnectionSeries: (historyArg?: IProtocolConnectionHistoryPointLike[]) => TProtocolChartSeries;
|
|
21
|
+
export declare const mergeProtocolConnectionHistory: (localSeriesArg: TProtocolChartSeries, canonicalHistoryArg: IProtocolConnectionHistoryPointLike[], maximumPointsArg: number) => TProtocolChartSeries;
|
|
22
|
+
export declare const getProtocolConnectionTotal: (protocolsArg: Record<string, number>) => number;
|
|
23
|
+
export declare const appendProtocolConnectionSample: (localSeriesArg: TProtocolChartSeries, timestampArg: string | number, protocolsArg: Record<string, number>, maximumPointsArg: number) => TProtocolChartSeries;
|
|
24
|
+
export declare const shouldRestartNetworkActivityTimer: (isConnectedArg: boolean, documentHiddenArg: boolean) => boolean;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const PROTOCOL_ORDER = ['HTTP/1.1', 'HTTP/2', 'HTTP/3', 'WebSocket', 'Other'];
|
|
2
|
+
export const PROTOCOL_SERIES_ORDER = ['Total Active', ...PROTOCOL_ORDER];
|
|
3
|
+
const toEpochSecond = (timestampArg) => {
|
|
4
|
+
const timestampMs = typeof timestampArg === 'number'
|
|
5
|
+
? timestampArg
|
|
6
|
+
: new Date(timestampArg).getTime();
|
|
7
|
+
return Math.floor(timestampMs / 1000);
|
|
8
|
+
};
|
|
9
|
+
export const getLatestHistoryEpochSecond = (historyArg) => historyArg.reduce((latest, point) => Math.max(latest, Math.floor(point.timestamp / 1000)), 0);
|
|
10
|
+
export const mergeChartPoints = (localPointsArg, canonicalPointsArg, maximumPointsArg) => {
|
|
11
|
+
const pointsBySecond = new Map();
|
|
12
|
+
for (const point of localPointsArg) {
|
|
13
|
+
const epochSecond = toEpochSecond(point.x);
|
|
14
|
+
if (Number.isFinite(epochSecond)) {
|
|
15
|
+
pointsBySecond.set(epochSecond, point);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
// Canonical engine samples win when a locally repeated cached sample used the same second.
|
|
19
|
+
for (const point of canonicalPointsArg) {
|
|
20
|
+
const epochSecond = toEpochSecond(point.x);
|
|
21
|
+
if (Number.isFinite(epochSecond)) {
|
|
22
|
+
pointsBySecond.set(epochSecond, point);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return [...pointsBySecond.entries()]
|
|
26
|
+
.sort(([secondA], [secondB]) => secondA - secondB)
|
|
27
|
+
.map(([, point]) => point)
|
|
28
|
+
.slice(-maximumPointsArg);
|
|
29
|
+
};
|
|
30
|
+
export const createProtocolConnectionSeries = (historyArg = []) => PROTOCOL_SERIES_ORDER.map((seriesName) => ({
|
|
31
|
+
name: seriesName,
|
|
32
|
+
data: historyArg.map((point) => ({
|
|
33
|
+
x: new Date(point.timestamp).toISOString(),
|
|
34
|
+
y: seriesName === 'Total Active'
|
|
35
|
+
? point.total
|
|
36
|
+
: (point.protocols[seriesName] ?? 0),
|
|
37
|
+
})),
|
|
38
|
+
}));
|
|
39
|
+
export const mergeProtocolConnectionHistory = (localSeriesArg, canonicalHistoryArg, maximumPointsArg) => {
|
|
40
|
+
const localSeriesByName = new Map(localSeriesArg.map((series) => [series.name, series]));
|
|
41
|
+
const canonicalSeriesByName = new Map(createProtocolConnectionSeries(canonicalHistoryArg)
|
|
42
|
+
.map((series) => [series.name, series]));
|
|
43
|
+
return PROTOCOL_SERIES_ORDER.map((seriesName) => ({
|
|
44
|
+
name: seriesName,
|
|
45
|
+
data: mergeChartPoints(localSeriesByName.get(seriesName)?.data ?? [], canonicalSeriesByName.get(seriesName)?.data ?? [], maximumPointsArg),
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
48
|
+
export const getProtocolConnectionTotal = (protocolsArg) => (protocolsArg['HTTP/1.1'] ?? 0)
|
|
49
|
+
+ (protocolsArg['HTTP/2'] ?? 0)
|
|
50
|
+
+ (protocolsArg['HTTP/3'] ?? 0)
|
|
51
|
+
+ (protocolsArg.Other ?? 0);
|
|
52
|
+
export const appendProtocolConnectionSample = (localSeriesArg, timestampArg, protocolsArg, maximumPointsArg) => {
|
|
53
|
+
const localSeriesByName = new Map(localSeriesArg.map((series) => [series.name, series]));
|
|
54
|
+
return PROTOCOL_SERIES_ORDER.map((seriesName) => ({
|
|
55
|
+
name: seriesName,
|
|
56
|
+
data: mergeChartPoints(localSeriesByName.get(seriesName)?.data ?? [], [{
|
|
57
|
+
x: timestampArg,
|
|
58
|
+
y: seriesName === 'Total Active'
|
|
59
|
+
? getProtocolConnectionTotal(protocolsArg)
|
|
60
|
+
: (protocolsArg[seriesName] ?? 0),
|
|
61
|
+
}], maximumPointsArg),
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
64
|
+
export const shouldRestartNetworkActivityTimer = (isConnectedArg, documentHiddenArg) => isConnectedArg && !documentHiddenArg;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1hY3Rpdml0eS1oaXN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL25ldHdvcmsvbmV0d29yay1hY3Rpdml0eS1oaXN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFVLENBQUM7QUFDOUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxjQUFjLENBQVUsQ0FBQztBQUVsRixNQUFNLGFBQWEsR0FBRyxDQUFDLFlBQTZCLEVBQVUsRUFBRTtJQUM5RCxNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRO1FBQ2xELENBQUMsQ0FBQyxZQUFZO1FBQ2QsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsVUFBd0MsRUFDaEMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzVCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQ3ZFLENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsY0FBNkIsRUFDN0Isa0JBQWlDLEVBQ2pDLGdCQUF3QixFQUNULEVBQUU7SUFDakIsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBQ0QsMkZBQTJGO0lBQzNGLEtBQUssTUFBTSxLQUFLLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN2QyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUNqRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztTQUN6QixLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQzVDLGFBQW9ELEVBQUUsRUFDaEMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxJQUFJLEVBQUUsVUFBVTtJQUNoQixJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtRQUMxQyxDQUFDLEVBQUUsVUFBVSxLQUFLLGNBQWM7WUFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ2IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkMsQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUM1QyxjQUFvQyxFQUNwQyxtQkFBMEQsRUFDMUQsZ0JBQXdCLEVBQ0YsRUFBRTtJQUN4QixNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsQ0FDbkMsOEJBQThCLENBQUMsbUJBQW1CLENBQUM7U0FDaEQsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDMUMsQ0FBQztJQUVGLE9BQU8scUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxnQkFBZ0IsQ0FDcEIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQzdDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxFQUNqRCxnQkFBZ0IsQ0FDakI7S0FDRixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQ3hDLFlBQW9DLEVBQzVCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7TUFDeEMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO01BQzdCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztNQUM3QixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDNUMsY0FBb0MsRUFDcEMsWUFBNkIsRUFDN0IsWUFBb0MsRUFDcEMsZ0JBQXdCLEVBQ0YsRUFBRTtJQUN4QixNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsT0FBTyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLGdCQUFnQixDQUNwQixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFDN0MsQ0FBQztnQkFDQyxDQUFDLEVBQUUsWUFBWTtnQkFDZixDQUFDLEVBQUUsVUFBVSxLQUFLLGNBQWM7b0JBQzlCLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEMsQ0FBQyxFQUNGLGdCQUFnQixDQUNqQjtLQUNGLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FDL0MsY0FBdUIsRUFDdkIsaUJBQTBCLEVBQ2pCLEVBQUUsQ0FBQyxjQUFjLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyJ9
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
2
|
import * as appstate from '../../appstate.js';
|
|
3
|
+
import { type IChartPoint, type TProtocolChartSeries } from './network-activity-history.js';
|
|
3
4
|
declare global {
|
|
4
5
|
interface HTMLElementTagNameMap {
|
|
5
6
|
'ops-view-network-activity': OpsViewNetworkActivity;
|
|
6
7
|
}
|
|
7
8
|
}
|
|
8
9
|
export declare class OpsViewNetworkActivity extends DeesElement {
|
|
9
|
-
/** How far back the
|
|
10
|
+
/** How far back the realtime charts show */
|
|
10
11
|
private static readonly CHART_WINDOW_MS;
|
|
11
12
|
/** How often a new data point is added */
|
|
12
13
|
private static readonly UPDATE_INTERVAL_MS;
|
|
@@ -14,32 +15,28 @@ export declare class OpsViewNetworkActivity extends DeesElement {
|
|
|
14
15
|
private static readonly MAX_DATA_POINTS;
|
|
15
16
|
accessor statsState: appstate.IStatsState;
|
|
16
17
|
accessor networkState: appstate.INetworkState;
|
|
17
|
-
accessor trafficDataIn:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
accessor trafficDataOut: Array<{
|
|
22
|
-
x: string | number;
|
|
23
|
-
y: number;
|
|
24
|
-
}>;
|
|
18
|
+
accessor trafficDataIn: IChartPoint[];
|
|
19
|
+
accessor trafficDataOut: IChartPoint[];
|
|
20
|
+
accessor frontendConnectionSeries: TProtocolChartSeries;
|
|
21
|
+
accessor backendConnectionSeries: TProtocolChartSeries;
|
|
25
22
|
private lastChartUpdate;
|
|
26
23
|
private chartUpdateThreshold;
|
|
27
24
|
private trafficUpdateTimer;
|
|
28
25
|
private requestsPerSecHistory;
|
|
29
|
-
private historyLoaded;
|
|
30
26
|
private visibilityHandler;
|
|
27
|
+
private lastThroughputHistoryEpochSecond;
|
|
28
|
+
private lastFrontendHistoryEpochSecond;
|
|
29
|
+
private lastBackendHistoryEpochSecond;
|
|
31
30
|
constructor();
|
|
32
31
|
connectedCallback(): Promise<void>;
|
|
33
32
|
disconnectedCallback(): Promise<void>;
|
|
34
33
|
private subscribeToStateParts;
|
|
35
34
|
private initializeTrafficData;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*/
|
|
42
|
-
private loadThroughputHistory;
|
|
35
|
+
private mergeThroughputHistory;
|
|
36
|
+
private getProtocolCounts;
|
|
37
|
+
private getProtocolSeriesWithColors;
|
|
38
|
+
private mergeProtocolConnectionHistories;
|
|
39
|
+
private addProtocolConnectionDataPoints;
|
|
43
40
|
static styles: import("@design.estate/dees-element").CSSResult[];
|
|
44
41
|
render(): TemplateResult<1>;
|
|
45
42
|
private formatNumber;
|