MCPcopy Create free account
hub / github.com/NVIDIA/nvcf / telemetryMiddleware

Function telemetryMiddleware

src/libraries/go/lib/pkg/core/httpservice.go:447–473  ·  view source on GitHub ↗
(serviceName string, excludedRoutes map[string]interface{})

Source from the content-addressed store, hash-verified

445 })
446 return rrw
447}
448
449func putRRW(rrw *recordingResponseWriter) {
450 rrw.writer = nil
451 rrwPool.Put(rrw)
452}
453
454func telemetryMiddleware(serviceName string, excludedRoutes map[string]interface{}) mux.MiddlewareFunc {
455 otelMW := otelmux.Middleware(serviceName)
456 return func(next http.Handler) http.Handler {
457 return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
458 route := mux.CurrentRoute(r)
459 var spanName string
460 if route != nil {
461 var err error
462 spanName, err = route.GetPathTemplate()
463 if err != nil {
464 spanName, err = route.GetPathRegexp()
465 if err != nil {
466 spanName = ""
467 }
468 }
469 }
470
471 // Check if the route is excluded if so skip the otel middleware
472 if _, ok := excludedRoutes[spanName]; ok {
473 next.ServeHTTP(rw, r)
474 } else {
475 // route is not excluded call the httpmiddleware
476 otelMW(next).ServeHTTP(rw, r)

Callers 1

NewHTTPMiddlewareFunction · 0.85

Calls 1

ServeHTTPMethod · 0.45

Tested by

no test coverage detected