@F_SO_K response was for http.server.requests, here adjusted for the actual question of http.client.requests
@Component
public class ExtendedHttpClientMetrics extends DefaultClientRequestObservationConvention {
private static final Logger log = LoggerFactory.getLogger(ExtendedHttpClientMetrics.class);
@Override
public KeyValues getLowCardinalityKeyValues(final ClientRequestObservationContext context) {
var before = super.getLowCardinalityKeyValues(context);
log.trace("Before {}", before);
return before.and(custom(context));
}
protected KeyValues custom(final ClientRequestObservationContext context) {
var uri = context.getCarrier().getURI();
log.trace("Custom client request observation context: uri {}", uri);
return KeyValues.of("uri", uri.getPath());
}
}