Skip to content

Commit d5d2097

Browse files
mccullsdevflow.devflow-routing-intake
andauthored
Add telemetry attributes to OTLP payloads (#11125)
Add telemetry attributes to OTLP payloads Co-authored-by: devflow.devflow-routing-intake <devflow.devflow-routing-intake@kubernetes.us1.ddbuild.io>
1 parent 5671de8 commit d5d2097

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

dd-trace-core/src/main/java/datadog/trace/core/otlp/common/OtlpResourceProto.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package datadog.trace.core.otlp.common;
22

3+
import static datadog.communication.ddagent.TracerVersion.TRACER_VERSION;
34
import static datadog.trace.bootstrap.otlp.common.OtlpAttributeVisitor.STRING;
45
import static datadog.trace.core.otlp.common.OtlpCommonProto.LEN_WIRE_TYPE;
56
import static datadog.trace.core.otlp.common.OtlpCommonProto.recordMessage;
@@ -26,7 +27,10 @@ private OtlpResourceProto() {}
2627
"version",
2728
"service.name",
2829
"deployment.environment.name",
29-
"service.version"));
30+
"service.version",
31+
"telemetry.sdk.name",
32+
"telemetry.sdk.version",
33+
"telemetry.sdk.language"));
3034

3135
public static final byte[] RESOURCE_MESSAGE = buildResourceMessage(Config.get());
3236

@@ -44,6 +48,9 @@ static byte[] buildResourceMessage(Config config) {
4448
if (!version.isEmpty()) {
4549
writeResourceAttribute(buf, "service.version", version);
4650
}
51+
writeResourceAttribute(buf, "telemetry.sdk.name", "datadog");
52+
writeResourceAttribute(buf, "telemetry.sdk.version", TRACER_VERSION);
53+
writeResourceAttribute(buf, "telemetry.sdk.language", "java");
4754

4855
config
4956
.getGlobalTags()

dd-trace-core/src/test/java/datadog/trace/core/otlp/common/OtlpResourceProtoTest.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package datadog.trace.core.otlp.common;
22

3+
import static datadog.communication.ddagent.TracerVersion.TRACER_VERSION;
34
import static datadog.trace.api.config.GeneralConfig.ENV;
45
import static datadog.trace.api.config.GeneralConfig.SERVICE_NAME;
56
import static datadog.trace.api.config.GeneralConfig.TAGS;
@@ -52,6 +53,9 @@ private static Map<String, String> attrs(String... keyValues) {
5253
for (int i = 0; i < keyValues.length; i += 2) {
5354
map.put(keyValues[i], keyValues[i + 1]);
5455
}
56+
map.put("telemetry.sdk.name", "datadog");
57+
map.put("telemetry.sdk.version", TRACER_VERSION);
58+
map.put("telemetry.sdk.language", "java");
5559
return map;
5660
}
5761

@@ -95,7 +99,7 @@ static Stream<Arguments> resourceMessageCases() {
9599
"service.name", "my-service",
96100
"region", "us-east",
97101
"team", "platform")),
98-
// all config values set together
102+
// all config values set together; telemetry.sdk.* keys in tags must be ignored
99103
Arguments.of(
100104
"service, env, version, and tags all set",
101105
props(
@@ -118,7 +122,10 @@ static Stream<Arguments> resourceMessageCases() {
118122
+ "service.version:ignored-version,"
119123
+ "SERVICE.NAME:ignored-service,"
120124
+ "DEPLOYMENT.ENVIRONMENT.NAME:ignored-env,"
121-
+ "SERVICE.VERSION:ignored-version"),
125+
+ "SERVICE.VERSION:ignored-version,"
126+
+ "telemetry.sdk.name:ignored-sdk,"
127+
+ "telemetry.sdk.version:ignored-version,"
128+
+ "telemetry.sdk.language:ignored-language"),
122129
attrs(
123130
"service.name", "my-service",
124131
"deployment.environment.name", "staging",

0 commit comments

Comments
 (0)