diff --git a/deps/oblib/src/lib/trace/ob_trace.h b/deps/oblib/src/lib/trace/ob_trace.h index 9b09efbbe..ad86bae11 100644 --- a/deps/oblib/src/lib/trace/ob_trace.h +++ b/deps/oblib/src/lib/trace/ob_trace.h @@ -118,7 +118,8 @@ public: union { uint8_t policy_; struct { - uint8_t level_ : 7; + uint8_t level_ : 6; + bool enable_show_trace_ : 1; bool auto_flush_ : 1; }; }; @@ -270,9 +271,11 @@ struct ObTrace OB_INLINE UUID get_root_span_id() { return root_span_id_; } OB_INLINE uint8_t get_policy() { return policy_; } OB_INLINE uint8_t get_level() { return level_; } - OB_INLINE void set_level(uint8_t level) { level_ = 0x7f & level; } + OB_INLINE void set_level(uint8_t level) { level_ = 0x3f & level; } OB_INLINE void set_auto_flush(bool auto_flush) { auto_flush_ = auto_flush; } OB_INLINE bool is_auto_flush() { return auto_flush_; } + OB_INLINE void set_enable_show_trace(bool enable_show_trace) { enable_show_trace_ = enable_show_trace; } + OB_INLINE bool is_enable_show_trace() { return enable_show_trace_; } void check_leak_span(); void reset(); void dump_span(); @@ -341,7 +344,8 @@ private: union { uint8_t policy_; struct { - uint8_t level_ : 7; + uint8_t level_ : 6; + bool enable_show_trace_ : 1; bool auto_flush_ : 1; }; }; diff --git a/src/sql/monitor/flt/ob_flt_utils.cpp b/src/sql/monitor/flt/ob_flt_utils.cpp index 1db157fdb..b8d7c4588 100644 --- a/src/sql/monitor/flt/ob_flt_utils.cpp +++ b/src/sql/monitor/flt/ob_flt_utils.cpp @@ -133,7 +133,7 @@ namespace sql session.set_auto_flush_trace(false); session.set_trace_enable(false); } - OZ(ObFLTUtils::init_flt_show_trace_env(session)); + OBTRACE->set_enable_show_trace(session.is_use_trace_log()); return ret; } @@ -412,7 +412,7 @@ namespace sql sid.deserialize(span_id.ptr(), span_id.length(), pos); OBTRACE->init(tid, sid); FLT_SET_TRACE_LEVEL(sess.get_control_info().level_); - FLT_SET_AUTO_FLUSH(sess.is_auto_flush_trace()); + FLT_SET_AUTO_FLUSH(sess.is_auto_flush_trace() || sess.is_use_trace_log()); } // update trace_id by server self } else { @@ -429,7 +429,7 @@ namespace sql } } FLT_SET_TRACE_LEVEL(sess.get_control_info().level_); - FLT_SET_AUTO_FLUSH(sess.is_auto_flush_trace()); + FLT_SET_AUTO_FLUSH(sess.is_auto_flush_trace() || sess.is_use_trace_log()); } LOG_TRACE("flt init log", K(sess.is_trace_enable()), @@ -501,6 +501,8 @@ namespace sql if (OB_ISNULL(flt_span_manager)) { // failed to get flt span manager, maybe tenant has been dropped, NOT NEED TO record; + } else if (!OBTRACE->is_enable_show_trace()) { + // do nothing } else { ObFLTSpanData data; ObArenaAllocator allocator; diff --git a/src/sql/resolver/cmd/ob_show_resolver.cpp b/src/sql/resolver/cmd/ob_show_resolver.cpp index 6d3a0c70d..f3fdf2085 100644 --- a/src/sql/resolver/cmd/ob_show_resolver.cpp +++ b/src/sql/resolver/cmd/ob_show_resolver.cpp @@ -2740,8 +2740,8 @@ DEFINE_SHOW_CLAUSE_SET(SHOW_INDEXES, DEFINE_SHOW_CLAUSE_SET(SHOW_TRACE, NULL, - "SELECT span_name as `Operation`, start_ts as `StartTime`, concat(elapse, ' µs') as `ElapseTime` from %s.%s", - R"(SELECT span_name as "OPERATION", to_char(start_ts,'yyyy/mm/dd hh24:mi:ss') as "START_TIME", concat(elapse, ' µs') as "ELAPSE_TIME" FROM %s.%s)", + "SELECT span_name as `Operation`, start_ts as `StartTime`, concat(cast(elapse/1000 as number(20, 3)), ' ms') as `ElapseTime` from %s.%s", + R"(SELECT span_name as "OPERATION", to_char(start_ts,'yyyy/mm/dd hh24:mi:ss') as "START_TIME", concat(cast(elapse/1000 as number(20, 3)), ' ms') as "ELAPSE_TIME" FROM %s.%s)", NULL); DEFINE_SHOW_CLAUSE_SET(SHOW_TRACE_JSON,