diff --git a/dd-trace-api/build.gradle.kts b/dd-trace-api/build.gradle.kts index 4063701bf5a..9716588d34e 100644 --- a/dd-trace-api/build.gradle.kts +++ b/dd-trace-api/build.gradle.kts @@ -26,6 +26,10 @@ extra["excludedClassesCoverage"] = listOf( "datadog.trace.api.aiguard.AIGuard", "datadog.trace.api.aiguard.AIGuard.AIGuardAbortError", "datadog.trace.api.aiguard.AIGuard.AIGuardClientError", + "datadog.trace.api.aiguard.AIGuard.ContentPart", + "datadog.trace.api.aiguard.AIGuard.ContentPart.Type", + "datadog.trace.api.aiguard.AIGuard.Evaluation", + "datadog.trace.api.aiguard.AIGuard.Message", "datadog.trace.api.aiguard.AIGuard.Options", "datadog.trace.api.civisibility.CIVisibility", "datadog.trace.api.civisibility.DDTestModule", @@ -43,8 +47,10 @@ extra["excludedClassesCoverage"] = listOf( "datadog.trace.api.profiling.ProfilingContext", "datadog.trace.api.profiling.ProfilingContextAttribute.NoOp", "datadog.trace.api.llmobs.LLMObs", + "datadog.trace.api.llmobs.LLMObs.Document", "datadog.trace.api.llmobs.LLMObs.LLMMessage", "datadog.trace.api.llmobs.LLMObs.ToolCall", + "datadog.trace.api.llmobs.LLMObs.ToolResult", "datadog.trace.api.llmobs.LLMObsSpan", "datadog.trace.api.llmobs.noop.NoOpLLMObsSpan", "datadog.trace.api.llmobs.noop.NoOpLLMObsSpanFactory", @@ -63,6 +69,7 @@ extra["excludedClassesCoverage"] = listOf( "datadog.trace.payloadtags.PayloadTagsData", "datadog.trace.payloadtags.PayloadTagsData.PathAndValue", "datadog.trace.api.llmobs.LLMObsTags", + "datadog.trace.api.config.OtlpConfig.Compression", "datadog.trace.api.config.OtlpConfig.Protocol", "datadog.trace.api.config.OtlpConfig.Temporality", ) diff --git a/dd-trace-api/src/test/java/datadog/trace/api/ProtocolVersionTest.java b/dd-trace-api/src/test/java/datadog/trace/api/ProtocolVersionTest.java index 92d42691f37..18d14322388 100644 --- a/dd-trace-api/src/test/java/datadog/trace/api/ProtocolVersionTest.java +++ b/dd-trace-api/src/test/java/datadog/trace/api/ProtocolVersionTest.java @@ -3,15 +3,28 @@ import static datadog.trace.api.ProtocolVersion.V0_4; import static datadog.trace.api.ProtocolVersion.V0_5; import static datadog.trace.api.ProtocolVersion.V1_0; +import static datadog.trace.api.ProtocolVersion.fromConfigValue; +import static datadog.trace.api.ProtocolVersion.fromTraceEndpoint; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +@DisplayName("trace agent protocol versions") class ProtocolVersionTest { @Test + @DisplayName("expose configuration values") + void exposesConfigValues() { + assertEquals("0.4", V0_4.asConfigValue()); + assertEquals("0.5", V0_5.asConfigValue()); + assertEquals("1.0", V1_0.asConfigValue()); + } + + @Test + @DisplayName("expose primary endpoints and fallbacks") void exposesPrimaryEndpointAndFallbacks() { assertEquals("v0.4/traces", V0_4.endpoint()); assertEquals(singletonList("v0.3/traces"), V0_4.fallback()); @@ -24,9 +37,30 @@ void exposesPrimaryEndpointAndFallbacks() { } @Test + @DisplayName("preserve endpoint probe ordering") void preservesProbeOrdering() { assertEquals(asList("v0.4/traces", "v0.3/traces"), V0_4.endpointsToProbe()); assertEquals(asList("v0.5/traces", "v0.4/traces", "v0.3/traces"), V0_5.endpointsToProbe()); assertEquals(asList("v1.0/traces", "v0.4/traces", "v0.3/traces"), V1_0.endpointsToProbe()); } + + @Test + @DisplayName("map configuration values to protocol versions") + void mapsConfigValueToVersion() { + assertEquals(V0_4, fromConfigValue(null)); + assertEquals(V0_4, fromConfigValue("0.4")); + assertEquals(V0_5, fromConfigValue("0.5")); + assertEquals(V1_0, fromConfigValue("1.0")); + assertEquals(V0_4, fromConfigValue("unsupported")); + } + + @Test + @DisplayName("map trace endpoints to protocol versions") + void mapsTraceEndpointToVersion() { + assertEquals(V0_4, fromTraceEndpoint(null)); + assertEquals(V1_0, fromTraceEndpoint("http://localhost:8126/v1.0/traces")); + assertEquals(V0_5, fromTraceEndpoint("HTTP://LOCALHOST:8126/V0.5/TRACES")); + assertEquals(V0_4, fromTraceEndpoint("v0.4/traces")); + assertEquals(V0_4, fromTraceEndpoint("http://localhost:8126/unsupported")); + } }