public abstract class AbstractAggregatingMetricsHandler<P extends AbstractAggregatedMetricsParameters<?>> extends AbstractRestHandler<RestfulGateway,EmptyRequestBody,AggregatedMetricsResponseBody,P>
If the query parameters do not contain a "get" parameter the list of all metrics is returned.
[ { "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" } ]
The "agg" query parameter is used to define which aggregates should be calculated. Available
aggregations are "sum", "max", "min" and "avg". If the parameter is not specified, all
aggregations will be returned. /metrics?get=X,Y&agg=min,max
The handler will then return
a list of objects containing the aggregations for the requested metrics. [ { "id" : "X",
"min", "1", "max", "2" }, { "id" : "Y", "min", "4", "max", "10"}]
log, MAPPER
leaderRetriever, logger, responseHeaders, timeout
Modifier | Constructor and Description |
---|---|
protected |
AbstractAggregatingMetricsHandler(GatewayRetriever<? extends RestfulGateway> leaderRetriever,
Time timeout,
Map<String,String> responseHeaders,
AbstractAggregatedMetricsHeaders<P> messageHeaders,
Executor executor,
MetricFetcher fetcher) |
Modifier and Type | Method and Description |
---|---|
protected CompletableFuture<AggregatedMetricsResponseBody> |
handleRequest(HandlerRequest<EmptyRequestBody> 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, getTimeout
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
protected AbstractAggregatingMetricsHandler(GatewayRetriever<? extends RestfulGateway> leaderRetriever, Time timeout, Map<String,String> responseHeaders, AbstractAggregatedMetricsHeaders<P> messageHeaders, Executor executor, MetricFetcher fetcher)
protected CompletableFuture<AggregatedMetricsResponseBody> handleRequest(@Nonnull HandlerRequest<EmptyRequestBody> 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,AggregatedMetricsResponseBody,P extends AbstractAggregatedMetricsParameters<?>>
request
- request that should be handledgateway
- leader gatewayRestHandlerException
- if the handling failedCopyright © 2014–2024 The Apache Software Foundation. All rights reserved.