zitadel/internal/tracing/http_handler.go

33 lines
651 B
Go
Raw Normal View History

2020-03-24 13:15:01 +00:00
package tracing
import (
"net/http"
"strings"
"go.opencensus.io/plugin/ochttp"
"go.opencensus.io/trace"
)
func TraceHandler(handler http.Handler, ignoredEndpoints ...string) http.Handler {
2020-03-24 13:15:01 +00:00
return &ochttp.Handler{
Handler: handler,
FormatSpanName: func(r *http.Request) string {
host := r.URL.Host
if host == "" {
host = r.Host
}
return host + r.URL.Path
},
StartOptions: trace.StartOptions{Sampler: Sampler()},
IsHealthEndpoint: func(r *http.Request) bool {
for _, endpoint := range ignoredEndpoints {
if strings.HasPrefix(r.URL.RequestURI(), endpoint) {
return true
}
}
return false
2020-03-24 13:15:01 +00:00
},
}
}