11、OpenTracing 基础:多语言下的分布式追踪实践

OpenTracing 基础:多语言下的分布式追踪实践

1. 多语言下组合多个 Span 到单个追踪

1.1 Go 语言示例

在 Go 语言中,我们可以通过以下代码来创建和管理 Span:

span = opentracing.GlobalTracer().StartSpan(
    "get-person",
    opentracing.ChildOf(span.Context()),
    opentracing.Tag{Key: "db.statement", Value: query},
)
defer span.Finish()
...
}
func SayHello(name string, span opentracing.Span) (string, error) {
    person, err := repo.GetPerson(name, span)
    if err != nil {
        return "", err
    }
    span.LogKV(...)
    return FormatGreeting(
        person.Name,
        person.Title,
        person.Description,
        span,
    ), nil
}

上述代码中,我们首先使用 opentracing.GlobalTracer().StartSpan 方法创建一个名为 get-person 的 Span,并设置其为父

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值