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

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new c3261f49314 [fix](profile) Fix print profile in be log (#34166)
c3261f49314 is described below

commit c3261f4931448620ba92b26807f6849d7a10e526
Author: zhiqiang <seuhezhiqi...@163.com>
AuthorDate: Sat Apr 27 19:20:40 2024 +0800

    [fix](profile) Fix print profile in be log (#34166)
---
 be/src/pipeline/pipeline_fragment_context.cpp               | 13 +++++++++++--
 .../java/org/apache/doris/planner/StreamLoadPlanner.java    |  2 ++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/be/src/pipeline/pipeline_fragment_context.cpp 
b/be/src/pipeline/pipeline_fragment_context.cpp
index 03de71f3c8d..9cc71afd4d7 100644
--- a/be/src/pipeline/pipeline_fragment_context.cpp
+++ b/be/src/pipeline/pipeline_fragment_context.cpp
@@ -1505,6 +1505,13 @@ void PipelineFragmentContext::_close_fragment_instance() 
{
     Defer defer_op {[&]() { _is_fragment_instance_closed = true; }};
     
_runtime_profile->total_time_counter()->update(_fragment_watcher.elapsed_time());
     static_cast<void>(send_report(true));
+    // Print profile content in info log is a tempoeray solution for stream 
load.
+    // Since stream load does not have someting like coordinator on FE, so
+    // backend can not report profile to FE, ant its profile can not be shown
+    // in the same way with other query. So we print the profile content to 
info log.
+    // Print profile content in log is harmful for log readability, info log 
will be
+    // full of profile content, and not just profile of stream load.
+    // We know it, but currently we do not have a cheap and good solution for 
this.
     if (_runtime_state->enable_profile()) {
         std::stringstream ss;
         // Compute the _local_time_percent before pretty_print the 
runtime_profile
@@ -1513,8 +1520,10 @@ void PipelineFragmentContext::_close_fragment_instance() 
{
         // After add the operation, the print out like that:
         // UNION_NODE (id=0):(Active: 56.720us, non-child: 82.53%)
         // We can easily know the exec node execute time without child time 
consumed.
-        _runtime_state->runtime_profile()->compute_time_in_profile();
-        _runtime_state->runtime_profile()->pretty_print(&ss);
+        for (const auto& runtime_profile_ptr : 
_runtime_state->pipeline_id_to_profile()) {
+            runtime_profile_ptr->pretty_print(&ss);
+        }
+
         if (_runtime_state->load_channel_profile()) {
             _runtime_state->load_channel_profile()->pretty_print(&ss);
         }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java
index e7bd2c80453..10dc8c3a432 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java
@@ -332,6 +332,7 @@ public class StreamLoadPlanner {
         queryOptions.setEnablePipelineXEngine(Config.enable_pipeline_load);
         queryOptions.setBeExecVersion(Config.be_exec_version);
         queryOptions.setIsReportSuccess(taskInfo.getEnableProfile());
+        queryOptions.setEnableProfile(taskInfo.getEnableProfile());
         queryOptions.setEnableMemtableOnSinkNode(enableMemtableOnSinkNode);
         params.setQueryOptions(queryOptions);
         TQueryGlobals queryGlobals = new TQueryGlobals();
@@ -569,6 +570,7 @@ public class StreamLoadPlanner {
         queryOptions.setEnablePipelineXEngine(Config.enable_pipeline_load);
         queryOptions.setBeExecVersion(Config.be_exec_version);
         queryOptions.setIsReportSuccess(taskInfo.getEnableProfile());
+        queryOptions.setEnableProfile(taskInfo.getEnableProfile());
         queryOptions.setEnableMemtableOnSinkNode(enableMemtableOnSinkNode);
 
         pipParams.setQueryOptions(queryOptions);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to