diff --git a/experimental/packages/configuration/src/models/configModel.ts b/experimental/packages/configuration/src/models/configModel.ts index 16ebd8ff451..37f849e55de 100644 --- a/experimental/packages/configuration/src/models/configModel.ts +++ b/experimental/packages/configuration/src/models/configModel.ts @@ -81,10 +81,6 @@ export function initializeDefaultConfiguration(): ConfigurationModel { attribute_limits: { attribute_count_limit: 128, }, - propagator: { - composite: [{ tracecontext: null }, { baggage: null }], - composite_list: 'tracecontext,baggage', - }, }; return config; diff --git a/experimental/packages/configuration/test/utils.test.ts b/experimental/packages/configuration/test/utils.test.ts index 46be589de33..4f90f296823 100644 --- a/experimental/packages/configuration/test/utils.test.ts +++ b/experimental/packages/configuration/test/utils.test.ts @@ -26,6 +26,8 @@ import { getStringFromConfigFile, getStringListFromConfigFile, } from '../src/utils'; +import { initializeDefaultConfiguration } from '../src/models/configModel'; +import { EnvironmentConfigFactory } from '../src/EnvironmentConfigFactory'; describe('config utils', function () { afterEach(function () { @@ -189,4 +191,19 @@ describe('config utils', function () { ); }); }); + + it('should set propagators from OTEL_PROPAGATORS when defined', () => { + process.env.OTEL_PROPAGATORS = 'tracecontext,baggage'; + + const factory = new EnvironmentConfigFactory(); + const config = factory.getConfigModel(); + + assert.strictEqual(config.propagator, 'propagator should be defined'); + assert.strictEqual( + config.propagator.composite_list, + 'tracecontext,baggage' + ); + + delete process.env.OTEL_PROPAGATORS; + }); }); diff --git a/packages/opentelemetry-core/src/baggage/utils.ts b/packages/opentelemetry-core/src/baggage/utils.ts index 6346e8c8771..e52ca447d95 100644 --- a/packages/opentelemetry-core/src/baggage/utils.ts +++ b/packages/opentelemetry-core/src/baggage/utils.ts @@ -70,7 +70,7 @@ export function parsePairKeyValue( const rawKey = keyPairPart.substring(0, separatorIndex).trim(); const rawValue = keyPairPart.substring(separatorIndex + 1).trim(); - if (!rawKey || !rawValue) return; + if (!rawKey) return; let key: string; let value: string; try { @@ -105,7 +105,7 @@ export function parseKeyPairsIntoRecord( value.split(BAGGAGE_ITEMS_SEPARATOR).forEach(entry => { const keyPair = parsePairKeyValue(entry); - if (keyPair !== undefined && keyPair.value.length > 0) { + if (keyPair !== undefined && keyPair.value !== undefined) { result[keyPair.key] = keyPair.value; } }); diff --git a/packages/opentelemetry-core/test/common/baggage/utils.test.ts b/packages/opentelemetry-core/test/common/baggage/utils.test.ts index aa5a0175b05..70f1a908943 100644 --- a/packages/opentelemetry-core/test/common/baggage/utils.test.ts +++ b/packages/opentelemetry-core/test/common/baggage/utils.test.ts @@ -54,9 +54,10 @@ describe('parseKeyPairsIntoRecord()', () => { }); }); - it('filters out empty values', () => { - assert.deepStrictEqual(parseKeyPairsIntoRecord('key1=,key2=value2'), { - key2: 'value2', + it('prevents empty baggage values', () => { + assert.deepStrictEqual(parseKeyPairsIntoRecord('key1=value1,key2='), { + key1: 'value1', + key2: '', }); }); });