基本介绍

作为一款工程化完备的开发框架,GoFrame实现了标准化的分布式链路跟踪 Distributed Tracing 特性,通过GoFrame开发框架开发者可以非常简便地使用Trace特性。

相关文档


Content Menu

  • No labels

4 Comments

  1. "日志内容中需要注入当前请求的TraceId,以方便通过日志快速查找定位问题点。组件可以自动识别当前请求链路是否开启Tracing特性,有则自动启动自身Tracing特性,并将TraceId自动读取出来输出到内容中;没有则忽略,什么也不会做。该特性是由glog组件实现,这需要开发者在输出日志的时候调用Ctx链式操作方法将context.Context上下文变量传递到当前输出日志操作链路中,没有没有传递context.Context上下文变量,就会丢失日志内容中的TraceId"

    这里的 TraceId 是固定的还是取配置文件中日志配置参数:CtxKeys吗?

    1. 不是。glog日志组件旧版本实现的一版链路跟踪信息不是标准化的。新版本会保留CtxKeys设计,并且新版本增加了标准化协议OpenTelemetry的支持,使得链路跟踪信息设置、获取和打印更加便捷,也就是说你无需再手动配置CtxKeys,日志组件会自动读取链路中的TraceId。此外,GoFrame未来版本中也会根据需要扩展原有的CtxKeys的能力。

  2. sdk,如何实现关闭数据上报,如JAEGER_SAMPLER_PARAM=0采样率=0

    1. Jaeger是自己注册的,可以在注册Jaeger的时候自行配置。goframe里面的链路跟踪对接的是OpenTelemetry标准协议。