Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
Myasuka merged PR #24041: URL: https://github.com/apache/flink/pull/24041 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
yuchen-ecnu commented on PR #24041: URL: https://github.com/apache/flink/pull/24041#issuecomment-1897790800 @flinkbot run azure -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
yuchen-ecnu commented on PR #24041: URL: https://github.com/apache/flink/pull/24041#issuecomment-1895891972 Hi @Myasuka , I have added two more tests for `TaskManagerProfilingHandler` and `TaskManagerProfilingListHandler`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
yuchen-ecnu commented on PR #24041: URL: https://github.com/apache/flink/pull/24041#issuecomment-1893540501 Hi @Myasuka , I have reverted the changes of the deprecated function `requestTaskManagerFileUploadByName`. But in the `TaskManagerProfilingFileHandler`, the `Time timeout` was used by the base class `LeaderRetrievalHandler`. And it was used by almost all handlers, so I think maybe we can replace that in a separate PR in the future. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
Myasuka commented on code in PR #24041: URL: https://github.com/apache/flink/pull/24041#discussion_r1452465323 ## flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/taskmanager/TaskManagerProfilingFileHandler.java: ## @@ -0,0 +1,82 @@ +/* + * 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.handler.taskmanager; + +import org.apache.flink.api.common.time.Time; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.runtime.blob.TransientBlobKey; +import org.apache.flink.runtime.blob.TransientBlobService; +import org.apache.flink.runtime.clusterframework.types.ResourceID; +import org.apache.flink.runtime.resourcemanager.ResourceManagerGateway; +import org.apache.flink.runtime.rest.handler.HandlerRequest; +import org.apache.flink.runtime.rest.messages.EmptyRequestBody; +import org.apache.flink.runtime.rest.messages.ProfilingFileNamePathParameter; +import org.apache.flink.runtime.rest.messages.UntypedResponseMessageHeaders; +import org.apache.flink.runtime.rest.messages.taskmanager.TaskManagerProfilingFileMessageParameters; +import org.apache.flink.runtime.taskexecutor.FileType; +import org.apache.flink.runtime.taskexecutor.TaskExecutor; +import org.apache.flink.runtime.webmonitor.RestfulGateway; +import org.apache.flink.runtime.webmonitor.retriever.GatewayRetriever; + +import javax.annotation.Nonnull; + +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +/** Rest handler which serves the profiling result file of the {@link TaskExecutor}. */ +public class TaskManagerProfilingFileHandler Review Comment: It seems you forget to change this class. ## flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerGateway.java: ## @@ -225,16 +226,38 @@ CompletableFuture requestTaskManagerFileUploadByType( /** * Request the file upload from the given {@link TaskExecutor} to the cluster's {@link - * BlobServer}. The corresponding {@link TransientBlobKey} is returned. + * BlobServer}. The corresponding {@link TransientBlobKey} is returned. To support different + * type file upload with name, using {@link + * ResourceManager#requestTaskManagerFileUploadByNameAndType} as instead. * * @param taskManagerId identifying the {@link TaskExecutor} to upload the specified file * @param fileName name of the file to upload * @param timeout for the asynchronous operation * @return Future which is completed with the {@link TransientBlobKey} after uploading the file * to the {@link BlobServer}. + * @deprecated use {@link #requestTaskManagerFileUploadByNameAndType(ResourceID, String, + * FileType, Duration)} as instead. */ +@Deprecated CompletableFuture requestTaskManagerFileUploadByName( -ResourceID taskManagerId, String fileName, @RpcTimeout Time timeout); +ResourceID taskManagerId, String fileName, @RpcTimeout Duration timeout); Review Comment: We do not need to change the class from `Time` to `Duration` for a deprecated interface. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
yuchen-ecnu commented on PR #24041: URL: https://github.com/apache/flink/pull/24041#issuecomment-1892255488 Hi @Myasuka , I have replaced `Time` with `Duraion` in the updated code. Please have a look if there are any other problems. Thanks. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
Myasuka commented on code in PR #24041: URL: https://github.com/apache/flink/pull/24041#discussion_r1451675133 ## flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerGateway.java: ## @@ -225,17 +225,34 @@ CompletableFuture requestTaskManagerFileUploadByType( /** * Request the file upload from the given {@link TaskExecutor} to the cluster's {@link - * BlobServer}. The corresponding {@link TransientBlobKey} is returned. + * BlobServer}. The corresponding {@link TransientBlobKey} is returned. To support different + * type file upload with name, using {@link + * ResourceManager#requestTaskManagerFileUploadByNameAndType} as instead. * * @param taskManagerId identifying the {@link TaskExecutor} to upload the specified file * @param fileName name of the file to upload * @param timeout for the asynchronous operation * @return Future which is completed with the {@link TransientBlobKey} after uploading the file * to the {@link BlobServer}. */ +@Deprecated CompletableFuture requestTaskManagerFileUploadByName( ResourceID taskManagerId, String fileName, @RpcTimeout Time timeout); +/** + * Request the file upload from the given {@link TaskExecutor} to the cluster's {@link + * BlobServer}. The corresponding {@link TransientBlobKey} is returned. + * + * @param taskManagerId identifying the {@link TaskExecutor} to upload the specified file + * @param fileName name of the file to upload + * @param fileType type of the file to upload + * @param timeout for the asynchronous operation + * @return Future which is completed with the {@link TransientBlobKey} after uploading the file + * to the {@link BlobServer}. + */ +CompletableFuture requestTaskManagerFileUploadByNameAndType( +ResourceID taskManagerId, String fileName, FileType fileType, @RpcTimeout Time timeout); Review Comment: Same here, I prefer to use `Duration` instead of `Time` here, just as [FLINK-14819](https://issues.apache.org/jira/browse/FLINK-14819) did. ## flink-runtime-web/web-dashboard/src/app/pages/task-manager/profiler/task-manager-profiler.component.html: ## @@ -0,0 +1,91 @@ + + + + + + +Profiling Duration + + + + + + + +Create Profiling Instance + + + + + requestThreadDump( */ CompletableFuture requestTaskExecutorThreadInfoGateway( ResourceID taskManagerId, @RpcTimeout Time timeout); + +/** + * Request profiling list from the given {@link TaskExecutor}. + * + * @param taskManagerId identifying the {@link TaskExecutor} to get profiling list from + * @param timeout for the asynchronous operation + * @return Future which is completed with the historical profiling list + */ +CompletableFuture> requestTaskManagerProfilingList( +ResourceID taskManagerId, @RpcTimeout Time timeout); + +/** + * Requests the profiling instance from the given {@link TaskExecutor}. + * + * @param taskManagerId taskManagerId identifying the {@link TaskExecutor} to get the profiling + * from + * @param duration profiling duration + * @param mode profiling mode {@link ProfilingMode} + * @param timeout timeout of the asynchronous operation + * @return Future containing the created profiling information + */ +CompletableFuture requestProfiling( +ResourceID taskManagerId, +int duration, +ProfilingInfo.ProfilingMode mode, +@RpcTimeout Time timeout); Review Comment: Same suggestion here. ## flink-runtime/src/main/java/org/apache/flink/runtime/taskexecutor/TaskExecutorGateway.java: ## @@ -257,6 +257,18 @@ CompletableFuture requestFileUploadByType( CompletableFuture requestFileUploadByName( String fileName, @RpcTimeout Time timeout); +/** + * Requests the file upload of the specified name and file type to the cluster's {@link + * BlobServer}. + * + * @param fileName to upload + * @param fileType to upload + * @param timeout for the asynchronous operation + * @return Future which is completed with the {@link TransientBlobKey} of the uploaded file. + */ +CompletableFuture requestFileUploadByNameAndType( +String fileName, FileType fileType, @RpcTimeout Time timeout); Review Comment: For newly added interface, I prefer to use `Duration` instead of `Time`, just as FLINK-14819 did. ## flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerGateway.java: ## @@ -282,4 +284,30 @@ CompletableFuture requestThreadDump( */ CompletableFuture requestTaskExecutorThreadInfoGateway( ResourceID taskManagerId,
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
flinkbot commented on PR #24041: URL: https://github.com/apache/flink/pull/24041#issuecomment-1880408069 ## CI report: * 785c67752eaef9d7a13fdd48f613190c9e6ecb82 UNKNOWN Bot commands The @flinkbot bot supports the following commands: - `@flinkbot run azure` re-run the last Azure build -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
Re: [PR] [FLINK-33434][runtime-web] Support invoke async-profiler on TaskManager via REST API [flink]
yuchen-ecnu commented on PR #24041: URL: https://github.com/apache/flink/pull/24041#issuecomment-1880405288 Hi @Myasuka , do you have time to help review this PR? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org