Fix V0 HTTP client operation names to prevent duplicate endpoints in APM Endpoints view by jandro996 · Pull Request #10958 · DataDog/dd-trace-java

@jandro996 @claude

…APM Endpoints view

Common HTTP client libraries (Apache HttpClient, HttpURLConnection, etc.) were falling
through to the generic "http.request" default in ClientNamingV0.operationForComponent(),
causing the APM Endpoints view to show spurious duplicate endpoint rows — one for the
real servlet.request server span and one for each client span with the same URL path.

Each well-known HTTP client now has a distinct library-specific operation name consistent
with the existing pattern for OkHttp ("okhttp.request"), Play-WS ("play-ws.request"),
and Netty client ("netty.client.request"). The generic "http.request" fallback is kept
for truly unknown/custom HTTP clients.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mingV0 change

Tests for AWS SDK, Elasticsearch REST client, OpenSearch, and Mule 4 each include
child HTTP client spans within their trace assertions. These spans had their
operation name hardcoded as "http.request" because the underlying HTTP libraries
(Apache HttpClient and Grizzly async client) previously fell through to that default.

Now that these components have explicit V0 operation names, update the assertions
to match: apache-httpclient.request, apache-httpasyncclient.request, and
grizzly-http-async-client.request accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Spring Boot OpenLiberty smoke app uses RestTemplate backed by
HttpURLConnection, which now produces "http-url-connection.request"
instead of the generic "http.request" after the ClientNamingV0 fix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… (round 3)

Update Spring WebFlux bootTest, Spring Cloud Zuul, and AWS SNS tests to use
the new component-specific operation names introduced for V0 schema.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e (round 4)

TwilioClientV0Test.httpClientOperation() was using the generic ClientV0.operation()
which returned "http.request". Update to "apache-httpclient.request" directly since
Twilio uses the apache-httpclient component for its underlying HTTP requests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lients

Zuul uses Apache HttpClient for direct proxy forwards, but the backend
makes nested HTTP calls using HttpURLConnection. With the ClientNamingV0
change, these now produce different operation names, requiring per-trace
assertions instead of one uniform operation name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>