9 Star 0 Fork 9

sparrow/sparrow_cloud_go

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
opentracing.go 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
暴怒侠 提交于 2025-04-08 11:23 +08:00 . update opentracing
package opentracing
import (
"strings"
"sync"
"github.com/kataras/iris/v12"
)
// OpentracingHeader is saving opentracing b3 header data
// field Headers is map[string][]string type
type OpentracingHeader struct {
sync.RWMutex
Headers interface{}
}
// OpentracingInf global variable to transmit opentracing b3 header data
var OpentracingInf = new(OpentracingHeader)
// SetHeaders set OpentracingHeader Headers function
func (oh *OpentracingHeader) SetHeaders(data interface{}) {
oh.Lock()
oh.Headers = data
oh.Unlock()
}
// GetHeaders get OpentracingHeader Headers function
func (oh *OpentracingHeader) GetHeaders() interface{} {
oh.RLock()
data := oh.Headers
oh.RUnlock()
return data
}
// Serve is for saving incoming request header of b3
func Serve(ctx iris.Context) {
data := make(map[string][]string)
headers := ctx.Request().Header
for key, value := range headers {
if strings.HasPrefix(key, "X-") || strings.HasPrefix(key, "x-") {
data[key] = value
}
}
OpentracingInf.SetHeaders(data)
ctx.Next()
}
// Inject b3 header to req header
// b3headers, ok := opentracing.OpentracingInf.GetHeaders().(map[string][]string)
// if ok {
// for key, value := range b3headers {
// if len(value) > 0 {
// req.Header.Set(key, value[0])
// }
// }
// }
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/sparrow614/sparrow_cloud_go.git
git@gitee.com:sparrow614/sparrow_cloud_go.git
sparrow614
sparrow_cloud_go
sparrow_cloud_go
v1.0.4

搜索帮助