adjust show trace framework

This commit is contained in:
obdev
2023-03-06 09:43:43 +00:00
committed by ob-robot
parent 0a68dd023b
commit d7da0bcfb3
3 changed files with 14 additions and 8 deletions

View File

@ -118,7 +118,8 @@ public:
union { union {
uint8_t policy_; uint8_t policy_;
struct { struct {
uint8_t level_ : 7; uint8_t level_ : 6;
bool enable_show_trace_ : 1;
bool auto_flush_ : 1; bool auto_flush_ : 1;
}; };
}; };
@ -270,9 +271,11 @@ struct ObTrace
OB_INLINE UUID get_root_span_id() { return root_span_id_; } OB_INLINE UUID get_root_span_id() { return root_span_id_; }
OB_INLINE uint8_t get_policy() { return policy_; } OB_INLINE uint8_t get_policy() { return policy_; }
OB_INLINE uint8_t get_level() { return level_; } 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 void set_auto_flush(bool auto_flush) { auto_flush_ = auto_flush; }
OB_INLINE bool is_auto_flush() { return 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 check_leak_span();
void reset(); void reset();
void dump_span(); void dump_span();
@ -341,7 +344,8 @@ private:
union { union {
uint8_t policy_; uint8_t policy_;
struct { struct {
uint8_t level_ : 7; uint8_t level_ : 6;
bool enable_show_trace_ : 1;
bool auto_flush_ : 1; bool auto_flush_ : 1;
}; };
}; };

View File

@ -133,7 +133,7 @@ namespace sql
session.set_auto_flush_trace(false); session.set_auto_flush_trace(false);
session.set_trace_enable(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; return ret;
} }
@ -412,7 +412,7 @@ namespace sql
sid.deserialize(span_id.ptr(), span_id.length(), pos); sid.deserialize(span_id.ptr(), span_id.length(), pos);
OBTRACE->init(tid, sid); OBTRACE->init(tid, sid);
FLT_SET_TRACE_LEVEL(sess.get_control_info().level_); 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 // update trace_id by server self
} else { } else {
@ -429,7 +429,7 @@ namespace sql
} }
} }
FLT_SET_TRACE_LEVEL(sess.get_control_info().level_); 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()), LOG_TRACE("flt init log", K(sess.is_trace_enable()),
@ -501,6 +501,8 @@ namespace sql
if (OB_ISNULL(flt_span_manager)) { if (OB_ISNULL(flt_span_manager)) {
// failed to get flt span manager, maybe tenant has been dropped, NOT NEED TO record; // 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 { } else {
ObFLTSpanData data; ObFLTSpanData data;
ObArenaAllocator allocator; ObArenaAllocator allocator;

View File

@ -2740,8 +2740,8 @@ DEFINE_SHOW_CLAUSE_SET(SHOW_INDEXES,
DEFINE_SHOW_CLAUSE_SET(SHOW_TRACE, DEFINE_SHOW_CLAUSE_SET(SHOW_TRACE,
NULL, NULL,
"SELECT span_name as `Operation`, start_ts as `StartTime`, concat(elapse, ' µs') as `ElapseTime` 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(elapse, ' µs') as "ELAPSE_TIME" 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); NULL);
DEFINE_SHOW_CLAUSE_SET(SHOW_TRACE_JSON, DEFINE_SHOW_CLAUSE_SET(SHOW_TRACE_JSON,