Skip to content

日志、指标、Trace 与身份关联:练习答案 ​

参考实现 ​

完整校验:

python
def validate(spans):
    ids=[s["id"] for s in spans]
    if len(set(ids)) != len(ids):raise ValueError("duplicate")
    for s in spans:
        if s["parent"] is not None and s["parent"] not in ids:raise ValueError("orphan")
for data,expected in [([{"id":"a","parent":"missing"}],"orphan"),
                      ([{"id":"a","parent":None},{"id":"a","parent":None}],"duplicate")]:
    try:validate(data)
    except ValueError as e:assert str(e)==expected
    else:raise AssertionError("broken trace accepted")
print("trace identities validated")

生产还要检查循环父链、跨trace关联与采样丢失的已知例外,不把不完整采样误判为业务故障。

返回正文

用心记录每一步成长