Skip to content

Commit 006b730

Browse files
committed
Support new addConfigurationByOrigin API on TelemetryService, and update tests accordingly
1 parent 076e9e1 commit 006b730

File tree

4 files changed

+27
-4
lines changed

4 files changed

+27
-4
lines changed

internal-api/src/main/java/datadog/trace/api/ConfigSetting.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public String toString() {
128128
+ stringValue()
129129
+ ", origin="
130130
+ origin
131-
+ ", seq_id="
131+
+ ", seqId="
132132
+ seqId
133133
+ '}';
134134
}

telemetry/src/main/java/datadog/telemetry/TelemetryRunnable.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import datadog.telemetry.metric.MetricPeriodicAction;
44
import datadog.trace.api.Config;
55
import datadog.trace.api.ConfigCollector;
6+
import datadog.trace.api.ConfigOrigin;
67
import datadog.trace.api.ConfigSetting;
78
import datadog.trace.api.time.SystemTimeSource;
89
import datadog.trace.api.time.TimeSource;
@@ -141,9 +142,9 @@ private void mainLoopIteration() throws InterruptedException {
141142
}
142143

143144
private void collectConfigChanges() {
144-
Map<String, ConfigSetting> collectedConfig = ConfigCollector.get().collect();
145+
Map<String, Map<ConfigOrigin, ConfigSetting>> collectedConfig = ConfigCollector.get().collect();
145146
if (!collectedConfig.isEmpty()) {
146-
telemetryService.addConfiguration(collectedConfig);
147+
telemetryService.addConfigurationByOrigin(collectedConfig);
147148
}
148149
}
149150

telemetry/src/main/java/datadog/telemetry/TelemetryService.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import datadog.telemetry.api.Metric;
88
import datadog.telemetry.api.RequestType;
99
import datadog.telemetry.dependency.Dependency;
10+
import datadog.trace.api.ConfigOrigin;
1011
import datadog.trace.api.ConfigSetting;
1112
import datadog.trace.api.telemetry.Endpoint;
1213
import datadog.trace.api.telemetry.ProductChange;
@@ -94,6 +95,27 @@ public boolean addConfiguration(Map<String, ConfigSetting> configuration) {
9495
return true;
9596
}
9697

98+
/**
99+
* Adds all configuration settings from the provided map, grouped by their origin.
100+
*
101+
* @param configuration a map of configuration keys to a map of origins and their corresponding
102+
* settings
103+
* @return {@code true} if all settings were successfully added, {@code false} if the queue is
104+
* full
105+
*/
106+
public boolean addConfigurationByOrigin(
107+
Map<String, Map<ConfigOrigin, ConfigSetting>> configuration) {
108+
for (Map<ConfigOrigin, ConfigSetting> settings : configuration.values()) {
109+
for (ConfigSetting cs : settings.values()) {
110+
extendedHeartbeatData.pushConfigSetting(cs);
111+
if (!this.configurations.offer(cs)) {
112+
return false;
113+
}
114+
}
115+
}
116+
return true;
117+
}
118+
97119
public boolean addDependency(Dependency dependency) {
98120
extendedHeartbeatData.pushDependency(dependency);
99121
return this.dependencies.offer(dependency);

telemetry/src/test/groovy/datadog/telemetry/TestTelemetryRouter.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ class TestTelemetryRouter extends TelemetryRouter {
237237
def expected = configuration == null ? null : []
238238
if (configuration != null) {
239239
for (ConfigSetting cs : configuration) {
240-
expected.add([name: cs.normalizedKey(), value: cs.stringValue(), origin: cs.origin.value])
240+
expected.add([name: cs.normalizedKey(), value: cs.stringValue(), origin: cs.origin.value, seqId: cs.seqId])
241241
}
242242
}
243243
assert this.payload['configuration'] == expected

0 commit comments

Comments
 (0)