From 8d776a8ffb0ef18723b4f579239965a6ab781a3f Mon Sep 17 00:00:00 2001 From: Hassy Veldstra Date: Wed, 11 Sep 2024 21:37:34 +0100 Subject: [PATCH] feat: allow setting resource-level attributes for OpenTelemetry (#3335) --- .../lib/open-telemetry/index.js | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/index.js b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/index.js index 576a4808c5..c27266c05b 100644 --- a/packages/artillery-plugin-publish-metrics/lib/open-telemetry/index.js +++ b/packages/artillery-plugin-publish-metrics/lib/open-telemetry/index.js @@ -43,6 +43,12 @@ class OTelReporter { this.serviceName = translatedConfig.serviceName; } + if (translatedConfig.resourceAttributes) { + this.resourceAttributes = translatedConfig.resourceAttributes; + } else { + this.resourceAttributes = {}; + } + // Setting traces to first traces configured if (translatedConfig.traces && !this.tracesConfig) { this.tracesConfig = translatedConfig.traces; @@ -77,10 +83,16 @@ class OTelReporter { // Setting resources here as they are used by both metrics and traces and need to be set in a central place where OTel setup is initialised and before any data is generated this.resource = Resource.default().merge( - new Resource({ - [SemanticResourceAttributes.SERVICE_NAME]: - this.serviceName || 'Artillery-test' - }) + new Resource( + Object.assign( + {}, + { + [SemanticResourceAttributes.SERVICE_NAME]: + this.serviceName || 'Artillery-test' + }, + this.resourceAttributes + ) + ) ); // HANDLING METRICS