@@ -288,7 +288,7 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig &user_config,
288288 all_sources_configs;
289289
290290 // DD_SERVICE
291- final_config.defaults .service = pick (
291+ final_config.defaults .service = resolve_and_record_config (
292292 env_config->service , user_config.service , &all_sources_configs,
293293 &final_config.metadata , ConfigName::SERVICE_NAME , get_process_name ());
294294
@@ -297,65 +297,65 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig &user_config,
297297 value_or (env_config->service_type , user_config.service_type , " web" );
298298
299299 // DD_ENV
300- final_config.defaults .environment = pick (
300+ final_config.defaults .environment = resolve_and_record_config (
301301 env_config->environment , user_config.environment , &all_sources_configs,
302302 &final_config.metadata , ConfigName::SERVICE_ENV );
303303
304304 // DD_VERSION
305- final_config.defaults .version =
306- pick ( env_config->version , user_config.version , &all_sources_configs,
307- &final_config.metadata , ConfigName::SERVICE_VERSION );
305+ final_config.defaults .version = resolve_and_record_config (
306+ env_config->version , user_config.version , &all_sources_configs,
307+ &final_config.metadata , ConfigName::SERVICE_VERSION );
308308
309309 // Span name
310310 final_config.defaults .name = value_or (env_config->name , user_config.name , " " );
311311
312312 // DD_TAGS
313- final_config.defaults .tags =
314- pick ( env_config->tags , user_config.tags , &all_sources_configs,
315- &final_config.metadata , ConfigName::TAGS ,
316- std::unordered_map<std::string, std::string>{},
317- [](const auto &tags) { return join_tags (tags); });
313+ final_config.defaults .tags = resolve_and_record_config (
314+ env_config->tags , user_config.tags , &all_sources_configs,
315+ &final_config.metadata , ConfigName::TAGS ,
316+ std::unordered_map<std::string, std::string>{},
317+ [](const auto &tags) { return join_tags (tags); });
318318
319319 // Extraction Styles
320320 const std::vector<PropagationStyle> default_propagation_styles{
321321 PropagationStyle::DATADOG , PropagationStyle::W3C ,
322322 PropagationStyle::BAGGAGE };
323323
324- final_config.extraction_styles =
325- pick ( env_config->extraction_styles , user_config.extraction_styles ,
326- &all_sources_configs, &final_config.metadata ,
327- ConfigName::EXTRACTION_STYLES , default_propagation_styles,
328- [](const std::vector<PropagationStyle> &styles) {
329- return join_propagation_styles (styles);
330- });
324+ final_config.extraction_styles = resolve_and_record_config (
325+ env_config->extraction_styles , user_config.extraction_styles ,
326+ &all_sources_configs, &final_config.metadata ,
327+ ConfigName::EXTRACTION_STYLES , default_propagation_styles,
328+ [](const std::vector<PropagationStyle> &styles) {
329+ return join_propagation_styles (styles);
330+ });
331331
332332 if (final_config.extraction_styles .empty ()) {
333333 return Error{Error::MISSING_SPAN_EXTRACTION_STYLE ,
334334 " At least one extraction style must be specified." };
335335 }
336336
337337 // Injection Styles
338- final_config.injection_styles =
339- pick ( env_config->injection_styles , user_config.injection_styles ,
340- &all_sources_configs, &final_config.metadata ,
341- ConfigName::INJECTION_STYLES , default_propagation_styles,
342- [](const std::vector<PropagationStyle> &styles) {
343- return join_propagation_styles (styles);
344- });
338+ final_config.injection_styles = resolve_and_record_config (
339+ env_config->injection_styles , user_config.injection_styles ,
340+ &all_sources_configs, &final_config.metadata ,
341+ ConfigName::INJECTION_STYLES , default_propagation_styles,
342+ [](const std::vector<PropagationStyle> &styles) {
343+ return join_propagation_styles (styles);
344+ });
345345
346346 if (final_config.injection_styles .empty ()) {
347347 return Error{Error::MISSING_SPAN_INJECTION_STYLE ,
348348 " At least one injection style must be specified." };
349349 }
350350
351351 // Startup Logs
352- final_config.log_on_startup = pick (
352+ final_config.log_on_startup = resolve_and_record_config (
353353 env_config->log_on_startup , user_config.log_on_startup ,
354354 &all_sources_configs, &final_config.metadata , ConfigName::STARTUP_LOGS ,
355355 true , [](const bool &b) { return to_string (b); });
356356
357357 // Report traces
358- final_config.report_traces = pick (
358+ final_config.report_traces = resolve_and_record_config (
359359 env_config->report_traces , user_config.report_traces ,
360360 &all_sources_configs, &final_config.metadata , ConfigName::REPORT_TRACES ,
361361 true , [](const bool &b) { return to_string (b); });
@@ -369,11 +369,11 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig &user_config,
369369 env_config->max_tags_header_size , user_config.max_tags_header_size , 512 );
370370
371371 // 128b Trace IDs
372- final_config.generate_128bit_trace_ids =
373- pick ( env_config->generate_128bit_trace_ids ,
374- user_config.generate_128bit_trace_ids , &all_sources_configs,
375- &final_config.metadata , ConfigName::GENEREATE_128BIT_TRACE_IDS , true ,
376- [](const bool &b) { return to_string (b); });
372+ final_config.generate_128bit_trace_ids = resolve_and_record_config (
373+ env_config->generate_128bit_trace_ids ,
374+ user_config.generate_128bit_trace_ids , &all_sources_configs,
375+ &final_config.metadata , ConfigName::GENEREATE_128BIT_TRACE_IDS , true ,
376+ [](const bool &b) { return to_string (b); });
377377
378378 // Integration name & version
379379 final_config.integration_name = value_or (
@@ -383,18 +383,18 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig &user_config,
383383 tracer_version);
384384
385385 // Baggage - max items
386- final_config.baggage_opts .max_items =
387- pick ( env_config->baggage_max_items , user_config.baggage_max_items ,
388- &all_sources_configs, &final_config.metadata ,
389- ConfigName::TRACE_BAGGAGE_MAX_ITEMS , 64UL ,
390- [](const size_t &i) { return std::to_string (i); });
386+ final_config.baggage_opts .max_items = resolve_and_record_config (
387+ env_config->baggage_max_items , user_config.baggage_max_items ,
388+ &all_sources_configs, &final_config.metadata ,
389+ ConfigName::TRACE_BAGGAGE_MAX_ITEMS , 64UL ,
390+ [](const size_t &i) { return std::to_string (i); });
391391
392392 // Baggage - max bytes
393- final_config.baggage_opts .max_bytes =
394- pick ( env_config->baggage_max_bytes , user_config.baggage_max_bytes ,
395- &all_sources_configs, &final_config.metadata ,
396- ConfigName::TRACE_BAGGAGE_MAX_BYTES , 8192UL ,
397- [](const size_t &i) { return std::to_string (i); });
393+ final_config.baggage_opts .max_bytes = resolve_and_record_config (
394+ env_config->baggage_max_bytes , user_config.baggage_max_bytes ,
395+ &all_sources_configs, &final_config.metadata ,
396+ ConfigName::TRACE_BAGGAGE_MAX_BYTES , 8192UL ,
397+ [](const size_t &i) { return std::to_string (i); });
398398
399399 if (final_config.baggage_opts .max_items <= 0 ||
400400 final_config.baggage_opts .max_bytes < 3 ) {
@@ -459,27 +459,28 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig &user_config,
459459 }
460460
461461 // APM Tracing Enabled
462- final_config.tracing_enabled =
463- pick ( env_config->tracing_enabled , user_config.tracing_enabled ,
464- &all_sources_configs, &final_config.metadata ,
465- ConfigName::APM_TRACING_ENABLED , true ,
466- [](const bool &b) { return to_string (b); });
462+ final_config.tracing_enabled = resolve_and_record_config (
463+ env_config->tracing_enabled , user_config.tracing_enabled ,
464+ &all_sources_configs, &final_config.metadata ,
465+ ConfigName::APM_TRACING_ENABLED , true ,
466+ [](const bool &b) { return to_string (b); });
467467
468468 {
469469 // Resource Renaming Enabled
470- const bool resource_renaming_enabled = pick (
470+ const bool resource_renaming_enabled = resolve_and_record_config (
471471 env_config->resource_renaming_enabled ,
472472 user_config.resource_renaming_enabled , &all_sources_configs,
473473 &final_config.metadata , ConfigName::TRACE_RESOURCE_RENAMING_ENABLED ,
474474 false , [](const bool &b) { return to_string (b); });
475475
476476 // Resource Renaming Always Simplified Endpoint
477477 const bool resource_renaming_always_simplified_endpoint =
478- pick (env_config->resource_renaming_always_simplified_endpoint ,
479- user_config.resource_renaming_always_simplified_endpoint ,
480- &all_sources_configs, &final_config.metadata ,
481- ConfigName::TRACE_RESOURCE_RENAMING_ALWAYS_SIMPLIFIED_ENDPOINT ,
482- false , [](const bool &b) { return to_string (b); });
478+ resolve_and_record_config (
479+ env_config->resource_renaming_always_simplified_endpoint ,
480+ user_config.resource_renaming_always_simplified_endpoint ,
481+ &all_sources_configs, &final_config.metadata ,
482+ ConfigName::TRACE_RESOURCE_RENAMING_ALWAYS_SIMPLIFIED_ENDPOINT ,
483+ false , [](const bool &b) { return to_string (b); });
483484
484485 if (!resource_renaming_enabled) {
485486 final_config.resource_renaming_mode =
0 commit comments