88#include < unordered_map>
99#include < vector>
1010
11+ #include " datadog/optional.h"
1112#include " datadog_agent.h"
1213#include " json.hpp"
1314#include " null_logger.h"
@@ -286,73 +287,78 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig& user_config,
286287 std::unordered_map<ConfigName, std::vector<ConfigMetadata>> telemetry_configs;
287288
288289 // DD_SERVICE
289- final_config.defaults .service = pick (env_config->service , user_config.service , get_process_name (),
290- &telemetry_configs, &final_config.metadata ,
291- ConfigName::SERVICE_NAME);
290+ final_config.defaults .service =
291+ pick (env_config->service , user_config.service ,
292+ &telemetry_configs, &final_config.metadata , ConfigName::SERVICE_NAME,
293+ Optional<std::string>(get_process_name ()));
292294
293295 // Service type
294296 final_config.defaults .service_type =
295297 value_or (env_config->service_type , user_config.service_type , " web" );
296298
297299 // DD_ENV
298- final_config.defaults .environment = pick (env_config-> environment , user_config. environment , " " ,
299- &telemetry_configs, &final_config. metadata ,
300- ConfigName::SERVICE_ENV);
300+ final_config.defaults .environment =
301+ pick (env_config-> environment , user_config. environment ,
302+ &telemetry_configs, &final_config. metadata , ConfigName::SERVICE_ENV);
301303
302304 // DD_VERSION
303- final_config.defaults .version = pick (env_config-> version , user_config. version , " " ,
304- &telemetry_configs, &final_config. metadata ,
305- ConfigName::SERVICE_VERSION);
305+ final_config.defaults .version =
306+ pick (env_config-> version , user_config. version ,
307+ &telemetry_configs, &final_config. metadata , ConfigName::SERVICE_VERSION);
306308
307309 // Span name
308310 final_config.defaults .name = value_or (env_config->name , user_config.name , " " );
309311
310312 // DD_TAGS
311- final_config.defaults .tags = pick (env_config-> tags , user_config. tags ,
312- std::unordered_map<std::string, std::string>{} ,
313- &telemetry_configs, &final_config.metadata ,
314- ConfigName::TAGS ,
315- [](const auto & tags) { return join_tags (tags); });
313+ final_config.defaults .tags =
314+ pick (env_config-> tags , user_config. tags ,
315+ &telemetry_configs, &final_config.metadata , ConfigName::TAGS,
316+ std::unordered_map<std::string, std::string>{} ,
317+ [](const auto & tags) { return join_tags (tags); });
316318
317319 // Extraction Styles
318320 const std::vector<PropagationStyle> default_propagation_styles{
319321 PropagationStyle::DATADOG, PropagationStyle::W3C,
320322 PropagationStyle::BAGGAGE};
321323
322- final_config.extraction_styles = pick (env_config->extraction_styles , user_config.extraction_styles ,
323- default_propagation_styles,
324- &telemetry_configs, &final_config.metadata ,
325- ConfigName::EXTRACTION_STYLES,
326- [](const std::vector<PropagationStyle>& styles) { return join_propagation_styles (styles); });
324+ final_config.extraction_styles =
325+ pick (env_config->extraction_styles , user_config.extraction_styles ,
326+ &telemetry_configs, &final_config.metadata , ConfigName::EXTRACTION_STYLES,
327+ default_propagation_styles,
328+ [](const std::vector<PropagationStyle>& styles) {
329+ return join_propagation_styles (styles);
330+ });
327331
328332 if (final_config.extraction_styles .empty ()) {
329333 return Error{Error::MISSING_SPAN_EXTRACTION_STYLE,
330334 " At least one extraction style must be specified." };
331335 }
332336
333337 // Injection Styles
334- final_config.injection_styles = pick (env_config->injection_styles , user_config.injection_styles ,
335- default_propagation_styles,
336- &telemetry_configs, &final_config.metadata ,
337- ConfigName::INJECTION_STYLES,
338- [](const std::vector<PropagationStyle>& styles) { return join_propagation_styles (styles); });
338+ final_config.injection_styles =
339+ pick (env_config->injection_styles , user_config.injection_styles ,
340+ &telemetry_configs, &final_config.metadata , ConfigName::INJECTION_STYLES,
341+ default_propagation_styles,
342+ [](const std::vector<PropagationStyle>& styles) {
343+ return join_propagation_styles (styles);
344+ });
339345
340346 if (final_config.injection_styles .empty ()) {
341347 return Error{Error::MISSING_SPAN_INJECTION_STYLE,
342348 " At least one injection style must be specified." };
343349 }
344350
345351 // Startup Logs
346- final_config.log_on_startup = pick (env_config-> log_on_startup , user_config. log_on_startup , true ,
347- &telemetry_configs, &final_config. metadata ,
348- ConfigName::STARTUP_LOGS,
349- [](const bool & b) { return to_string (b); });
352+ final_config.log_on_startup =
353+ pick (env_config-> log_on_startup , user_config. log_on_startup ,
354+ &telemetry_configs, &final_config. metadata , ConfigName::STARTUP_LOGS,
355+ true , [](const bool & b) { return to_string (b); });
350356
351357 // Report traces
352- final_config.report_traces = pick (env_config-> report_traces , user_config. report_traces , true ,
353- &telemetry_configs, &final_config. metadata ,
354- ConfigName::REPORT_TRACES,
355- [](const bool & b) { return to_string (b); });
358+ final_config.report_traces = pick (
359+ env_config-> report_traces , user_config. report_traces ,
360+ &telemetry_configs, &final_config. metadata , ConfigName::REPORT_TRACES,
361+ true , [](const bool & b) { return to_string (b); });
356362
357363 // Report hostname
358364 final_config.report_hostname =
@@ -363,11 +369,11 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig& user_config,
363369 env_config->max_tags_header_size , user_config.max_tags_header_size , 512 );
364370
365371 // 128b Trace IDs
366- final_config.generate_128bit_trace_ids = pick (env_config-> generate_128bit_trace_ids ,
367- user_config. generate_128bit_trace_ids , true ,
368- &telemetry_configs, &final_config. metadata ,
369- ConfigName::GENEREATE_128BIT_TRACE_IDS,
370- [](const bool & b) { return to_string (b); });
372+ final_config.generate_128bit_trace_ids =
373+ pick (env_config-> generate_128bit_trace_ids ,
374+ user_config. generate_128bit_trace_ids ,
375+ &telemetry_configs, &final_config. metadata , ConfigName::GENEREATE_128BIT_TRACE_IDS,
376+ true , [](const bool & b) { return to_string (b); });
371377
372378 // Integration name & version
373379 final_config.integration_name = value_or (
@@ -377,16 +383,18 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig& user_config,
377383 tracer_version);
378384
379385 // Baggage - max items
380- final_config.baggage_opts .max_items = pick (env_config->baggage_max_items , user_config.baggage_max_items , 64 ,
381- &telemetry_configs, &final_config.metadata ,
382- ConfigName::TRACE_BAGGAGE_MAX_ITEMS,
383- [](const int & i) { return std::to_string (i); });
386+ final_config.baggage_opts .max_items =
387+ pick (env_config->baggage_max_items , user_config.baggage_max_items ,
388+ &telemetry_configs, &final_config.metadata ,
389+ ConfigName::TRACE_BAGGAGE_MAX_ITEMS,
390+ 64 , [](const int & i) { return std::to_string (i); });
384391
385392 // Baggage - max bytes
386- final_config.baggage_opts .max_bytes = pick (env_config->baggage_max_bytes , user_config.baggage_max_bytes , 8192 ,
387- &telemetry_configs, &final_config.metadata ,
388- ConfigName::TRACE_BAGGAGE_MAX_BYTES,
389- [](const int & i) { return std::to_string (i); });
393+ final_config.baggage_opts .max_bytes =
394+ pick (env_config->baggage_max_bytes , user_config.baggage_max_bytes ,
395+ &telemetry_configs, &final_config.metadata ,
396+ ConfigName::TRACE_BAGGAGE_MAX_BYTES,
397+ 8192 , [](const int & i) { return std::to_string (i); });
390398
391399 if (final_config.baggage_opts .max_items <= 0 ||
392400 final_config.baggage_opts .max_bytes < 3 ) {
@@ -451,26 +459,28 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig& user_config,
451459 }
452460
453461 // APM Tracing Enabled
454- final_config.tracing_enabled = pick (env_config->tracing_enabled , user_config.tracing_enabled , true ,
455- &telemetry_configs, &final_config.metadata ,
456- ConfigName::APM_TRACING_ENABLED,
457- [](const bool & b) { return to_string (b); });
462+ final_config.tracing_enabled =
463+ pick (env_config->tracing_enabled , user_config.tracing_enabled ,
464+ &telemetry_configs, &final_config.metadata ,
465+ ConfigName::APM_TRACING_ENABLED,
466+ true , [](const bool & b) { return to_string (b); });
458467
459468 {
460469 // Resource Renaming Enabled
461- const bool resource_renaming_enabled = pick (env_config->resource_renaming_enabled ,
462- user_config.resource_renaming_enabled , false ,
463- &telemetry_configs, &final_config.metadata ,
464- ConfigName::TRACE_RESOURCE_RENAMING_ENABLED,
465- [](const bool & b) { return to_string (b); });
470+ const bool resource_renaming_enabled = pick (
471+ env_config->resource_renaming_enabled ,
472+ user_config.resource_renaming_enabled ,
473+ &telemetry_configs, &final_config.metadata ,
474+ ConfigName::TRACE_RESOURCE_RENAMING_ENABLED,
475+ false , [](const bool & b) { return to_string (b); });
466476
467477 // Resource Renaming Always Simplified Endpoint
468- const bool resource_renaming_always_simplified_endpoint =
478+ const bool resource_renaming_always_simplified_endpoint =
469479 pick (env_config->resource_renaming_always_simplified_endpoint ,
470- user_config.resource_renaming_always_simplified_endpoint , false ,
471- &telemetry_configs, &final_config.metadata ,
480+ user_config.resource_renaming_always_simplified_endpoint ,
481+ &telemetry_configs, &final_config.metadata ,
472482 ConfigName::TRACE_RESOURCE_RENAMING_ALWAYS_SIMPLIFIED_ENDPOINT,
473- [](const bool & b) { return to_string (b); });
483+ false , [](const bool & b) { return to_string (b); });
474484
475485 if (!resource_renaming_enabled) {
476486 final_config.resource_renaming_mode =
0 commit comments