Package org.apache.solr.util.stats
Class InstrumentedHttpRequestExecutor
- java.lang.Object
-
- org.apache.http.protocol.HttpRequestExecutor
-
- org.apache.solr.util.stats.InstrumentedHttpRequestExecutor
-
- All Implemented Interfaces:
AutoCloseable
,SolrMetricProducer
public class InstrumentedHttpRequestExecutor extends org.apache.http.protocol.HttpRequestExecutor implements SolrMetricProducer
Sub-class of HttpRequestExecutor which tracks metrics interesting to solr Inspired and partially copied from dropwizard httpclient library
-
-
Field Summary
Fields Modifier and Type Field Description static HttpClientMetricNameStrategy
HOST_AND_METHOD
static Map<String,HttpClientMetricNameStrategy>
KNOWN_METRIC_NAME_STRATEGIES
static HttpClientMetricNameStrategy
METHOD_ONLY
protected SolrMetricManager
metricManager
protected com.codahale.metrics.MetricRegistry
metricsRegistry
protected HttpClientMetricNameStrategy
nameStrategy
static HttpClientMetricNameStrategy
QUERYLESS_URL_AND_METHOD
protected String
registryName
protected String
scope
-
Constructor Summary
Constructors Constructor Description InstrumentedHttpRequestExecutor(int waitForContinue, HttpClientMetricNameStrategy nameStrategy)
InstrumentedHttpRequestExecutor(HttpClientMetricNameStrategy nameStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.http.HttpResponse
execute(org.apache.http.HttpRequest request, org.apache.http.HttpClientConnection conn, org.apache.http.protocol.HttpContext context)
void
initializeMetrics(SolrMetricManager manager, String registry, String tag, String scope)
Initializes metrics specific to this producer-
Methods inherited from class org.apache.http.protocol.HttpRequestExecutor
canResponseHaveBody, doReceiveResponse, doSendRequest, postProcess, preProcess
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close, getSolrMetricsContext, initializeMetrics
-
-
-
-
Field Detail
-
QUERYLESS_URL_AND_METHOD
public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD
-
METHOD_ONLY
public static final HttpClientMetricNameStrategy METHOD_ONLY
-
HOST_AND_METHOD
public static final HttpClientMetricNameStrategy HOST_AND_METHOD
-
KNOWN_METRIC_NAME_STRATEGIES
public static final Map<String,HttpClientMetricNameStrategy> KNOWN_METRIC_NAME_STRATEGIES
-
metricsRegistry
protected com.codahale.metrics.MetricRegistry metricsRegistry
-
metricManager
protected SolrMetricManager metricManager
-
registryName
protected String registryName
-
scope
protected String scope
-
nameStrategy
protected HttpClientMetricNameStrategy nameStrategy
-
-
Constructor Detail
-
InstrumentedHttpRequestExecutor
public InstrumentedHttpRequestExecutor(int waitForContinue, HttpClientMetricNameStrategy nameStrategy)
-
InstrumentedHttpRequestExecutor
public InstrumentedHttpRequestExecutor(HttpClientMetricNameStrategy nameStrategy)
-
-
Method Detail
-
execute
public org.apache.http.HttpResponse execute(org.apache.http.HttpRequest request, org.apache.http.HttpClientConnection conn, org.apache.http.protocol.HttpContext context) throws IOException, org.apache.http.HttpException
- Overrides:
execute
in classorg.apache.http.protocol.HttpRequestExecutor
- Throws:
IOException
org.apache.http.HttpException
-
initializeMetrics
public void initializeMetrics(SolrMetricManager manager, String registry, String tag, String scope)
Description copied from interface:SolrMetricProducer
Initializes metrics specific to this producer- Specified by:
initializeMetrics
in interfaceSolrMetricProducer
- Parameters:
manager
- an instance ofSolrMetricManager
registry
- registry name where metrics are registeredtag
- a symbolic tag that represents this instance of the producer, or a group of related instances that have the same life-cycle. This tag is used when managing life-cycle of some metrics.scope
- scope of the metrics (eg. handler name) to separate metrics of components with the same implementation but different scope.
-
-