Class OpenTelemetryApacheHttpClientObservationConvention

java.lang.Object
io.micrometer.core.instrument.binder.httpcomponents.hc5.OpenTelemetryApacheHttpClientObservationConvention
All Implemented Interfaces:
ApacheHttpClientObservationConvention, io.micrometer.observation.KeyValuesConvention, io.micrometer.observation.ObservationConvention<ApacheHttpClientContext>

public class OpenTelemetryApacheHttpClientObservationConvention extends Object implements ApacheHttpClientObservationConvention
Implementation of ApacheHttpClientObservationConvention based on the OpenTelemetry Semantic Conventions v1.36.0 for HTTP clients.
Since:
1.16.0
See Also:
  • Field Details

  • Constructor Details

    • OpenTelemetryApacheHttpClientObservationConvention

      protected OpenTelemetryApacheHttpClientObservationConvention()
      Create an OpenTelemetryApacheHttpClientObservationConvention instance.

      There is no need to instantiate this class multiple times, but it may be extended, hence protected visibility.

  • Method Details

    • getName

      public String getName()
      Specified by:
      getName in interface io.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
    • getContextualName

      public String getContextualName(ApacheHttpClientContext context)
      HTTP span names SHOULD be {method} {target} if there is a (low-cardinality) target available. If there is no (low-cardinality) {target} available, HTTP span names SHOULD be {method}.

      The {method} MUST be {http.request.method} if the method represents the original method known to the instrumentation. In other cases (when {http.request.method} is set to _OTHER), {method} MUST be HTTP.

      The target SHOULD be the {url.template} for HTTP Client spans if enabled and available.

      Specified by:
      getContextualName in interface io.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
      Parameters:
      context - context
      Returns:
      contextual name
      See Also:
    • getLowCardinalityKeyValues

      public io.micrometer.common.KeyValues getLowCardinalityKeyValues(ApacheHttpClientContext context)
      Specified by:
      getLowCardinalityKeyValues in interface io.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
    • getHighCardinalityKeyValues

      public io.micrometer.common.KeyValues getHighCardinalityKeyValues(ApacheHttpClientContext context)
      Specified by:
      getHighCardinalityKeyValues in interface io.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
    • maybeGetKnownMethod

      protected @Nullable String maybeGetKnownMethod(org.apache.hc.core5.http.HttpRequest request)
      Return known HTTP method name.
      Parameters:
      request - HTTP request
      Returns:
      known HTTP method name. null if unknown.
    • method

      protected io.micrometer.common.KeyValue method(ApacheHttpClientContext context)
      Extract method key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted method key value
    • serverAddress

      protected io.micrometer.common.KeyValue serverAddress(ApacheHttpClientContext context)
      Extract server address key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted server address key value
    • serverPort

      protected io.micrometer.common.KeyValue serverPort(ApacheHttpClientContext context)
      Extract server port key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted server port key value
    • exception

      protected io.micrometer.common.KeyValue exception(ApacheHttpClientContext context)
      Extract exception key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted exception key value
    • status

      protected io.micrometer.common.KeyValue status(ApacheHttpClientContext context)
      Extract status key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted status key value
    • outcome

      protected io.micrometer.common.KeyValue outcome(ApacheHttpClientContext context)
      Extract outcome key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted outcome key value
    • urlFull

      protected io.micrometer.common.KeyValue urlFull(ApacheHttpClientContext context)
      Extract url.full key value from context.
      Parameters:
      context - HTTP client context
      Returns:
      extracted url.full key value