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]