M
- Type of the concrete MessageParameters
public abstract class AbstractMetricsHandler<M extends MessageParameters> extends AbstractRestHandler<RestfulGateway,EmptyRequestBody,MetricCollectionResponseBody,M>
If the query parameters do not contain a "get" parameter the list of all metrics is returned.
{"available": [ { "name" : "X", "id" : "X" } ] }
If the query parameters do contain a "get" parameter, a comma-separated list of metric names
is expected as a value. /metrics?get=X,Y
The handler will then return a list containing
the values of the requested metrics. [ { "id" : "X", "value" : "S" }, { "id" : "Y",
"value" : "T" } ]
log, MAPPER
leaderRetriever, logger, responseHeaders, timeout
Constructor and Description |
---|
AbstractMetricsHandler(GatewayRetriever<? extends RestfulGateway> leaderRetriever,
Time timeout,
Map<String,String> headers,
MessageHeaders<EmptyRequestBody,MetricCollectionResponseBody,M> messageHeaders,
MetricFetcher metricFetcher) |
Modifier and Type | Method and Description |
---|---|
protected abstract MetricStore.ComponentMetricStore |
getComponentMetricStore(HandlerRequest<EmptyRequestBody,M> request,
MetricStore metricStore)
Returns the
MetricStore.ComponentMetricStore that should be queried for metrics. |
protected CompletableFuture<MetricCollectionResponseBody> |
handleRequest(HandlerRequest<EmptyRequestBody,M> request,
RestfulGateway gateway)
This method is called for every incoming request and returns a
CompletableFuture
containing a the response. |
getMessageHeaders, respondToRequest
closeAsync, closeHandlerAsync, respondAsLeader
channelRead0
acceptInboundMessage, channelRead
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close
public AbstractMetricsHandler(GatewayRetriever<? extends RestfulGateway> leaderRetriever, Time timeout, Map<String,String> headers, MessageHeaders<EmptyRequestBody,MetricCollectionResponseBody,M> messageHeaders, MetricFetcher metricFetcher)
protected final CompletableFuture<MetricCollectionResponseBody> handleRequest(@Nonnull HandlerRequest<EmptyRequestBody,M> request, @Nonnull RestfulGateway gateway) throws RestHandlerException
AbstractRestHandler
CompletableFuture
containing a the response.
Implementations may decide whether to throw RestHandlerException
s or fail the
returned CompletableFuture
with a RestHandlerException
.
Failing the future with another exception type or throwing unchecked exceptions is
regarded as an implementation error as it does not allow us to provide a meaningful HTTP
status code. In this case a HttpResponseStatus.INTERNAL_SERVER_ERROR
will be
returned.
handleRequest
in class AbstractRestHandler<RestfulGateway,EmptyRequestBody,MetricCollectionResponseBody,M extends MessageParameters>
request
- request that should be handledgateway
- leader gatewayRestHandlerException
- if the handling failed@Nullable protected abstract MetricStore.ComponentMetricStore getComponentMetricStore(HandlerRequest<EmptyRequestBody,M> request, MetricStore metricStore)
MetricStore.ComponentMetricStore
that should be queried for metrics.Copyright © 2014–2021 The Apache Software Foundation. All rights reserved.