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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 OpenTelemetry otelgin 中間件中獲取 traceid 或完整上下文以將

如何在 OpenTelemetry otelgin 中間件中獲取 traceid 或完整上下文以將

Go
繁星淼淼 2022-12-13 16:08:49
Atm,我在 go 中處理了一堆我想跟蹤的分布式微服務。我有一個通過 REST 工作的“api-gateway”,然后通過 gRPC 調(diào)用所需的微服務。我通過 OpenTelemetry 進行的跟蹤適用于 grpc 路徑,但不知何故,otelgin 中間件似乎沒有提供任何上下文,我可以進一步使用 grpc 服務中的相同 traceid 進行跟蹤。我默認使用 gin,然后像這樣注入 otelgin 中間件。r := gin.Default()r.Use(middleware.Middleware(    "Service-Name-XYZ",))據(jù)我看了一下中間件代碼,應該有一個可跟蹤的上下文,我可以給 grpc 客戶端將他的跨度添加到跟蹤中,但不知何故,似乎完全錯過了,所以 grpctraceparent客戶tracestate端gin context不能采取 opentelemetry 上下文傳播的操作。據(jù)我所知,中間件使用默認集TracerProvider和TextMapPropagator我在我的InitTracer函數(shù)中設置的,它在main.go.func InitTracer() func(context.Context) error {headers := map[string]string{    "signoz-access-token": signozToken,}secureOption := otlptracegrpc.WithTLSCredentials(credentials.NewClientTLSFromCert(nil, ""))if len(insecure) > 0 {    secureOption = otlptracegrpc.WithInsecure()}exporter, err := otlptrace.New(    context.Background(),    otlptracegrpc.NewClient(        secureOption,        otlptracegrpc.WithEndpoint(collectorURL),        otlptracegrpc.WithHeaders(headers),    ),)if err != nil {    log.Fatal(err)}resources, err := resource.New(    context.Background(),    resource.WithAttributes(        attribute.String("service.name", serviceName),        attribute.String("library.language", "go"),    ),)if err != nil {    log.Printf("Could not set resources: ", err)}otel.SetTracerProvider(    sdktrace.NewTracerProvider(        sdktrace.WithSampler(sdktrace.AlwaysSample()),        sdktrace.WithSpanProcessor(sdktrace.NewBatchSpanProcessor(exporter)),        sdktrace.WithSyncer(exporter),        sdktrace.WithResource(resources),    ),)otel.SetTextMapPropagator(    propagation.NewCompositeTextMapPropagator(        propagation.TraceContext{},        propagation.Baggage{},    ),)return exporter.Shutdown}所以我的問題是:我是否遺漏了什么或者 otelgin 沒有提供任何我可以提供給 grpc 客戶端使用的可跟蹤上下文?
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經(jīng)驗 獲得超4個贊

如果您使用的是otelgin 中間件,則可跟蹤上下文將通過 傳播ginContext.Request.Context()。因此,您可以將此請求上下文而不是 ginContext 傳遞給您的 gRPC 客戶端以傳播跟蹤。



查看完整回答
反對 回復 2022-12-13
  • 1 回答
  • 0 關注
  • 492 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號