[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16275477#comment-16275477 ] ASF GitHub Bot commented on FLINK-7694: --- Github user bowenli86 closed the pull request at: https://github.com/apache/flink/pull/4757 > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: Distributed Coordination, REST, Webfrontend >Reporter: Bowen Li >Assignee: Gary Yao > Labels: flip-6 > Fix For: 1.5.0 > > > Port > {{org.apache.flink.runtime.rest.handler.legacy.metrics.JobMetricsHandler}} to > new handler that works with {{RestServerEndpoint}}. Add new handler to > {{DispatcherRestEndpoint}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16270763#comment-16270763 ] ASF GitHub Bot commented on FLINK-7694: --- Github user asfgit closed the pull request at: https://github.com/apache/flink/pull/5084 > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: Distributed Coordination, REST, Webfrontend >Reporter: Bowen Li >Assignee: Gary Yao > Labels: flip6 > Fix For: 1.5.0 > > > Port > {{org.apache.flink.runtime.rest.handler.legacy.metrics.JobMetricsHandler}} to > new handler that works with {{RestServerEndpoint}}. Add new handler to > {{DispatcherRestEndpoint}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16266819#comment-16266819 ] ASF GitHub Bot commented on FLINK-7694: --- GitHub user GJL opened a pull request: https://github.com/apache/flink/pull/5084 [FLINK-7694][flip6] Migrate JobMetricsHandler to new RestServerEndpoint ## What is the purpose of the change *FLIP-6 efforts: Migrating HTTP handlers* ## Brief change log - Migrate logic from `org.apache.flink.runtime.rest.handler.legacy.metrics.JobMetricsHandler to` new handler. - Add new handler to `DispatcherRestEndpoint`. ## Verifying this change - *Added unit tests for all new classes and modified existing classes except for DispatcherRestEndpoint.* - *Manually deployed a job locally and verified with `curl` that Job metrics can be queried in FLIP-6 standalone mode.* ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (yes / **no**) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (yes / **no**) - The serializers: (yes / **no** / don't know) - The runtime per-record code paths (performance sensitive): (yes / **no** / don't know) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / **no** / don't know) - The S3 file system connector: (yes / **no** / don't know) ## Documentation - Does this pull request introduce a new feature? (yes / **no**) - If yes, how is the feature documented? (**not applicable** / docs / JavaDocs / not documented) CC: @tillrohrmann You can merge this pull request into a Git repository by running: $ git pull https://github.com/GJL/flink FLINK-7694 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/5084.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #5084 commit 7a3bdc5a8c2c53a9b4219d1fab7faf5490d1ef92 Author: gyaoDate: 2017-11-27T13:34:03Z [FLINK-7694][flip6] Migrate JobMetricsHandler to new RestServerEndpoint Migrate logic in org.apache.flink.runtime.rest.handler.legacy.metrics.JobMetrisHandler to new handler, and add new handler to DispatcherRestEndpoint. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: Distributed Coordination, REST, Webfrontend >Reporter: Bowen Li >Assignee: Gary Yao > Labels: flip6 > Fix For: 1.5.0 > > > Port > {{org.apache.flink.runtime.rest.handler.legacy.metrics.JobMetricsHandler}} to > new handler that works with {{RestServerEndpoint}}. Add new handler to > {{DispatcherRestEndpoint}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16264709#comment-16264709 ] ASF GitHub Bot commented on FLINK-7694: --- Github user bowenli86 commented on the issue: https://github.com/apache/flink/pull/4757 Hi @GJL , you can take over this PR > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16264502#comment-16264502 ] ASF GitHub Bot commented on FLINK-7694: --- Github user GJL commented on the issue: https://github.com/apache/flink/pull/4757 @bowenli86 I am about to finish my work on [FLINK-7718](https://issues.apache.org/jira/browse/FLINK-7718), which is quite similar to your ticket. Unfortunately I missed that you are also migrating an implementation of `AbstractMetricsHandler`. My PR (#5055) is ready to merge so I suggest that we try to rebase your changes on top of mine as soon as it is in the master. If you don't have time to do that, I can take it over. What do you think? > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236251#comment-16236251 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148609899 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/legacy/metrics/JobMetricsHandler.java --- @@ -32,8 +46,11 @@ * The handler will then return a list containing the values of the requested metrics. * {@code [ { "id" : "X", "value" : "S" }, { "id" : "Y", "value" : "T" } ] } */ -public class JobMetricsHandler extends AbstractMetricsHandler { +public class JobMetricsHandler extends AbstractMetricsHandler --- End diff -- Why aren't we simply implementing a new handler? I think that we don't reuse any of `AbstractMetricsHandler` functionality and, thus, there is no need to use it as a base class. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236247#comment-16236247 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148606039 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/metrics/MetricMessageParameters.java --- @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.runtime.rest.messages.metrics; + +import org.apache.flink.runtime.rest.messages.JobIDPathParameter; +import org.apache.flink.runtime.rest.messages.MessageParameters; +import org.apache.flink.runtime.rest.messages.MessagePathParameter; +import org.apache.flink.runtime.rest.messages.MessageQueryParameter; + +import java.util.Collection; +import java.util.Collections; + +/** + * Parameters for getting metrics. + */ +public class MetricMessageParameters extends MessageParameters { --- End diff -- Let's extend from `JobMessageParameters` > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236250#comment-16236250 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148610350 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/legacy/metrics/MetricStore.java --- @@ -120,6 +121,16 @@ public synchronized ComponentMetricStore getJobMetricStore(String jobID) { } /** +* Returns the {@link ComponentMetricStore} for the given job ID. +* +* @param jobID job ID +* @return ComponentMetricStore for the given ID, or null if no store for the given argument exists +*/ + public synchronized ComponentMetricStore getJobMetricStore(JobID jobID) { + return jobID == null ? null : ComponentMetricStore.unmodifiable(jobs.get(jobID.toString())); --- End diff -- `jobID` should not be nullable. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236252#comment-16236252 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148606599 --- Diff: flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/legacy/metrics/JobMetricsHandlerTest.java --- @@ -65,15 +65,28 @@ public void getMapFor() throws Exception { assertEquals("2", metrics.get("abc.metric3")); assertEquals("3", metrics.get("abc.metric4")); + assertEquals( + "[" + + "{\"id\":\"abc.metric4\"}," + + "{\"id\":\"abc.metric3\"}" + + "]", + handler.getAvailableMetricsList(pathParams)); + assertEquals("", handler.getMetricsValues(pathParams, "")); + assertEquals( + "[" + + "{\"id\":\"abc.metric3\",\"value\":\"2\"}," + + "{\"id\":\"abc.metric4\",\"value\":\"3\"}" + + "]", + handler.getMetricsValues(pathParams, "abc.metric3,abc.metric4")); } @Test public void getMapForNull() { MetricFetcher fetcher = new MetricFetcher( - mock(GatewayRetriever.class), - mock(MetricQueryServiceRetriever.class), - Executors.directExecutor(), - TestingUtils.TIMEOUT()); + mock(GatewayRetriever.class), + mock(MetricQueryServiceRetriever.class), + Executors.directExecutor(), + TestingUtils.TIMEOUT()); --- End diff -- Please revert > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236246#comment-16236246 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148606465 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/metrics/MetricsOverview.java --- @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.runtime.rest.messages.metrics; + +import org.apache.flink.runtime.rest.messages.ResponseBody; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * Response of metrics handlers, represented as a list of {@link MetricEntry}. + */ +public class MetricsOverview extends ArrayList implements ResponseBody { --- End diff -- Let's not directly extend from `ArrayList` but instead use composition. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236249#comment-16236249 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148606524 --- Diff: flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/legacy/metrics/JobMetricsHandlerTest.java --- @@ -50,10 +50,10 @@ public void testGetPaths() { @Test public void getMapFor() throws Exception { MetricFetcher fetcher = new MetricFetcher( - mock(GatewayRetriever.class), - mock(MetricQueryServiceRetriever.class), - Executors.directExecutor(), - TestingUtils.TIMEOUT()); + mock(GatewayRetriever.class), + mock(MetricQueryServiceRetriever.class), + Executors.directExecutor(), + TestingUtils.TIMEOUT()); --- End diff -- Please revert > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236248#comment-16236248 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148604013 --- Diff: flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java --- @@ -304,22 +304,21 @@ public WebRuntimeMonitor( get(router, new JobAccumulatorsHandler(executionGraphCache, scheduledExecutor)); get(router, new TaskManagersHandler(scheduledExecutor, DEFAULT_REQUEST_TIMEOUT, metricFetcher)); - get(router, - new TaskManagerLogHandler( - retriever, - scheduledExecutor, - localRestAddress, - timeout, - TaskManagerLogHandler.FileMode.LOG, - config)); - get(router, - new TaskManagerLogHandler( - retriever, - scheduledExecutor, - localRestAddress, - timeout, - TaskManagerLogHandler.FileMode.STDOUT, - config)); + get(router, new TaskManagerLogHandler( + retriever, + scheduledExecutor, + localRestAddress, + timeout, + TaskManagerLogHandler.FileMode.LOG, + config)); + get(router, new TaskManagerLogHandler( + retriever, + scheduledExecutor, + localRestAddress, + timeout, + TaskManagerLogHandler.FileMode.STDOUT, + config)); + get(router, new TaskManagerMetricsHandler(scheduledExecutor, metricFetcher)); --- End diff -- why are you adding things to the old `WebRuntimeMonitor`? > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236254#comment-16236254 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148606332 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/metrics/MetricsHeaders.java --- @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.runtime.rest.messages.metrics; + +import org.apache.flink.runtime.rest.HttpMethodWrapper; +import org.apache.flink.runtime.rest.messages.EmptyRequestBody; +import org.apache.flink.runtime.rest.messages.MessageHeaders; + +import org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpResponseStatus; + +/** + * Message header for metrics handler. + */ +public final class MetricsHeaders implements MessageHeaders{ + + private static final MetricsHeaders INSTANCE = new MetricsHeaders(); + + public static final String PARAMETER_JOB_ID = "jobid"; --- End diff -- where is this field used? > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236253#comment-16236253 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148609556 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/legacy/metrics/JobMetricsHandler.java --- @@ -48,8 +65,43 @@ public JobMetricsHandler(Executor executor, MetricFetcher fetcher) { @Override protected MapgetMapFor(Map pathParams, MetricStore metrics) { MetricStore.ComponentMetricStore job = metrics.getJobMetricStore(pathParams.get(PARAMETER_JOB_ID)); - return job != null - ? job.metrics - : null; + return job != null ? job.metrics : null; + } + + @Override + public CompletableFuture handleRequest(HandlerRequest request, DispatcherGateway gateway) { + return CompletableFuture.supplyAsync( + () -> { + fetcher.update(); + JobID jobID = request.getPathParameter(JobIDPathParameter.class); + List requestedMetrics = request.getQueryParameter(MetricNameParameter.class); + return getMetricsOverview(jobID, requestedMetrics); + }, + executor); + } + + protected MetricsOverview getMetricsOverview(JobID jobID, List requestedMetrics) { + Map metricsMap = getMetricsMapByJobId(jobID, fetcher.getMetricStore()); + if (metricsMap == null) { + return new MetricsOverview(); + } + + if (requestedMetrics == null || requestedMetrics.isEmpty()) { + return new MetricsOverview( + metricsMap.entrySet().stream() + .map(e -> new MetricEntry(e.getKey(), e.getValue())) + .collect(Collectors.toList())); + } else { + return new MetricsOverview( + requestedMetrics.stream() + .filter(e -> metricsMap.get(e) != null) + .map(e -> new MetricEntry(e, metricsMap.get(e))) + .collect(Collectors.toList())); --- End diff -- I think by not using Java streams we can avoid to do for every `e in requestedMetrics` two `HashMap` lookups and instead do it with a single lookup. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16236245#comment-16236245 ] ASF GitHub Bot commented on FLINK-7694: --- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/4757#discussion_r148604078 --- Diff: flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java --- @@ -304,22 +304,21 @@ public WebRuntimeMonitor( get(router, new JobAccumulatorsHandler(executionGraphCache, scheduledExecutor)); get(router, new TaskManagersHandler(scheduledExecutor, DEFAULT_REQUEST_TIMEOUT, metricFetcher)); - get(router, - new TaskManagerLogHandler( - retriever, - scheduledExecutor, - localRestAddress, - timeout, - TaskManagerLogHandler.FileMode.LOG, - config)); - get(router, - new TaskManagerLogHandler( - retriever, - scheduledExecutor, - localRestAddress, - timeout, - TaskManagerLogHandler.FileMode.STDOUT, - config)); + get(router, new TaskManagerLogHandler( + retriever, + scheduledExecutor, + localRestAddress, + timeout, + TaskManagerLogHandler.FileMode.LOG, + config)); + get(router, new TaskManagerLogHandler( + retriever, + scheduledExecutor, + localRestAddress, + timeout, + TaskManagerLogHandler.FileMode.STDOUT, + config)); --- End diff -- Please revert formatting changes. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li >Priority: Major > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16226444#comment-16226444 ] ASF GitHub Bot commented on FLINK-7694: --- Github user bowenli86 commented on the issue: https://github.com/apache/flink/pull/4757 Once this PR is merged, I'll migrate other metrics handlers and abstract the common code away. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.5.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16185498#comment-16185498 ] Till Rohrmann commented on FLINK-7694: -- Yes, this will make sure that the web gui will also understand the response from the new {{JobMetricsOverviewHandler}}. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.4.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16185464#comment-16185464 ] Bowen Li commented on FLINK-7694: - Does it mean that I actually only need to ensure the json serialization of {{JobMetricsOverview}} matches the String returned by {{AbstractMetricsHandler#handleJsonNodeRequest()}}? > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.4.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16182236#comment-16182236 ] Till Rohrmann commented on FLINK-7694: -- [~phoenixjiangnan], the steps look good to me. The {{JobMetricsOverview}} will be consumed by the web gui, however in JSON format. Therefore it is important that the JSON format of {{JobMetricsOverview}} is equivalent to what we currently generate in the {{JobMetricsHandler}}. > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.4.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (FLINK-7694) Port JobMetricsHandler to new REST handler
[ https://issues.apache.org/jira/browse/FLINK-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16181953#comment-16181953 ] Bowen Li commented on FLINK-7694: - [~till.rohrmann] Hi Till, I have done some research on how to accomplish this migration. To make sure I'm on the right path, I want to discuss with you my rough understanding and ask some questions about the code architecture. Here're the steps I think I need to do: 1. add class {code:java} public class JobIDPathParameter extends MessagePathParameter {code} 2. add class {code:java} public class JobIDMessageParameters extends MessageParameters { private final JobIDPathParameter jobIDPathParameter; ... } {code} 3. add class {code:java} public class JobMetricsOverview implements ResponseBody { public static final String FIELD_NAME_METRICS = "metrics"; @JsonProperty(FIELD_NAME_METRICS) private final Mapmetrics; ... } {code} 4. change {{JobMetricsHandler}} 's signature to {code:java} public class JobMetricsHandler extends AbstractMetricsHandler implements LegacyRestHandler {code} Do the above steps make sense? What I haven't figured out are: where is {{JobMetricsOverview}} (the ResponseBody) consumed? Is there an example of integration test? > Port JobMetricsHandler to new REST handler > -- > > Key: FLINK-7694 > URL: https://issues.apache.org/jira/browse/FLINK-7694 > Project: Flink > Issue Type: Sub-task > Components: REST, Webfrontend >Reporter: Bowen Li >Assignee: Bowen Li > Fix For: 1.4.0 > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)