上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

opentracing Inject函数分析

[复制链接]
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    638

    主题

    5234

    回帖

    6105

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6105

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-8-12 08:29:23 | 显示全部楼层 | 阅读模式

    与https://bbs.tampermonkey.net.cn/thread-4904-1-1.html逻辑基本一致
    主要调用carrier的Set函数存储Span数据

    func (t *TextMapPropagator) Inject(spanContext MockSpanContext, carrier interface{}) error {
        writer, ok := carrier.(opentracing.TextMapWriter)
        if !ok {
            return opentracing.ErrInvalidCarrier
        }
        // Ids:
        writer.Set(mockTextMapIdsPrefix+"traceid", strconv.Itoa(spanContext.TraceID))
        writer.Set(mockTextMapIdsPrefix+"spanid", strconv.Itoa(spanContext.SpanID))
        writer.Set(mockTextMapIdsPrefix+"sampled", fmt.Sprint(spanContext.Sampled))
        // Baggage:
        for baggageKey, baggageVal := range spanContext.Baggage {
            safeVal := baggageVal
            if t.HTTPHeaders {
                safeVal = url.QueryEscape(baggageVal)
            }
            writer.Set(mockTextMapBaggagePrefix+baggageKey, safeVal)
        }
        return nil
    }
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表