diff --git a/internal/worker/server.go b/internal/worker/server.go
index 78dfa1e..77f8f77 100644
--- a/internal/worker/server.go
+++ b/internal/worker/server.go
@@ -33,7 +33,6 @@
 	gcppropagator "github.com/GoogleCloudPlatform/opentelemetry-operations-go/propagator"
 	"go.opentelemetry.io/otel/propagation"
 	sdktrace "go.opentelemetry.io/otel/sdk/trace"
-	otrace "go.opentelemetry.io/otel/trace"
 	eotel "golang.org/x/exp/event/otel"
 )
 
@@ -114,25 +113,16 @@
 
 func (s *Server) handle(_ context.Context, pattern string, handler func(w http.ResponseWriter, r *http.Request) error) {
 	http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) {
-		log.Debugf(r.Context(), "#### SpanContext: %+v\n", otrace.SpanContextFromContext(r.Context()))
 		start := time.Now()
+		r = s.beforeRequest(r)
 		defer s.afterRequest()
-		traceID := r.Header.Get("X-Cloud-Trace-Context")
-		exporter := event.NewExporter(multiEventHandler{
-			log.NewGCPJSONHandler(os.Stderr, traceID),
-			s.traceHandler,
-		}, nil)
-		ctx := event.WithExporter(r.Context(), exporter)
-		ctx = s.propagator.Extract(ctx, propagation.HeaderCarrier(r.Header))
-		r = r.WithContext(ctx)
-
+		ctx := r.Context()
 		log.With("httpRequest", r).Infof(ctx, "starting %s", r.URL.Path)
 
 		w2 := &responseWriter{ResponseWriter: w}
 		if err := handler(w2, r); err != nil {
 			s.serveError(ctx, w2, r, err)
 		}
-
 		log.With(
 			"latency", time.Since(start),
 			"status", translateStatus(w2.status)).
@@ -140,6 +130,17 @@
 	})
 }
 
+func (s *Server) beforeRequest(r *http.Request) *http.Request {
+	traceID := r.Header.Get("X-Cloud-Trace-Context")
+	exporter := event.NewExporter(multiEventHandler{
+		log.NewGCPJSONHandler(os.Stderr, traceID),
+		s.traceHandler,
+	}, nil)
+	ctx := event.WithExporter(r.Context(), exporter)
+	ctx = s.propagator.Extract(ctx, propagation.HeaderCarrier(r.Header))
+	return r.WithContext(ctx)
+}
+
 type serverError struct {
 	status int   // HTTP status code
 	err    error // wrapped error
