adjust show trace framework
This commit is contained in:
		
							
								
								
									
										10
									
								
								deps/oblib/src/lib/trace/ob_trace.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								deps/oblib/src/lib/trace/ob_trace.h
									
									
									
									
										vendored
									
									
								
							@ -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;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
 | 
				
			|||||||
@ -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,
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user