You need to enable JavaScript to run this app. Flask集成OpenCensus对接Azure时如何将trace-id写入响应header
优惠活动
大模型
产品
解决方案
定价
更多

Flask集成OpenCensus对接Azure时如何将trace-id写入响应header

你可以通过Flask的after_request钩子,从OpenCensus的当前执行上下文中提取trace_id(也就是Azure Monitor中对应的operation_Id),再添加到响应header中返回给客户端,具体实现步骤如下:

1. 新增依赖导入

先引入OpenCensus的执行上下文模块,用于获取当前请求的trace信息:

from opencensus.trace import execution_context

2. 配置全局响应钩子

添加全局请求后处理逻辑,所有接口返回前都会自动注入trace id header:

@app.after_request
def inject_trace_id(response):
    tracer = execution_context.get_opencensus_tracer()
    # 仅当存在trace上下文时添加header
    if tracer and hasattr(tracer, "span_context"):
        trace_id = tracer.span_context.trace_id
        # 自定义header名,和内部日志的operation_Id完全一致
        response.headers["X-Trace-Id"] = trace_id
        # 若有跨域需求,添加此行允许前端读取该header
        # response.headers["Access-Control-Expose-Headers"] = "X-Trace-Id"
    return response

验证效果

启动服务后发起请求,响应头中会携带X-Trace-Id字段,值完全匹配Azure Monitor中对应请求的operation_Id,客户端拿到后可以直接用该值检索全链路日志。

内容的提问来源于stack exchange,提问作者sheldonzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 05:06:05