Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Sep 19, 2025

This PR addresses the need to document HTTP client configurations for all instrumentations that use JavaagentHttpClientInstrumenters. Previously, these configurations were inconsistently documented across different HTTP client instrumentations, making it difficult for users to understand what configuration options were available.

Changes Made

Updated existing metadata.yaml files (12 instrumentations)

  • Added missing HTTP client configurations to instrumentations that already had metadata.yaml files but were missing the standardized HTTP client configuration options
  • Updated: akka-http-10.0, apache-httpasyncclient-4.1, apache-httpclient (2.0, 4.0, 5.0), async-http-client (1.9, 2.0), reactor-netty-1.0, spring-webflux-5.0

Created new metadata.yaml files (14 instrumentations)

  • Added complete metadata.yaml files for instrumentations that didn't have them
  • Created: netty-3.8, jetty-httpclient (9.2, 12.0), jodd-http-4.2, okhttp (2.2, 3.0), pekko-http-1.0, play-ws (1.0, 2.0, 2.1), vertx-http-client (3.0, 4.0, 5.0)

Fixed -common module structure

  • Removed metadata.yaml files from -common modules (play-ws-common, vertx-http-client-common) as these are shared code modules that should not have metadata files
  • Created metadata.yaml files for the actual instrumentation modules that use the common code instead

Standardized Configurations

All HTTP client instrumentations that use JavaagentHttpClientInstrumenters now consistently document these 6 configurations that are provided by DefaultHttpClientInstrumenterBuilder.configure():

  • otel.instrumentation.http.known-methods - Configures HTTP request methods recognition
  • otel.instrumentation.http.client.capture-request-headers - List of HTTP request headers to capture
  • otel.instrumentation.http.client.capture-response-headers - List of HTTP response headers to capture
  • otel.instrumentation.common.peer-service-mapping - Mapping from host names/IPs to peer services
  • otel.instrumentation.http.client.emit-experimental-telemetry - Enable experimental HTTP client telemetry
  • otel.instrumentation.http.client.experimental.redact-query-parameters - Redact sensitive URL parameters

Impact

This ensures that all 26 HTTP client instrumentations using JavaagentHttpClientInstrumenters have consistent and complete configuration documentation, making it easier for users to understand and configure HTTP client telemetry options across different HTTP client libraries.

Fixes #14517.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copy link
Contributor Author

Copilot AI commented Sep 19, 2025

@jaydeluca 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs.

I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review.

@Copilot Copilot AI changed the title [WIP] Document configurations for JavaagentHttpClientInstrumenters Document HTTP client configurations for all JavaagentHttpClientInstrumenters Sep 19, 2025
@Copilot Copilot AI requested a review from jaydeluca September 19, 2025 15:03
Copilot finished work on behalf of jaydeluca September 19, 2025 15:03
@@ -0,0 +1,32 @@
description: This instrumentation enables HTTP client spans and HTTP client metrics for Play WS HTTP client.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot any module that ends in -common should not have a metadata file. The tricky part is identifying when another instrumentation module uses an instrumenter from one of these -common modules, and then documenting the configurations for that other module instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed! I removed the metadata.yaml files from the -common modules (play-ws-common and vertx-http-client-common) and created metadata.yaml files for the actual instrumentation modules instead:

Play WS:

  • play-ws-1.0, play-ws-2.0, play-ws-2.1

Vertx HTTP Client:

  • vertx-http-client-3.0, vertx-http-client-4.0, vertx-http-client-5.0

All version-specific modules now have proper HTTP client configuration documentation. Commit: f9c8e40

Copilot finished work on behalf of jaydeluca September 23, 2025 18:39
@Copilot Copilot AI requested a review from jaydeluca September 23, 2025 18:39
@jaydeluca jaydeluca closed this Sep 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document configurations for JavaagentHttpClientInstrumenters
2 participants