亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在一個 docker 容器中打開 go 代碼,在另一個容器中打開 jaegertracing

在一個 docker 容器中打開 go 代碼,在另一個容器中打開 jaegertracing

Go
拉莫斯之舞 2023-06-19 13:54:37
我有一個 go 項目,它使用以下命令在一個 docker 容器中發送 OpenTracing 跨度,并在它自己的容器中運行 jaegertracing:docker run -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:latest當我運行以下 go 測試代碼時,我可以在 jaegerui 中看到它們: import (    "testing"    //"fmt"    "io"    opentracing "github.com/opentracing/opentracing-go"    jaeger "github.com/uber/jaeger-client-go"    config "github.com/uber/jaeger-client-go/config"    log2 "github.com/sirupsen/logrus"   // olog"github.com/opentracing/opentracing-go/log"    jaegerlog "github.com/uber/jaeger-client-go/log"    "github.com/uber/jaeger-lib/metrics")func TestSum(t *testing.T) {     log2.Info("start opentracing")   // helloTo := "sonam"    tracer, closer := initJaeger("opentracing_test")    defer closer.Close()    helloStr := "Sonam"    //tracer := opentracing.GlobalTracer()    span := tracer.StartSpan("TestSum")    println(helloStr)    span.Finish()}// initJaeger returns an instance of Jaeger Tracer that samples 100% of traces and logs all spans to stdout.func initJaeger(service string) (opentracing.Tracer, io.Closer) {    cfg := config.Configuration{        ServiceName: service,        Sampler:     &config.SamplerConfig{            Type:  jaeger.SamplerTypeConst,            Param: 1,        },        Reporter:    &config.ReporterConfig{            LogSpans: true,        },    }    //add    jLogger := jaegerlog.StdLogger    jMetricsFactory := metrics.NullFactory    // Initialize tracer with a logger and a metrics factory    tracer, closer, _ := cfg.NewTracer(        config.Logger(jLogger),        config.Metrics(jMetricsFactory),    )    // Set the singleton opentracing.Tracer with the Jaeger tracer.    opentracing.SetGlobalTracer(tracer)    return tracer, closer}但當代碼在單獨的 docker 容器中執行時不會。我需要在我的 go app docker 容器中傳遞什么?
查看完整描述

1 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

我的問題是配置。使用上述配置未讀取環境變量。我必須使用以下內容來讀取開放跟蹤中的環境變量:


cfg, err := jconfig.FromEnv()

    if err != nil {

        log.Error("cannot parse Jaeger env vars")

    }


    cfg.ServiceName = service

    cfg.Sampler.Type = jaeger.SamplerTypeConst

    cfg.Sampler.Param = 1

    cfg.Reporter.LogSpans = true


查看完整回答
反對 回復 2023-06-19
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號