This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 40301642704 [feature](tools) embed async profiler to help user 
generate flame graph for frontend (#36018)
40301642704 is described below

commit 4030164270436b755db64d59239791fb61b5d2e8
Author: 924060929 <[email protected]>
AuthorDate: Fri Jun 7 15:38:01 2024 +0800

    [feature](tools) embed async profiler to help user generate flame graph for 
frontend (#36018)
    
    cherry pick from #35010
---
 LICENSE.txt        |  8 +++++++
 bin/profile_fe.sh  | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 fe/fe-core/pom.xml |  9 ++++++--
 3 files changed, 78 insertions(+), 2 deletions(-)

diff --git a/LICENSE.txt b/LICENSE.txt
index 63c614cda48..e28911d07a4 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -718,3 +718,11 @@ LICENSE file in the root directory of this source tree. An 
additional grant
 of patent rights can be found in the PATENTS file in the same directory.
 
 
----------------------------------------------------------------------------------
+
+me.bechberger.ap-loader-all: Apache 2.0 license
+
+Apache 2.0, Copyright 2023 SAP SE or an SAP affiliate company, Johannes 
Bechberger and ap-loader contributors
+
+This project is maintained by the SapMachine team at SAP SE
+
+----------------------------------------------------------------------------------
\ No newline at end of file
diff --git a/bin/profile_fe.sh b/bin/profile_fe.sh
new file mode 100755
index 00000000000..1481cce4069
--- /dev/null
+++ b/bin/profile_fe.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+# 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.
+
+curdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
+
+DORIS_HOME="$(
+    cd "${curdir}/.." || exit 1
+    pwd
+)"
+export DORIS_HOME
+echo "DORIS_HOME: ${DORIS_HOME}"
+
+if [[ -z "${JAVA_HOME}" ]]; then
+    if ! command -v java &>/dev/null; then
+        JAVA=""
+    else
+        JAVA="$(command -v java)"
+    fi
+else
+    JAVA="${JAVA_HOME}/bin/java"
+fi
+echo "JAVA: ${JAVA}"
+
+if [[ ! -x "${JAVA}" ]]; then
+    echo "The JAVA_HOME environment variable is not set correctly"
+    echo "This environment variable is required to run this program"
+    echo "Note: JAVA_HOME should point to a JDK and not a JRE"
+    echo "You can set JAVA_HOME in the fe.conf configuration file"
+    exit 1
+fi
+
+FE_PID=$(jps | grep DorisFE | awk '{print $1}')
+if [[ -z "${FE_PID}" ]]; then
+    echo "DorisFe not started"
+    exit 1
+fi
+echo "DorisFE pid: ${FE_PID}"
+
+mkdir -p "${DORIS_HOME}/log"
+NOW=$(date +'%Y%m%d%H%M%S')
+PROFILE_OUTPUT="${DORIS_HOME}/log/profile_${NOW}.html"
+if [[ -z "${PROFILE_SECONDS}" ]]; then
+    PROFILE_SECONDS="10"
+fi
+
+echo "Begin profiling ${PROFILE_SECONDS} seconds and generate flame graph to 
${PROFILE_OUTPUT}..."
+${JAVA} -jar "${DORIS_HOME}"/lib/ap-loader-all-*.jar profiler -a -n -l -i 
200us -d "${PROFILE_SECONDS}" -f "${PROFILE_OUTPUT}" "${FE_PID}"
+echo "Generated flame graph to ${PROFILE_OUTPUT}"
diff --git a/fe/fe-core/pom.xml b/fe/fe-core/pom.xml
index 22b60de41e2..fb8d7ba3950 100644
--- a/fe/fe-core/pom.xml
+++ b/fe/fe-core/pom.xml
@@ -640,8 +640,8 @@ under the License.
         <dependency>
             <groupId>org.apache.parquet</groupId>
             <artifactId>parquet-avro</artifactId>
-        </dependency>        
-        <dependency> 
+        </dependency>
+        <dependency>
             <groupId>org.mariadb.jdbc</groupId>
             <artifactId>mariadb-java-client</artifactId>
         </dependency>
@@ -760,6 +760,11 @@ under the License.
             <artifactId>hbase-hadoop-compat</artifactId>
             <version>2.5.2-hadoop3</version>
         </dependency>
+        <dependency>
+            <groupId>me.bechberger</groupId>
+            <artifactId>ap-loader-all</artifactId>
+            <version>3.0-8</version>
+        </dependency>
     </dependencies>
     <repositories>
         <!-- for huawei obs sdk -->


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to