This documentation has an index for AI agents at /llms.txt. A Markdown version of this page is available at https://explorer.opentelemetry.io/java-agent/instrumentation/java-http-client.md.

Java HTTP Client

OpenTelemetry Java agent instrumentation

This instrumentation enables HTTP client spans and HTTP client metrics for requests made using the Java HTTP client.

  • Name: java-http-client
  • Scope: io.opentelemetry.java-http-client
  • Target versions: Java 11+
  • Library: https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/package-summary.html

Telemetry

When default

Metrics

MetricInstrumentTypeUnitDescription
http.client.request.durationhistogramHISTOGRAMsDuration of HTTP client requests.
MetricAttributes
http.client.request.durationhttp.request.method (STRING), http.response.status_code (LONG), network.protocol.version (STRING), server.address (STRING), server.port (LONG)

Spans

Span kindAttributes
CLIENTerror.type (STRING), http.request.method (STRING), http.request.method_original (STRING), http.response.status_code (LONG), network.protocol.version (STRING), peer.service (STRING), server.address (STRING), server.port (LONG), url.full (STRING)

When otel.semconv-stability.opt-in=service.peer

Metrics

MetricInstrumentTypeUnitDescription
http.client.request.durationhistogramHISTOGRAMsDuration of HTTP client requests.
MetricAttributes
http.client.request.durationhttp.request.method (STRING), http.response.status_code (LONG), network.protocol.version (STRING), server.address (STRING), server.port (LONG)

Spans

Span kindAttributes
CLIENTerror.type (STRING), http.request.method (STRING), http.request.method_original (STRING), http.response.status_code (LONG), network.protocol.version (STRING), server.address (STRING), server.port (LONG), service.peer.name (STRING), url.full (STRING)

Configuration

OptionTypeDefaultDescription
otel.instrumentation.common.peer-service-mappingmapUsed to specify a mapping from host names or IP addresses to peer services.
otel.instrumentation.http.client.capture-request-headerslistList of HTTP request headers to capture in HTTP client telemetry.
otel.instrumentation.http.client.capture-response-headerslistList of HTTP response headers to capture in HTTP client telemetry.
otel.instrumentation.http.client.emit-experimental-telemetrybooleanfalseEnable the capture of experimental HTTP client telemetry. Adds the http.request.body.size and http.response.body.size attributes to spans, and records http.client.request.body.size and http.client.response.body.size metrics.
otel.instrumentation.http.known-methodslistCONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACEConfigures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as _OTHER.
java.common.http.client.url_template_ruleslistRules for deriving low-cardinality URL templates (routes) from HTTP client request URLs. Only applied when experimental HTTP client telemetry is enabled.
otel.instrumentation.sanitization.url.experimental.sensitive-query-parameterslistAWSAccessKeyId,Signature,X-Amz-Signature,X-Amz-Credential,X-Amz-Security-Token,sig,X-Goog-SignatureList of URL query parameter names whose values are redacted in URL attributes. See https://opentelemetry.io/docs/specs/semconv/http/http-spans.

Data

  • JSON (latest): /data/javaagent/instrumentations/java-http-client/latest.json
  • JSON (pinned): /data/javaagent/instrumentations/java-http-client/java-http-client-a1f519d8cd55.json
  • Explore: /java-agent/instrumentation/java-http-client