From 6039c0cb0b975d90b4374310cafd28f37e50af70 Mon Sep 17 00:00:00 2001 From: Jack Rothrock Date: Wed, 28 Feb 2024 14:46:44 -0700 Subject: [PATCH] Check for headers --- .../layer_converters/request_queue_time_converter.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/scout_apm/layer_converters/request_queue_time_converter.rb b/lib/scout_apm/layer_converters/request_queue_time_converter.rb index 3b87dbfe..aa0fe00d 100644 --- a/lib/scout_apm/layer_converters/request_queue_time_converter.rb +++ b/lib/scout_apm/layer_converters/request_queue_time_converter.rb @@ -4,6 +4,8 @@ class RequestQueueTimeConverter < ConverterBase HEADERS = %w(X-Queue-Start X-Request-Start X-QUEUE-START X-REQUEST-START x-queue-start x-request-start) + WEBSOCKET_HEADERS = %w(Sec-WebSocket-Protocol Sec-WebSocket-Version Sec-WebSocket-Key) + def headers request.headers end @@ -16,6 +18,7 @@ def record! return unless headers @context.logger.debug headers.inspect + @context.logger.debug "Request over websocket? #{request_over_websocket?}" raw_start = locate_timestamp return unless raw_start @@ -40,6 +43,10 @@ def record! private + def request_over_websocket? + WEBSOCKET_HEADERS.any? { |header| headers[header] } + end + # Looks through the possible headers with this data, and extracts the raw # value of the header # Returns nil if not found