// Partial Copyright Jerome Benoit. 2021. All Rights Reserved.
-import { CircularArray, DEFAULT_CIRCULAR_ARRAY_SIZE } from '../utils/CircularArray';
-import { IncomingRequestCommand, RequestCommand } from '../types/ocpp/Requests';
import { PerformanceEntry, PerformanceObserver, performance } from 'perf_hooks';
-import Statistics, { StatisticsData, TimeSeries } from '../types/Statistics';
+import type { URL } from 'url';
+import { parentPort } from 'worker_threads';
-import { ChargingStationWorkerMessageEvents } from '../types/ChargingStationWorker';
-import Configuration from '../utils/Configuration';
+import { MessageChannelUtils } from '../charging-station/MessageChannelUtils';
import { MessageType } from '../types/ocpp/MessageType';
-import { URL } from 'url';
-import Utils from '../utils/Utils';
+import type { IncomingRequestCommand, RequestCommand } from '../types/ocpp/Requests';
+import type { Statistics, StatisticsData, TimeSeries } from '../types/Statistics';
+import { CircularArray, DEFAULT_CIRCULAR_ARRAY_SIZE } from '../utils/CircularArray';
+import Configuration from '../utils/Configuration';
import logger from '../utils/Logger';
-import { parentPort } from 'worker_threads';
+import Utils from '../utils/Utils';
export default class PerformanceStatistics {
private static readonly instances: Map<string, PerformanceStatistics> = new Map<
string,
PerformanceStatistics
>();
+
private readonly objId: string;
private readonly objName: string;
private performanceObserver: PerformanceObserver;
};
}
- public static getInstance(objId: string, objName: string, uri: URL): PerformanceStatistics {
+ public static getInstance(
+ objId: string,
+ objName: string,
+ uri: URL
+ ): PerformanceStatistics | undefined {
if (!PerformanceStatistics.instances.has(objId)) {
PerformanceStatistics.instances.set(objId, new PerformanceStatistics(objId, objName, uri));
}
}
break;
default:
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
logger.error(`${this.logPrefix()} wrong message type ${messageType}`);
break;
}
}
private addPerformanceEntryToStatistics(entry: PerformanceEntry): void {
- let entryName = entry.name;
- // Rename entry name
- const MAP_NAME: Record<string, string> = {};
- if (MAP_NAME[entryName]) {
- entryName = MAP_NAME[entryName];
- }
+ const entryName = entry.name;
// Initialize command statistics
if (!this.statistics.statisticsData.has(entryName)) {
this.statistics.statisticsData.set(entryName, {});
)
);
if (Configuration.getPerformanceStorage().enabled) {
- parentPort.postMessage({
- id: ChargingStationWorkerMessageEvents.PERFORMANCE_STATISTICS,
- data: this.statistics,
- });
+ parentPort.postMessage(
+ MessageChannelUtils.buildPerformanceStatisticsMessage(this.statistics)
+ );
}
}