← 返回题库
中级

实现链路追踪TraceID传播

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    traffic_log_csv = open_url(____).read()
    import uuid
    class TraceContext:
        def __init__(____):
            self.trace_id = trace_id or uuid.uuid4().hex[:____]
            self.span_id = uuid.uuid4().hex[:____]
            self.parent_span_id = parent_span_id
        def child(____):
            return TraceContext(____)
        def to_headers(____):
            h = {'____': self.trace_id, '____': self.span_id}
            if self.parent_span_id: h['____'] = self.parent_span_id
            return h
    root = TraceContext()
    svc_calls = ['____','____','____']
    spans = [root]
    for svc in svc_calls:
        child = root.child()
        spans.append(____)
        print(____)
    print(____)
    print(____)

示例

输入
solve()
期望输出
user-service: trace=0c799f3ff82e40c5, span=84803c0e, parent=eda3f41f
order-service: trace=0c799f3ff82e40c5, span=6fd59027, parent=eda3f41f
payment-service: trace=0c799f3ff82e40c5, span=925b4109, parent=eda3f41f
全部span使用相同trace_id: True
所有子span的parent_span_id == root.span_id: True
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码