Class AbstractMetricsHandler<M extends MessageParameters>
- java.lang.Object
-
- org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerAdapter
-
- org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter
-
- org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler<RoutedRequest>
-
- org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler<T>
-
- org.apache.flink.runtime.rest.handler.AbstractHandler<T,R,M>
-
- org.apache.flink.runtime.rest.handler.AbstractRestHandler<RestfulGateway,EmptyRequestBody,MetricCollectionResponseBody,M>
-
- org.apache.flink.runtime.rest.handler.job.metrics.AbstractMetricsHandler<M>
-
- Type Parameters:
M
- Type of the concreteMessageParameters
- All Implemented Interfaces:
AutoCloseable
,org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandler
,org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandler
,AutoCloseableAsync
- Direct Known Subclasses:
JobManagerMetricsHandler
,JobManagerOperatorMetricsHandler
,JobMetricsHandler
,JobVertexMetricsHandler
,SubtaskMetricsHandler
,TaskManagerMetricsHandler
public abstract class AbstractMetricsHandler<M extends MessageParameters> extends AbstractRestHandler<RestfulGateway,EmptyRequestBody,MetricCollectionResponseBody,M>
Request handler that returns for a given task a list of all available metrics or the values for a set of metrics.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" } ]
-
-
Field Summary
-
Fields inherited from class org.apache.flink.runtime.rest.handler.AbstractHandler
log, MAPPER
-
Fields inherited from class org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler
leaderRetriever, logger, responseHeaders, timeout
-
-
Constructor Summary
Constructors Constructor Description AbstractMetricsHandler(GatewayRetriever<? extends RestfulGateway> leaderRetriever, Duration timeout, Map<String,String> headers, MessageHeaders<EmptyRequestBody,MetricCollectionResponseBody,M> messageHeaders, MetricFetcher metricFetcher)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract MetricStore.ComponentMetricStore
getComponentMetricStore(HandlerRequest<EmptyRequestBody> request, MetricStore metricStore)
Returns theMetricStore.ComponentMetricStore
that should be queried for metrics.protected CompletableFuture<MetricCollectionResponseBody>
handleRequest(HandlerRequest<EmptyRequestBody> request, RestfulGateway gateway)
This method is called for every incoming request and returns aCompletableFuture
containing a the response.-
Methods inherited from class org.apache.flink.runtime.rest.handler.AbstractRestHandler
getMessageHeaders, respondToRequest
-
Methods inherited from class org.apache.flink.runtime.rest.handler.AbstractHandler
closeAsync, closeHandlerAsync, respondAsLeader
-
Methods inherited from class org.apache.flink.runtime.rest.handler.LeaderRetrievalHandler
channelRead0, getTimeout
-
Methods inherited from class org.apache.flink.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelRead
-
Methods inherited from class org.apache.flink.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
-
Methods inherited from class org.apache.flink.shaded.netty4.io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.util.AutoCloseableAsync
close
-
-
-
-
Constructor Detail
-
AbstractMetricsHandler
public AbstractMetricsHandler(GatewayRetriever<? extends RestfulGateway> leaderRetriever, Duration timeout, Map<String,String> headers, MessageHeaders<EmptyRequestBody,MetricCollectionResponseBody,M> messageHeaders, MetricFetcher metricFetcher)
-
-
Method Detail
-
handleRequest
protected final CompletableFuture<MetricCollectionResponseBody> handleRequest(@Nonnull HandlerRequest<EmptyRequestBody> request, @Nonnull RestfulGateway gateway) throws RestHandlerException
Description copied from class:AbstractRestHandler
This method is called for every incoming request and returns aCompletableFuture
containing a the response.Implementations may decide whether to throw
RestHandlerException
s or fail the returnedCompletableFuture
with aRestHandlerException
.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.- Specified by:
handleRequest
in classAbstractRestHandler<RestfulGateway,EmptyRequestBody,MetricCollectionResponseBody,M extends MessageParameters>
- Parameters:
request
- request that should be handledgateway
- leader gateway- Returns:
- future containing a handler response
- Throws:
RestHandlerException
- if the handling failed
-
getComponentMetricStore
@Nullable protected abstract MetricStore.ComponentMetricStore getComponentMetricStore(HandlerRequest<EmptyRequestBody> request, MetricStore metricStore)
Returns theMetricStore.ComponentMetricStore
that should be queried for metrics.
-
-