From 6132dc622e331ea94cd5abf26bcfc0102f9085f4 Mon Sep 17 00:00:00 2001 From: Afzal Ansari Date: Tue, 4 Jul 2023 17:22:52 +0000 Subject: [PATCH] rmvs otel propagator Signed-off-by: Afzal Ansari --- examples/hotrod/pkg/tracing/mux.go | 40 ++++----------------- examples/hotrod/services/frontend/server.go | 11 ++++++ 2 files changed, 18 insertions(+), 33 deletions(-) diff --git a/examples/hotrod/pkg/tracing/mux.go b/examples/hotrod/pkg/tracing/mux.go index cc3277cf4fd..5e41d4c3650 100644 --- a/examples/hotrod/pkg/tracing/mux.go +++ b/examples/hotrod/pkg/tracing/mux.go @@ -19,9 +19,6 @@ import ( "net/http" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" - "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/baggage" - "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" "go.uber.org/zap" @@ -31,52 +28,29 @@ import ( // NewServeMux creates a new TracedServeMux. func NewServeMux(tracer trace.TracerProvider, logger log.Factory) *TracedServeMux { return &TracedServeMux{ - mux: http.NewServeMux(), - tracer: tracer, - logger: logger, + mux: http.NewServeMux(), + tracer: tracer, + logger: logger, } } // TracedServeMux is a wrapper around http.ServeMux that instruments handlers for tracing. type TracedServeMux struct { - mux *http.ServeMux - tracer trace.TracerProvider - logger log.Factory - req http.Request + mux *http.ServeMux + tracer trace.TracerProvider + logger log.Factory } // Handle implements http.ServeMux#Handle, which is used to register new handler. func (tm *TracedServeMux) Handle(pattern string, handler http.Handler) { tm.logger.Bg().Debug("registering traced handler", zap.String("endpoint", pattern)) - // otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) - - ctx := tm.req.Context() - span := trace.SpanFromContext(ctx) - bag := baggage.FromContext(ctx) - for _, m := range bag.Members() { - if !span.SpanContext().HasSpanID() { - span.AddEvent("handling this...", trace.WithAttributes(attribute.Key(m.Key()).String(bag.Member(m.Value()).Value()))) - } - } - middleware := otelhttp.NewHandler(handler, pattern, otelhttp.WithTracerProvider(tm.tracer)) - tm.mux.Handle(pattern, otelBaggageExtractor(middleware)) + tm.mux.Handle(pattern, middleware) } // ServeHTTP implements http.ServeMux#ServeHTTP. func (tm *TracedServeMux) ServeHTTP(w http.ResponseWriter, r *http.Request) { tm.mux.ServeHTTP(w, r) } - -// Used with otelhttp.NewHandler above. -func otelBaggageExtractor(next http.Handler) http.Handler { - propagator := propagation.Baggage{} - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - carrier := propagation.HeaderCarrier(r.Header) - ctx := propagator.Extract(r.Context(), carrier) - r = r.WithContext(ctx) - next.ServeHTTP(w, r) - }) -} diff --git a/examples/hotrod/services/frontend/server.go b/examples/hotrod/services/frontend/server.go index a56be66a4d5..ad95798eacf 100644 --- a/examples/hotrod/services/frontend/server.go +++ b/examples/hotrod/services/frontend/server.go @@ -21,6 +21,8 @@ import ( "net/http" "path" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/baggage" "go.opentelemetry.io/otel/trace" "go.uber.org/zap" @@ -112,6 +114,15 @@ func (s *Server) dispatch(w http.ResponseWriter, r *http.Request) { return } + ctx = r.Context() + span := trace.SpanFromContext(ctx) + bag := baggage.FromContext(ctx) + for _, m := range bag.Members() { + if span.SpanContext().HasSpanID() { + span.AddEvent("Handling Dispatch", trace.WithAttributes(attribute.Key(m.Key()).String(m.Value()))) + } + } + s.writeResponse(response, w, r) }