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 Summary
FieldsModifier and TypeFieldDescriptionstatic final OpenTelemetryApacheHttpClientObservationConventionSingleton instance of this convention.Fields inherited from interface io.micrometer.core.instrument.binder.httpcomponents.hc5.ApacheHttpClientObservationConvention
URI_TEMPLATE_ATTRIBUTEFields inherited from interface io.micrometer.observation.ObservationConvention
EMPTY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreate anOpenTelemetryApacheHttpClientObservationConventioninstance. -
Method Summary
Modifier and TypeMethodDescriptionprotected io.micrometer.common.KeyValueexception(ApacheHttpClientContext context) Extractexceptionkey value from context.getContextualName(ApacheHttpClientContext context) HTTP span names SHOULD be{method} {target}if there is a (low-cardinality)targetavailable.io.micrometer.common.KeyValuesio.micrometer.common.KeyValuesgetName()protected @Nullable StringmaybeGetKnownMethod(org.apache.hc.core5.http.HttpRequest request) Return known HTTP method name.protected io.micrometer.common.KeyValuemethod(ApacheHttpClientContext context) Extractmethodkey value from context.protected io.micrometer.common.KeyValueoutcome(ApacheHttpClientContext context) Extractoutcomekey value from context.protected io.micrometer.common.KeyValueserverAddress(ApacheHttpClientContext context) Extract server address key value from context.protected io.micrometer.common.KeyValueserverPort(ApacheHttpClientContext context) Extract server port key value from context.protected io.micrometer.common.KeyValuestatus(ApacheHttpClientContext context) Extract status key value from context.protected io.micrometer.common.KeyValueurlFull(ApacheHttpClientContext context) Extracturl.fullkey value from context.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micrometer.core.instrument.binder.httpcomponents.hc5.ApacheHttpClientObservationConvention
supportsContext
-
Field Details
-
INSTANCE
Singleton instance of this convention.
-
-
Constructor Details
-
OpenTelemetryApacheHttpClientObservationConvention
protected OpenTelemetryApacheHttpClientObservationConvention()Create anOpenTelemetryApacheHttpClientObservationConventioninstance.There is no need to instantiate this class multiple times, but it may be extended, hence protected visibility.
-
-
Method Details
-
getName
- Specified by:
getNamein interfaceio.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
-
getContextualName
HTTP span names SHOULD be{method} {target}if there is a (low-cardinality)targetavailable. 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
targetSHOULD be the{url.template}for HTTP Client spans if enabled and available.- Specified by:
getContextualNamein interfaceio.micrometer.observation.ObservationConvention<ApacheHttpClientContext>- Parameters:
context- context- Returns:
- contextual name
- See Also:
-
getLowCardinalityKeyValues
- Specified by:
getLowCardinalityKeyValuesin interfaceio.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
-
getHighCardinalityKeyValues
- Specified by:
getHighCardinalityKeyValuesin interfaceio.micrometer.observation.ObservationConvention<ApacheHttpClientContext>
-
maybeGetKnownMethod
Return known HTTP method name.- Parameters:
request- HTTP request- Returns:
- known HTTP method name.
nullif unknown.
-
method
Extractmethodkey value from context.- Parameters:
context- HTTP client context- Returns:
- extracted
methodkey value
-
serverAddress
Extract server address key value from context.- Parameters:
context- HTTP client context- Returns:
- extracted server address key value
-
serverPort
Extract server port key value from context.- Parameters:
context- HTTP client context- Returns:
- extracted server port key value
-
exception
Extractexceptionkey value from context.- Parameters:
context- HTTP client context- Returns:
- extracted
exceptionkey value
-
status
Extract status key value from context.- Parameters:
context- HTTP client context- Returns:
- extracted status key value
-
outcome
Extractoutcomekey value from context.- Parameters:
context- HTTP client context- Returns:
- extracted
outcomekey value
-
urlFull
Extracturl.fullkey value from context.- Parameters:
context- HTTP client context- Returns:
- extracted
url.fullkey value
-