第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從請(qǐng)求標(biāo)頭中提取示蹤劑的正確方法

從請(qǐng)求標(biāo)頭中提取示蹤劑的正確方法

Go
慕妹3242003 2022-09-26 15:42:15
我有克拉肯德·阿皮蓋特威,它使用開(kāi)放跟蹤并發(fā)送req標(biāo)頭作為X-B3-...用于跟蹤,我的服務(wù)正在使用開(kāi)放遙測(cè)。這就是我現(xiàn)在在耶格爾身上看到的。在此處輸入圖像描述在此處輸入圖像描述我希望服務(wù)跨度在蜂巢槽下。我已完成的解決方法:這是使用 chi 路由器的請(qǐng)求的確切處理程序。func (env *Env) getCommentForBlogRouter(w http.ResponseWriter, r *http.Request) {    ctx := r.Context()    keys := []string{"X-B3-Traceid", "X-B3-Spanid", "X-B3-Sampled"}    var carrier propagation.HeaderCarrier = propagation.HeaderCarrier{}    for _, k := range keys {        carrier.Set(strings.ToLower(k), r.Header[k][0])    }    var propagator propagation.TextMapPropagator = otel.GetTextMapPropagator()    ctx = propagator.Extract(ctx, carrier)    // fmt.Println(ctx)    tr := otel.Tracer("Handler: blog-comments")    ctx, span := tr.Start(ctx, "handler span")    defer span.End()    blogId := r.URL.Query().Get("blog-id")    span.SetAttributes(attribute.Key("blog-id").String(fmt.Sprint(blogId)))    var spanDB trace.Span    ctx, spanDB = tr.Start(ctx, "Select row")    comments, err := env.comments.GetForBlog(blogId)    spanDB.End()    var spanRes trace.Span    _, spanRes = tr.Start(ctx, "Sending Response")    defer spanRes.End()    if err != nil {        fmt.Println(err)        SendError(w, http.StatusInternalServerError, "Something went wrong")        return    }    if comments == nil {        comments = []models.Comment{}    }    SendResponse(w, http.StatusOK, map[string]interface{}{        "data": comments,    })}
查看完整描述

1 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

好吧,我想出了如何讓它工作。我添加了此中間件,它將請(qǐng)求上下文與標(biāo)頭跟蹤 ID、spanID 和跟蹤標(biāo)志同步。在此之后,我們可以根據(jù)需要?jiǎng)?chuàng)建跟蹤器和跨度。


func Tracing(next http.Handler) http.Handler {

    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

        traceID, _ := trace.TraceIDFromHex(r.Header["X-B3-Traceid"][0])

        spanID, _ := trace.SpanIDFromHex(r.Header["X-B3-Spanid"][0])

        var traceFlags trace.TraceFlags

        if r.Header["X-B3-Sampled"][0] == "1" {

            traceFlags = trace.FlagsSampled

        }


        spanContext := trace.NewSpanContext(trace.SpanContextConfig{

            TraceID:    traceID,

            SpanID:     spanID,

            TraceFlags: traceFlags,

        })


        ctx := trace.ContextWithSpanContext(r.Context(), spanContext)


        r = r.WithContext(ctx)

        next.ServeHTTP(w, r)

    })

}


查看完整回答
反對(duì) 回復(fù) 2022-09-26
  • 1 回答
  • 0 關(guān)注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)