@@ -279,6 +279,16 @@ public async Task SubmitsOtlpTraces(string packageVersion, string datadogTracesE
279279
280280 var applicationStartTimeUnixNano = DateTimeOffset . UtcNow . ToUnixTimeNanoseconds ( ) ;
281281 using var agent = EnvironmentHelper . GetMockAgent ( ) ;
282+ // When DD_AGENT_HOST=test-agent is set above, it also redirects the APM trace agent
283+ // URL via the DD_TRACE_AGENT_HOSTNAME alias (the primary key wins). That points APM
284+ // traces at test-agent:<mock-agent-port>, which does not exist, so AgentWriter
285+ // retries fill the tracer's shutdown window and can starve the DirectLogSubmission
286+ // final flush. Pin the APM URL back to the in-process MockAgent.
287+ if ( useAgentHostBackup && agent is MockTracerAgent . TcpUdpAgent tcpAgent )
288+ {
289+ SetEnvironmentVariable ( "DD_TRACE_AGENT_URL" , $ "http://127.0.0.1:{ tcpAgent . Port } ") ;
290+ }
291+
282292 using ( await RunSampleAndWaitForExit ( agent , packageVersion : packageVersion ?? "1.13.1" ) )
283293 {
284294 using var httpClient = new System . Net . Http . HttpClient ( ) ;
@@ -539,6 +549,13 @@ public async Task SubmitsOtlpMetrics(string packageVersion, string datadogMetric
539549 SetEnvironmentVariable ( "OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE" , runtimeMajor >= 9 ? "delta" : "cumulative" ) ;
540550
541551 using var agent = EnvironmentHelper . GetMockAgent ( ) ;
552+ // See comment in SubmitsOtlpTraces. DD_AGENT_HOST=test-agent also redirects the APM
553+ // trace agent URL; pin it back to the in-process MockAgent.
554+ if ( useAgentHostBackup && agent is MockTracerAgent . TcpUdpAgent tcpAgent )
555+ {
556+ SetEnvironmentVariable ( "DD_TRACE_AGENT_URL" , $ "http://127.0.0.1:{ tcpAgent . Port } ") ;
557+ }
558+
542559 using ( await RunSampleAndWaitForExit ( agent , packageVersion : packageVersion ?? "1.13.1" ) )
543560 {
544561 var metricsData = await WaitForTestAgentData ( $ "http://{ testAgentHost } :4318/test/session/metrics") ;
@@ -626,6 +643,14 @@ public async Task SubmitsOtlpLogs(string packageVersion, string datadogLogsEnabl
626643 var startTimeNanoseconds = DateTimeOffset . UtcNow . ToUnixTimeNanoseconds ( ) ;
627644
628645 using var agent = EnvironmentHelper . GetMockAgent ( ) ;
646+ // See comment in SubmitsOtlpTraces. DD_AGENT_HOST=test-agent also redirects the APM
647+ // trace agent URL; pin it back to the in-process MockAgent so AgentWriter retries
648+ // don't starve the DirectLogSubmission final flush during shutdown.
649+ if ( useAgentHostBackup && agent is MockTracerAgent . TcpUdpAgent tcpAgent )
650+ {
651+ SetEnvironmentVariable ( "DD_TRACE_AGENT_URL" , $ "http://127.0.0.1:{ tcpAgent . Port } ") ;
652+ }
653+
629654 using ( await RunSampleAndWaitForExit ( agent , packageVersion : packageVersion ?? "1.13.1" ) )
630655 {
631656 var endTimeNanoseconds = DateTimeOffset . UtcNow . ToUnixTimeNanoseconds ( ) ;
0 commit comments