Superset二次开发之集成链路追踪TraceID技术

文章介绍了如何在Python配置文件config.py中使用`trace_id`技术整合链路追踪,通过`get_trace_id`函数生成TraceID,并在`CustomLogRecord`类中添加到日志记录中,以增强日志的可追踪性。同时提及了Flask上下文对TraceID获取的影响。
摘要由CSDN通过智能技术生成

config.py

##时间-日志级别-完整路径-文件名字-文件行-函数名字-信息

LOG_FORMAT = "%(asctime)s:%(levelname)s:%(pathname)s:%(module)s:%(lineno)d:%(funcName)s:%(message)s"

字符串详细信息

格式字符串作用
%(name)s日志记录器的名称(记录通道)
%(levelno)s
  • 日志记录级别的数字
  • DEBUG=10、INFO=20、WARNING=30、ERROR=40、CRITICAL=50
%(levelname)s
  • 日志记录级别的文本
  • “DEBUG”、“INFO”、“WARNING”、“ERROR”、“CRITICAL”
%(pathname)s日志调用的源文件的完整路径名
%(filename)s日志调用的源文件的文件名部分
%(module)s日志调用的源文件的文件名的名称部分
%(lineno)d日志调用的源行号
%(funcName)s日志调用的函数名
%(created)f打印日志的时间;
time.time() 的返回值
%(asctime)s打印日志的时间;
datetime.datetime.now() 的返回值
%(msecs)d打印日志的毫秒部分
%(relativeCreated)d
  • 打印日志的时间,毫秒为单位;
  • 是相对于加载 logging 模块的时间(通常在应用程序启动时)
%(thread)d线程ID
%(threadName)s线程名,一般是主线程 MainThread
%(process)d进程ID
%(message)s日志信息

集成链路追踪TraceID 技术

  • log_format 集成traceID

config.py
##时间-日志级别-完整路径-文件名字-文件行-函数名字-信息

LOG_FORMAT = "%(asctime)s:%(levelname)s:%(trace_id)s:%(thread)s:%(pathname)s:%(lineno)d:%(funcName)s:%(message)s"
  • superset/utils/logging_configurator.py
def get_trace_id():
    if has_request_context():
        if 'trace_id' not in g:
            g.trace_id = str(uuid.uuid4())
        return g.trace_id
    else:
        # Fallback Trace ID if outside of Flask request context
        return str(uuid.uuid4())

# 自定义 LogRecord,用于添加 Trace ID
class CustomLogRecord(logging.LogRecord):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.trace_id = get_trace_id()  # 生成 Trace ID

        # 截取 pathname,只保留最后三个部分
        # path_parts = self.pathname.split(os.sep)
        # if len(path_parts) > 3:
        #     self.pathname = os.path.join(path_parts[-3],path_parts[-2], path_parts[-1])

logging.setLogRecordFactory(CustomLogRecord)

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aimmon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值