@@ -38,7 +38,6 @@ Tracer::Tracer(const FinalizedTracerConfig& config,
3838 : logger_(config.logger),
3939 config_manager_ (std::make_shared<ConfigManager>(config)),
4040 collector_(/* see constructor body */ ),
41- defaults_(std::make_shared<SpanDefaults>(config.defaults)),
4241 runtime_id_(config.runtime_id ? *config.runtime_id
4342 : RuntimeID::generate()),
4443 signature_{runtime_id_, config.defaults .service ,
@@ -83,7 +82,6 @@ nlohmann::json Tracer::config_json() const {
8382 // clang-format off
8483 auto config = nlohmann::json::object ({
8584 {" version" , tracer_version_string},
86- {" defaults" , to_json (*defaults_)},
8785 {" runtime_id" , runtime_id_.string ()},
8886 {" collector" , collector_->config_json ()},
8987 {" span_sampler" , span_sampler_->config_json ()},
@@ -106,8 +104,9 @@ nlohmann::json Tracer::config_json() const {
106104Span Tracer::create_span () { return create_span (SpanConfig{}); }
107105
108106Span Tracer::create_span (const SpanConfig& config) {
107+ auto defaults = config_manager_->get_span_defaults ();
109108 auto span_data = std::make_unique<SpanData>();
110- span_data->apply_config (*defaults_ , config, clock_);
109+ span_data->apply_config (*defaults , config, clock_);
111110 span_data->trace_id = generator_->trace_id (span_data->start );
112111 span_data->span_id = span_data->trace_id .low ;
113112 span_data->parent_id = 0 ;
@@ -122,7 +121,7 @@ Span Tracer::create_span(const SpanConfig& config) {
122121 tracer_telemetry_->metrics ().tracer .trace_segments_created_new .inc ();
123122 const auto segment = std::make_shared<TraceSegment>(
124123 logger_, collector_, tracer_telemetry_,
125- config_manager_->get_trace_sampler (), span_sampler_, defaults_ ,
124+ config_manager_->get_trace_sampler (), span_sampler_, defaults ,
126125 runtime_id_, sampling_delegation_enabled_,
127126 false /* sampling_decision_was_delegated_to_me */ , injection_styles_,
128127 hostname_, nullopt /* origin */ , tags_header_max_size_,
@@ -241,7 +240,8 @@ Expected<Span> Tracer::extract_span(const DictReader& reader,
241240
242241 // We're done extracting fields. Now create the span.
243242 // This is similar to what we do in `create_span`.
244- span_data->apply_config (*defaults_, config, clock_);
243+ span_data->apply_config (*config_manager_->get_span_defaults (), config,
244+ clock_);
245245 span_data->span_id = generator_->span_id ();
246246 span_data->trace_id = *trace_id;
247247 span_data->parent_id = *parent_id;
@@ -293,8 +293,9 @@ Expected<Span> Tracer::extract_span(const DictReader& reader,
293293 tracer_telemetry_->metrics ().tracer .trace_segments_created_continued .inc ();
294294 const auto segment = std::make_shared<TraceSegment>(
295295 logger_, collector_, tracer_telemetry_,
296- config_manager_->get_trace_sampler (), span_sampler_, defaults_,
297- runtime_id_, sampling_delegation_enabled_, delegate_sampling_decision,
296+ config_manager_->get_trace_sampler (), span_sampler_,
297+ config_manager_->get_span_defaults (), runtime_id_,
298+ sampling_delegation_enabled_, delegate_sampling_decision,
298299 injection_styles_, hostname_, std::move (origin), tags_header_max_size_,
299300 std::move (trace_tags), std::move (sampling_decision),
300301 std::move (additional_w3c_tracestate),
0 commit comments