Skip to content

Commit 23bb27c

Browse files
committed
overall improvements
- report remote trace sample rate as RULE instead of REMOTE_RULE for legacy reasons - update REMOTE_RULES and REMOTE_ADAPTIVE_RULE values to match the spec - report default sample rate for telemetry - add _dd.psr for new remote rules
1 parent be97f19 commit 23bb27c

4 files changed

Lines changed: 11 additions & 5 deletions

File tree

src/datadog/config_manager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ std::vector<ConfigMetadata> ConfigManager::update(const ConfigUpdate& conf) {
112112
ConfigMetadata::Origin::REMOTE_CONFIG);
113113

114114
auto rate = Rate::from(*conf.trace_sampling_rate);
115-
rules[catch_all] = TraceSamplerRate{*rate, SamplingMechanism::REMOTE_RULE};
115+
rules[catch_all] = TraceSamplerRate{*rate, SamplingMechanism::RULE};
116116

117117
metadata.emplace_back(std::move(trace_sampling_metadata));
118118
}
@@ -137,7 +137,7 @@ std::vector<ConfigMetadata> ConfigManager::update(const ConfigUpdate& conf) {
137137
metadata.emplace_back(std::move(trace_sampling_rules_metadata));
138138
}
139139

140-
rules.merge(rules_);
140+
rules.insert(rules_.cbegin(), rules_.cend());
141141
trace_sampler_->set_rules(rules);
142142

143143
if (!conf.tags) {

src/datadog/sampling_mechanism.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ enum class SamplingMechanism {
6161
// Reserved for future use.
6262
OTLP_RULE = 9,
6363
// Sampling rule configured by user via remote configuration.
64-
REMOTE_RULE = 10,
64+
REMOTE_RULE = 11,
6565
// Adaptive sampling rule automatically computed by Datadog backend and sent
6666
// via remote configuration.
67-
REMOTE_ADAPTIVE_RULE = 11,
67+
REMOTE_ADAPTIVE_RULE = 12,
6868
};
6969

7070
} // namespace tracing

src/datadog/trace_sampler_config.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,9 @@ Expected<FinalizedTraceSamplerConfig> finalize_config(
197197
result.metadata[ConfigName::TRACE_SAMPLING_RATE] = ConfigMetadata(
198198
ConfigName::TRACE_SAMPLING_RATE, to_string(*sample_rate, 1),
199199
ConfigMetadata::Origin::CODE);
200+
} else {
201+
result.metadata[ConfigName::TRACE_SAMPLING_RATE] = ConfigMetadata(
202+
ConfigName::TRACE_SAMPLING_RATE, "1.0", ConfigMetadata::Origin::CODE);
200203
}
201204

202205
// If `sample_rate` was specified, then it translates to a "catch-all" rule

src/datadog/trace_segment.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,10 @@ void TraceSegment::span_finished() {
230230
decision.mechanism == int(SamplingMechanism::DEFAULT)) {
231231
local_root.numeric_tags[tags::internal::agent_sample_rate] =
232232
*decision.configured_rate;
233-
} else if (decision.mechanism == int(SamplingMechanism::RULE)) {
233+
} else if (decision.mechanism == int(SamplingMechanism::RULE) ||
234+
decision.mechanism == int(SamplingMechanism::REMOTE_RULE) ||
235+
decision.mechanism ==
236+
int(SamplingMechanism::REMOTE_ADAPTIVE_RULE)) {
234237
local_root.numeric_tags[tags::internal::rule_sample_rate] =
235238
*decision.configured_rate;
236239
if (decision.limiter_effective_rate) {

0 commit comments

Comments
 (0)