Skip to content

Commit

Permalink
Adding back noop tracer for when the env-var is not set (#662)
Browse files Browse the repository at this point in the history
* removes logs that waas cluttering up things

Signed-off-by: Shawn Hurley <shawn@hurley.page>
  • Loading branch information
shawn-hurley authored Feb 17, 2025
1 parent 4a177d6 commit 9ef0d77
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
1 change: 1 addition & 0 deletions .trunk/configs/custom-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,4 @@ httpsnoop
felixge
cenkalti
tmpl
sdktrace
2 changes: 2 additions & 0 deletions kai/rpc_server/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ def main() -> None:
span_processor=BatchSpanProcessor(OTLPSpanExporter())
)
trace.set_tracer_provider(tracer_provider=tracer_provider)
else:
trace.set_tracer_provider(tracer_provider=trace.NoOpTracerProvider())

# mypy incorrectly type checks sys.stdin.buffer and sys.stdout.buffer as
# simply IO[bytes], rather than as BufferedReader and BufferedWriter for
Expand Down
30 changes: 20 additions & 10 deletions kai_analyzer_rpc/pkg/tracing/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,21 @@ package tracing
import (
"context"
"errors"
"os"
"time"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/sdk/trace"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace/noop"
)

const TRACING_ENABLED = "ENABLE_TRACING"

func SetupOTelSDK(ctx context.Context) (shutdown func(context.Context) error, err error) {
var shutdownFuncs []func(context.Context) error

Expand All @@ -38,12 +43,11 @@ func SetupOTelSDK(ctx context.Context) (shutdown func(context.Context) error, er
otel.SetTextMapPropagator(prop)

// Set up trace provider.
tracerProvider, err := newTraceProvider()
tracerProvider, shutdownFuncs, err := newTraceProvider()
if err != nil {
handleErr(err)
return
}
shutdownFuncs = append(shutdownFuncs, tracerProvider.Shutdown)
otel.SetTracerProvider(tracerProvider)

return
Expand All @@ -56,20 +60,26 @@ func newPropagator() propagation.TextMapPropagator {
)
}

func newTraceProvider() (*trace.TracerProvider, error) {
func newTraceProvider() (trace.TracerProvider, []func(context.Context) error, error) {
if env := os.Getenv(TRACING_ENABLED); env == "" {
tp := noop.NewTracerProvider()
return &tp, nil, nil
}
traceExporter, err := otlptracehttp.New(context.Background(), otlptracehttp.WithInsecure())
if err != nil {
return nil, err
return nil, nil, err
}

traceProvider := trace.NewTracerProvider(
trace.WithBatcher(traceExporter,
shutdownFuncs := []func(context.Context) error{}
traceProvider := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(traceExporter,
// Default is 5s. Set to 1s for demonstrative purposes.
trace.WithBatchTimeout(time.Second)),
trace.WithResource(resource.NewWithAttributes(
sdktrace.WithBatchTimeout(time.Second)),
sdktrace.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String("analyzer-lsp"),
)),
)
return traceProvider, nil
shutdownFuncs = append(shutdownFuncs, traceProvider.Shutdown)
return traceProvider, shutdownFuncs, nil
}

0 comments on commit 9ef0d77

Please sign in to comment.