package io.dropwizard.metrics.httpclient; import static io.dropwizard.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import io.dropwizard.metrics.MetricRegistry; public class InstrumentedHttpClients { private InstrumentedHttpClients() { super(); } public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) { return createDefault(metricRegistry, METHOD_ONLY); } public static CloseableHttpClient createDefault(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) { return custom(metricRegistry, metricNameStrategy).build(); } public static HttpClientBuilder custom(MetricRegistry metricRegistry) { return custom(metricRegistry, METHOD_ONLY); } public static HttpClientBuilder custom(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) { return HttpClientBuilder.create() .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy)) .setConnectionManager(new InstrumentedHttpClientConnectionManager(metricRegistry)); } }