Skip to content

Commit 7e00b6a

Browse files
committed
answer to comment, merge instead of passing by ref
1 parent 28c4f6d commit 7e00b6a

5 files changed

Lines changed: 19 additions & 27 deletions

File tree

include/datadog/span_sampler_config.h

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ struct SpanSamplerConfig {
3737

3838
class FinalizedSpanSamplerConfig {
3939
friend Expected<FinalizedSpanSamplerConfig> finalize_config(
40-
const SpanSamplerConfig&, Logger&,
41-
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>*
42-
telemetry_configs);
40+
const SpanSamplerConfig&, Logger&);
4341
friend class FinalizedTracerConfig;
4442

4543
FinalizedSpanSamplerConfig() = default;
@@ -52,12 +50,11 @@ class FinalizedSpanSamplerConfig {
5250

5351
std::vector<Rule> rules;
5452
std::unordered_map<ConfigName, ConfigMetadata> metadata;
53+
std::unordered_map<ConfigName, std::vector<ConfigMetadata>> telemetry_configs;
5554
};
5655

57-
Expected<FinalizedSpanSamplerConfig> finalize_config(
58-
const SpanSamplerConfig&, Logger&,
59-
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>*
60-
telemetry_configs);
56+
Expected<FinalizedSpanSamplerConfig> finalize_config(const SpanSamplerConfig&,
57+
Logger&);
6158

6259
std::string to_string(const FinalizedSpanSamplerConfig::Rule&);
6360

include/datadog/trace_sampler_config.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ struct TraceSamplerConfig {
4242

4343
class FinalizedTraceSamplerConfig {
4444
friend Expected<FinalizedTraceSamplerConfig> finalize_config(
45-
const TraceSamplerConfig& config,
46-
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>*
47-
telemetry_configs);
45+
const TraceSamplerConfig& config);
4846
friend class FinalizedTracerConfig;
4947

5048
FinalizedTraceSamplerConfig() = default;
@@ -53,16 +51,15 @@ class FinalizedTraceSamplerConfig {
5351
double max_per_second;
5452
std::vector<TraceSamplerRule> rules;
5553
std::unordered_map<ConfigName, ConfigMetadata> metadata;
54+
std::unordered_map<ConfigName, std::vector<ConfigMetadata>> telemetry_configs;
5655

5756
public:
5857
/// Returns the trace sampler configuration when APM Tracing is disabled.
5958
static FinalizedTraceSamplerConfig apm_tracing_disabled_config();
6059
};
6160

6261
Expected<FinalizedTraceSamplerConfig> finalize_config(
63-
const TraceSamplerConfig& config,
64-
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>*
65-
telemetry_configs);
62+
const TraceSamplerConfig& config);
6663

6764
} // namespace tracing
6865
} // namespace datadog

src/datadog/span_sampler_config.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,7 @@ Expected<SpanSamplerConfig> load_span_sampler_env_config(Logger &logger) {
221221
SpanSamplerConfig::Rule::Rule(const SpanMatcher &base) : SpanMatcher(base) {}
222222

223223
Expected<FinalizedSpanSamplerConfig> finalize_config(
224-
const SpanSamplerConfig &user_config, Logger &logger,
225-
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>
226-
*telemetry_configs) {
224+
const SpanSamplerConfig &user_config, Logger &logger) {
227225
Expected<SpanSamplerConfig> env_config = load_span_sampler_env_config(logger);
228226
if (auto error = env_config.if_error()) {
229227
return *error;
@@ -242,7 +240,7 @@ Expected<FinalizedSpanSamplerConfig> finalize_config(
242240
}
243241

244242
std::vector<SpanSamplerConfig::Rule> rules = resolve_and_record_config(
245-
env_rules, user_rules, telemetry_configs, &result.metadata,
243+
env_rules, user_rules, &result.telemetry_configs, &result.metadata,
246244
ConfigName::SPAN_SAMPLING_RULES, std::vector<SpanSamplerConfig::Rule>{},
247245
[](const std::vector<SpanSamplerConfig::Rule> &r) {
248246
return to_string(r);

src/datadog/trace_sampler_config.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,7 @@ std::string to_string(const std::vector<TraceSamplerConfig::Rule> &rules) {
150150
TraceSamplerConfig::Rule::Rule(const SpanMatcher &base) : SpanMatcher(base) {}
151151

152152
Expected<FinalizedTraceSamplerConfig> finalize_config(
153-
const TraceSamplerConfig &config,
154-
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>
155-
*telemetry_configs) {
153+
const TraceSamplerConfig &config) {
156154
Expected<TraceSamplerConfig> env_config = load_trace_sampler_env_config();
157155
if (auto error = env_config.if_error()) {
158156
return *error;
@@ -194,7 +192,7 @@ Expected<FinalizedTraceSamplerConfig> finalize_config(
194192
}
195193

196194
Optional<double> sample_rate = resolve_and_record_config(
197-
env_config->sample_rate, config.sample_rate, telemetry_configs,
195+
env_config->sample_rate, config.sample_rate, &result.telemetry_configs,
198196
&result.metadata, ConfigName::TRACE_SAMPLING_RATE, 1.0,
199197
[](const double &d) { return to_string(d, 1); });
200198

@@ -216,8 +214,9 @@ Expected<FinalizedTraceSamplerConfig> finalize_config(
216214
}
217215

218216
double max_per_second = resolve_and_record_config(
219-
env_config->max_per_second, config.max_per_second, telemetry_configs,
220-
&result.metadata, ConfigName::TRACE_SAMPLING_LIMIT, 100.0,
217+
env_config->max_per_second, config.max_per_second,
218+
&result.telemetry_configs, &result.metadata,
219+
ConfigName::TRACE_SAMPLING_LIMIT, 100.0,
221220
[](const double &d) { return std::to_string(d); });
222221

223222
const auto allowed_types = {FP_NORMAL, FP_SUBNORMAL};

src/datadog/tracer_config.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,17 +421,18 @@ Expected<FinalizedTracerConfig> finalize_config(const TracerConfig &user_config,
421421
return std::move(*error);
422422
}
423423

424-
if (auto trace_sampler_config =
425-
finalize_config(user_config.trace_sampler, &all_sources_configs)) {
424+
if (auto trace_sampler_config = finalize_config(user_config.trace_sampler)) {
426425
final_config.metadata.merge(trace_sampler_config->metadata);
426+
all_sources_configs.merge(trace_sampler_config->telemetry_configs);
427427
final_config.trace_sampler = std::move(*trace_sampler_config);
428428
} else {
429429
return std::move(trace_sampler_config.error());
430430
}
431431

432-
if (auto span_sampler_config = finalize_config(
433-
user_config.span_sampler, *logger, &all_sources_configs)) {
432+
if (auto span_sampler_config =
433+
finalize_config(user_config.span_sampler, *logger)) {
434434
final_config.metadata.merge(span_sampler_config->metadata);
435+
all_sources_configs.merge(span_sampler_config->telemetry_configs);
435436
final_config.span_sampler = std::move(*span_sampler_config);
436437
} else {
437438
return std::move(span_sampler_config.error());

0 commit comments

Comments
 (0)