diff --git a/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts b/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts index c7cd9e77287..77e285225c7 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts +++ b/experimental/packages/opentelemetry-exporter-prometheus/src/PrometheusExporter.ts @@ -84,9 +84,12 @@ export class PrometheusExporter extends MetricReader { typeof config.appendTimestamp === 'boolean' ? config.appendTimestamp : PrometheusExporter.DEFAULT_OPTIONS.appendTimestamp; + const _resourceConstantLabelsFromEnv = process.env.OTEL_EXPORTER_PROMETHEUS_RESOURCE_CONSTANT_LABELS; const _withResourceConstantLabels = config.withResourceConstantLabels || - PrometheusExporter.DEFAULT_OPTIONS.withResourceConstantLabels; + (_resourceConstantLabelsFromEnv + ? new RegExp(_resourceConstantLabelsFromEnv) + : PrometheusExporter.DEFAULT_OPTIONS.withResourceConstantLabels); const _withoutTargetInfo = config.withoutTargetInfo || PrometheusExporter.DEFAULT_OPTIONS.withoutTargetInfo; diff --git a/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusExporter.test.ts b/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusExporter.test.ts index 421e0403481..fb01e98915c 100644 --- a/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusExporter.test.ts +++ b/experimental/packages/opentelemetry-exporter-prometheus/test/PrometheusExporter.test.ts @@ -50,6 +50,7 @@ describe('PrometheusExporter', () => { sinon.restore(); delete process.env.OTEL_EXPORTER_PROMETHEUS_HOST; delete process.env.OTEL_EXPORTER_PROMETHEUS_PORT; + delete process.env.OTEL_EXPORTER_PROMETHEUS_RESOURCE_CONSTANT_LABELS; }); describe('constructor', () => { @@ -90,6 +91,12 @@ describe('PrometheusExporter', () => { const exporter = new PrometheusExporter({ preventServerStart: true }); assert.ok(exporter['_server'].listening === false); }); + + it('should config resource constant labels by env', () => { + process.env.OTEL_EXPORTER_PROMETHEUS_RESOURCE_CONSTANT_LABELS = 'test'; + const exporter = new PrometheusExporter({ preventServerStart: true }); + assert.ok(exporter['_serializer']['_withResourceConstantLabels']); + }); }); describe('server', () => {