fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

at tngl 1.6 kB View raw
1package tracer 2 3import ( 4 "log" 5 "os" 6 "strconv" 7 8 "github.com/opentracing/opentracing-go" 9 sglog "github.com/sourcegraph/log" 10) 11 12type tracerType string 13 14const ( 15 tracerTypeNone tracerType = "none" 16 tracerTypeJaeger tracerType = "jaeger" 17 tracerTypeOpenTelemetry tracerType = "opentelemetry" 18) 19 20func inferTracerType() tracerType { 21 // default to disabled 22 isJaegerDisabled, err := strconv.ParseBool(os.Getenv("JAEGER_DISABLED")) 23 if err == nil && !isJaegerDisabled { 24 return tracerTypeJaeger 25 } 26 27 // defaults to disabled 28 isOpenTelemetryDisabled, err := strconv.ParseBool(os.Getenv("OPENTELEMETRY_DISABLED")) 29 if err == nil && !isOpenTelemetryDisabled { 30 return tracerTypeOpenTelemetry 31 } 32 33 return tracerTypeNone 34} 35 36// Init should only be called from main and only once 37// It will initialize the configured tracer, and register it as the global tracer 38// This MUST be the same tracer as the one used by Sourcegraph 39func Init(resource sglog.Resource) { 40 var ( 41 tt = inferTracerType() 42 tracer opentracing.Tracer 43 err error 44 ) 45 switch tt { 46 case tracerTypeJaeger: 47 tracer, err = configureJaeger(resource) 48 if err != nil { 49 log.Printf("failed to configure Jaeger tracer: %v", err) 50 return 51 } 52 log.Printf("INFO: using Jaeger tracer") 53 54 case tracerTypeOpenTelemetry: 55 tracer, err = configureOpenTelemetry(resource) 56 if err != nil { 57 log.Printf("failed to configure OpenTelemetry tracer: %v", err) 58 return 59 } 60 log.Printf("INFO: using OpenTelemetry tracer") 61 } 62 63 if tracer != nil { 64 opentracing.SetGlobalTracer(tracer) 65 } 66}