• No labels

9 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标准协议。

  3. 我如果不考虑链路跟踪这个功能, 我是不是直接塞一个全局的"ctx" 就可以了.  有点不习惯2.1的ctx.  这样做有没啥弊端.

    1. 自己的问题自己回复. 链路跟踪太牛了. 以前还嫌麻烦, 哪怕用不上微服务, 链路跟踪都得用上. 监控全局的感觉 推荐集成阿里云的, 有每天免费的额度

  4. 想问下,这个链路跟踪。如果服务端内部有rpc的话,链路跟踪还能不能生效。

    1. 链路跟踪基础就是这个目的。