diff --git a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/metrics.js b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/metrics.js index e120fba474..2cde46dfd2 100644 --- a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/metrics.js +++ b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/metrics.js @@ -50,7 +50,10 @@ class OTelMetricsReporter { meterName: config.meterName || 'Artillery.io_metrics', includeOnly: config.includeOnly || [], exclude: config.exclude || [], - attributes: config.attributes || {} + attributes: { + ...(config.attributes || {}), + test_id: global.artillery.testRunId + } }; this.meterProvider = new MeterProvider({ diff --git a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/base.js b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/base.js index bf16d18d91..b64a2da43f 100644 --- a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/base.js +++ b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/base.js @@ -112,6 +112,7 @@ class OTelTraceBase { kind: SpanKind.CLIENT, attributes: { 'vu.uuid': userContext.vars.$uuid, + test_id: userContext.vars.$testId, [SemanticAttributes.PEER_SERVICE]: this.config.serviceName } } diff --git a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/http.js b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/http.js index cbf07b898a..6a7c823815 100644 --- a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/http.js +++ b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/http.js @@ -68,6 +68,7 @@ class OTelHTTPTraceReporter extends OTelTraceBase { kind: SpanKind.CLIENT, attributes: { 'vu.uuid': userContext.vars.$uuid, + test_id: userContext.vars.$testId, [SemanticAttributes.HTTP_URL]: parsedUrl || url.href, // We set the port if it is specified, if not we set to a default port based on the protocol [SemanticAttributes.HTTP_SCHEME]: @@ -121,7 +122,10 @@ class OTelHTTPTraceReporter extends OTelTraceBase { .startSpan(name, { kind: SpanKind.CLIENT, startTime: res.timings[value.start], - attributes: { 'vu.uuid': userContext.vars.$uuid } + attributes: { + 'vu.uuid': userContext.vars.$uuid, + test_id: userContext.vars.$testId + } }) .end(res.timings[value.end]); } diff --git a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/playwright.js b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/playwright.js index f45af9c373..48170dc1c8 100644 --- a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/playwright.js +++ b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/tracing/playwright.js @@ -42,6 +42,7 @@ class OTelPlaywrightTraceReporter extends OTelTraceBase { async (scenarioSpan) => { scenarioSpan.setAttributes({ 'vu.uuid': vuContext.vars.$uuid, + test_id: vuContext.vars.$testId, ...(this.config.attributes || {}) }); this.pendingPlaywrightScenarioSpans++; @@ -115,6 +116,7 @@ class OTelPlaywrightTraceReporter extends OTelTraceBase { ); pageSpan.setAttributes({ 'vu.uuid': vuContext.vars.$uuid, + test_id: vuContext.vars.$testId, ...(this.config.attributes || {}) }); lastPageUrl = pageUrl; @@ -170,6 +172,7 @@ class OTelPlaywrightTraceReporter extends OTelTraceBase { try { span.setAttributes({ 'vu.uuid': vuContext.vars.$uuid, + test_id: vuContext.vars.$testId, ...(this.config.attributes || {}) });