open-telemetry / opentelemetry-go-contrib

Collection of extensions for OpenTelemetry-Go.
https://opentelemetry.io/
Apache License 2.0
1.07k stars 505 forks source link

otelmux middleware doesn't support websockets #5402

Open koschos opened 2 months ago

koschos commented 2 months ago

Description

otelmux middleware doesn't support websockets.

Environment

Steps To Reproduce

  1. Use this middleware with websockets
  2. Run ...
  3. See error Unexpected error upgrading connection, error type assertion failed ResponseWriter not a Hijacker

Expected behavior

Middleware supports websockets

The method below must be added in the file mux.go

func (h *recordingResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
    if hijacker, ok := h.writer.(http.Hijacker); ok {
        return hijacker.Hijack()
    }
    return nil, nil, fmt.Errorf("underlying ResponseWriter does not support hijacking")
}
rehanpfmr commented 2 weeks ago

@dmathieu Can this be assigned to me?

rehanpfmr commented 2 weeks ago

@dmathieu Thanks.