UNPKG

@n8n/n8n-benchmark

Version:

Cli for running benchmark tests for n8n

54 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AppMetricsPoller = void 0; class AppMetricsPoller { constructor(metricsUrl, pollIntervalMs = 5000) { this.metricsUrl = metricsUrl; this.pollIntervalMs = pollIntervalMs; this.intervalId = undefined; this.metricsData = []; this.isRunning = false; this.isStopped = false; } start() { if (this.isRunning) { throw new Error('Metrics poller is already running'); } if (this.isStopped) { throw new Error('Metrics poller has been stopped and cannot be restarted'); } this.isRunning = true; this.metricsData = []; void this.pollMetrics(); this.intervalId = setInterval(() => { void this.pollMetrics(); }, this.pollIntervalMs); } stop() { if (this.intervalId) { clearInterval(this.intervalId); this.intervalId = undefined; } this.isRunning = false; this.isStopped = true; } getMetricsData() { return this.metricsData; } async pollMetrics() { try { const response = await fetch(this.metricsUrl); if (!response.ok) { console.warn(`Failed to poll metrics: ${response.status} ${response.statusText}`); return; } const metricsText = await response.text(); this.metricsData.push(metricsText); } catch (error) { console.warn(`Error polling metrics: ${error instanceof Error ? error.message : String(error)}`); } } } exports.AppMetricsPoller = AppMetricsPoller; //# sourceMappingURL=app-metrics-poller.js.map