Skip to content

Commit 620e90c

Browse files
committed
Use snake_case for capture telemetry configuration
1 parent f709476 commit 620e90c

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ public ConfigSetting(String key, Object value, ConfigOrigin origin) {
8989
this.origin = origin;
9090
}
9191

92+
public String normalizedKey() {
93+
return key.toLowerCase().replace(".", "_");
94+
}
95+
9296
@Override
9397
public boolean equals(Object o) {
9498
if (this == o) return true;

telemetry/src/main/java/datadog/telemetry/TelemetryRequestBody.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public void beginConfiguration() throws IOException {
216216

217217
public void writeConfiguration(ConfigSetting configSetting) throws IOException {
218218
bodyWriter.beginObject();
219-
bodyWriter.name("name").value(configSetting.key);
219+
bodyWriter.name("name").value(configSetting.normalizedKey());
220220
bodyWriter.setSerializeNulls(true);
221221
bodyWriter.name("value").jsonValue(configSetting.value);
222222
bodyWriter.setSerializeNulls(false);

telemetry/src/test/groovy/datadog/telemetry/TelemetryRequestBodySpecification.groovy

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,24 @@ class TelemetryRequestBodySpecification extends Specification {
7777
'{"name":"null","value":null,"origin":"default"}]'
7878
}
7979

80+
def 'use snake_case for setting keys'() {
81+
setup:
82+
TelemetryRequestBody req = new TelemetryRequestBody(RequestType.APP_CLIENT_CONFIGURATION_CHANGE)
83+
84+
when:
85+
req.beginRequest(false)
86+
// exclude request header to simplify assertion
87+
drainToString(req)
88+
89+
then:
90+
req.beginConfiguration()
91+
req.writeConfiguration(ConfigSetting.of("this.is.a.key", "value", ConfigOrigin.REMOTE))
92+
req.endConfiguration()
93+
94+
then:
95+
drainToString(req) == ',"configuration":[{"name":"this_is_a_key","value":"value","origin":"remote_config"}]'
96+
}
97+
8098
def 'add debug flag'() {
8199
setup:
82100
TelemetryRequestBody req = new TelemetryRequestBody(RequestType.APP_STARTED)

0 commit comments

Comments
 (0)