UNPKG

@n8n/n8n-benchmark

Version:

Cli for running benchmark tests for n8n

65 lines 2.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildAppMetricsReport = buildAppMetricsReport; exports.buildTestReport = buildTestReport; const nanoid_1 = require("nanoid"); const prometheus_metrics_parser_1 = require("../test-execution/prometheus-metrics-parser"); function k6CheckToCheck(check) { return { name: check.name, passes: check.passes, fails: check.fails, }; } function k6CounterToCounter(counter) { return { type: 'counter', count: counter.values.count, rate: counter.values.rate, }; } function k6TrendToTrend(trend) { return { type: 'trend', 'p(90)': trend.values['p(90)'], avg: trend.values.avg, min: trend.values.min, med: trend.values.med, max: trend.values.max, 'p(95)': trend.values['p(95)'], }; } function buildAppMetricsReport(metricsData) { const heapSizeTotal = prometheus_metrics_parser_1.PrometheusMetricsParser.calculateMetricStats(metricsData, 'n8n_nodejs_heap_size_total_bytes'); const heapSizeUsed = prometheus_metrics_parser_1.PrometheusMetricsParser.calculateMetricStats(metricsData, 'n8n_nodejs_heap_size_used_bytes'); const externalMemory = prometheus_metrics_parser_1.PrometheusMetricsParser.calculateMetricStats(metricsData, 'n8n_nodejs_external_memory_bytes'); const eventLoopLag = prometheus_metrics_parser_1.PrometheusMetricsParser.calculateMetricStats(metricsData, 'n8n_nodejs_eventloop_lag_seconds'); return { ...(heapSizeTotal && { heapSizeTotal }), ...(heapSizeUsed && { heapSizeUsed }), ...(externalMemory && { externalMemory }), ...(eventLoopLag && { eventLoopLag }), }; } function buildTestReport(scenario, endOfTestSummary, tags, appMetricsData) { const appMetrics = appMetricsData ? buildAppMetricsReport(appMetricsData) : undefined; return { runId: (0, nanoid_1.nanoid)(), ts: new Date().toISOString(), scenarioName: scenario.name, tags, checks: endOfTestSummary.root_group.checks.map(k6CheckToCheck), metrics: { dataReceived: k6CounterToCounter(endOfTestSummary.metrics.data_received), dataSent: k6CounterToCounter(endOfTestSummary.metrics.data_sent), httpRequests: k6CounterToCounter(endOfTestSummary.metrics.http_reqs), httpRequestDuration: k6TrendToTrend(endOfTestSummary.metrics.http_req_duration), httpRequestSending: k6TrendToTrend(endOfTestSummary.metrics.http_req_sending), httpRequestReceiving: k6TrendToTrend(endOfTestSummary.metrics.http_req_receiving), httpRequestWaiting: k6TrendToTrend(endOfTestSummary.metrics.http_req_waiting), iterations: k6CounterToCounter(endOfTestSummary.metrics.iterations), }, ...(appMetrics && { appMetrics }), }; } //# sourceMappingURL=test-report.js.map