Package net.shibboleth.idp.metrics.impl
Class HTTPReporter
- java.lang.Object
-
- com.codahale.metrics.ScheduledReporter
-
- net.shibboleth.idp.metrics.impl.HTTPReporter
-
- All Implemented Interfaces:
com.codahale.metrics.Reporter,Closeable,AutoCloseable,Component,InitializableComponent
public class HTTPReporter extends com.codahale.metrics.ScheduledReporter implements InitializableComponent
A metrics reporter that runs at scheduled times and posts a JSON feed of metrics to a designated endpoint.
-
-
Field Summary
Fields Modifier and Type Field Description private StringcollectorURLURL to the collection point.private StringdateTimeFormatFormatting string forDateFormatfields.static StringDEFAULT_DT_FORMATDefault date/time format string.private TimeUnitdurationUnitDuration unit.private org.apache.http.client.HttpClienthttpClientHTTP Client used to post the data.private HttpClientSecurityParametershttpClientSecurityParametersHTTP client security parameters.private booleanisInitializedWhether this component has been initialized.private com.fasterxml.jackson.databind.ObjectMapperjsonMapperJSON object mapper to produce output.private org.slf4j.LoggerlogClass logger.private com.codahale.metrics.MetricFiltermetricFilterFilter to apply.private com.codahale.metrics.MetricRegistrymetricRegistryRegistry of metrics.private TimeUnitrateUnitRate unit.
-
Constructor Summary
Constructors Constructor Description HTTPReporter(com.codahale.metrics.MetricRegistry registry, String name, com.codahale.metrics.MetricFilter filter)Constructor.HTTPReporter(com.codahale.metrics.MetricRegistry registry, String name, com.codahale.metrics.MetricFilter filter, TimeUnit rUnit, TimeUnit dUnit)Constructor.HTTPReporter(com.codahale.metrics.MetricRegistry registry, String name, com.codahale.metrics.MetricFilter filter, TimeUnit rUnit, TimeUnit dUnit, ScheduledExecutorService executor)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private org.apache.http.client.protocol.HttpClientContextbuildHttpContext(org.apache.http.client.methods.HttpUriRequest request)Build theHttpClientContextinstance to be used by the HttpClient.voidinitialize()booleanisInitialized()voidreport()voidreport(SortedMap<String,com.codahale.metrics.Gauge> gauges, SortedMap<String,com.codahale.metrics.Counter> counters, SortedMap<String,com.codahale.metrics.Histogram> histograms, SortedMap<String,com.codahale.metrics.Meter> meters, SortedMap<String,com.codahale.metrics.Timer> timers)voidsetCollectorURL(String url)Set the collection point to supply the data to.voidsetDateTimeFormat(String format)Set theDateFormatformatting string to apply when writingDateFormat-valued fields.voidsetHttpClient(org.apache.http.client.HttpClient client)Set theHttpClientto use.voidsetHttpClientSecurityParameters(HttpClientSecurityParameters params)Set the optional client security parameters.voidstop()
-
-
-
Field Detail
-
DEFAULT_DT_FORMAT
@Nonnull @NotEmpty public static final String DEFAULT_DT_FORMAT
Default date/time format string.- See Also:
- Constant Field Values
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
metricRegistry
@Nonnull private final com.codahale.metrics.MetricRegistry metricRegistry
Registry of metrics.
-
metricFilter
@Nonnull private final com.codahale.metrics.MetricFilter metricFilter
Filter to apply.
-
rateUnit
@Nonnull private final TimeUnit rateUnit
Rate unit.
-
durationUnit
@Nonnull private final TimeUnit durationUnit
Duration unit.
-
httpClient
@NonnullAfterInit private org.apache.http.client.HttpClient httpClient
HTTP Client used to post the data.
-
collectorURL
@NonnullAfterInit @NotEmpty private String collectorURL
URL to the collection point.
-
httpClientSecurityParameters
@Nullable private HttpClientSecurityParameters httpClientSecurityParameters
HTTP client security parameters.
-
jsonMapper
@NonnullAfterInit private com.fasterxml.jackson.databind.ObjectMapper jsonMapper
JSON object mapper to produce output.
-
dateTimeFormat
@Nullable private String dateTimeFormat
Formatting string forDateFormatfields.
-
isInitialized
private boolean isInitialized
Whether this component has been initialized.
-
-
Constructor Detail
-
HTTPReporter
public HTTPReporter(@Nonnull @ParameterName(name="registry") com.codahale.metrics.MetricRegistry registry, @Nonnull @NotEmpty @ParameterName(name="name") String name, @Nullable @ParameterName(name="filter") com.codahale.metrics.MetricFilter filter)
Constructor.- Parameters:
registry- the registry of metrics to reportname- the reporter namefilter- filter to apply
-
HTTPReporter
public HTTPReporter(@Nonnull @ParameterName(name="registry") com.codahale.metrics.MetricRegistry registry, @Nonnull @NotEmpty @ParameterName(name="name") String name, @Nullable @ParameterName(name="filter") com.codahale.metrics.MetricFilter filter, @Nonnull @ParameterName(name="rUnit") TimeUnit rUnit, @Nonnull @ParameterName(name="dUnit") TimeUnit dUnit)
Constructor.- Parameters:
registry- the registry of metrics to reportname- the reporter namefilter- filter to applyrUnit- unit to apply to rate informationdUnit- unit to apply to duration information
-
HTTPReporter
public HTTPReporter(@Nonnull @ParameterName(name="registry") com.codahale.metrics.MetricRegistry registry, @Nonnull @NotEmpty @ParameterName(name="name") String name, @Nullable @ParameterName(name="filter") com.codahale.metrics.MetricFilter filter, @Nonnull @ParameterName(name="rUnit") TimeUnit rUnit, @Nonnull @ParameterName(name="dUnit") TimeUnit dUnit, @Nonnull @ParameterName(name="executor") ScheduledExecutorService executor)
Constructor.- Parameters:
registry- the registry of metrics to reportname- the reporter namefilter- filter to applyrUnit- unit to apply to rate informationdUnit- unit to apply to duration informationexecutor- task scheduler
-
-
Method Detail
-
setHttpClient
public void setHttpClient(@Nonnull org.apache.http.client.HttpClient client)Set theHttpClientto use.- Parameters:
client- client to use
-
setCollectorURL
public void setCollectorURL(@Nonnull @NotEmpty String url)
Set the collection point to supply the data to.- Parameters:
url- URL to post data to
-
setHttpClientSecurityParameters
public void setHttpClientSecurityParameters(@Nullable HttpClientSecurityParameters params)Set the optional client security parameters.- Parameters:
params- the new client security parameters
-
setDateTimeFormat
public void setDateTimeFormat(@Nullable @NotEmpty String format)
Set theDateFormatformatting string to apply when writingDateFormat-valued fields.- Parameters:
format- formatting string
-
isInitialized
public boolean isInitialized()
- Specified by:
isInitializedin interfaceInitializableComponent
-
initialize
public void initialize() throws ComponentInitializationException- Specified by:
initializein interfaceInitializableComponent- Throws:
ComponentInitializationException
-
stop
public void stop()
- Overrides:
stopin classcom.codahale.metrics.ScheduledReporter
-
report
public void report()
- Overrides:
reportin classcom.codahale.metrics.ScheduledReporter
-
report
public void report(SortedMap<String,com.codahale.metrics.Gauge> gauges, SortedMap<String,com.codahale.metrics.Counter> counters, SortedMap<String,com.codahale.metrics.Histogram> histograms, SortedMap<String,com.codahale.metrics.Meter> meters, SortedMap<String,com.codahale.metrics.Timer> timers)
- Specified by:
reportin classcom.codahale.metrics.ScheduledReporter
-
buildHttpContext
@Nonnull private org.apache.http.client.protocol.HttpClientContext buildHttpContext(@Nonnull org.apache.http.client.methods.HttpUriRequest request)Build theHttpClientContextinstance to be used by the HttpClient.- Parameters:
request- the HTTP client request- Returns:
- the client context instance
-
-