Class: Multiplayer::RequestMiddleware
- Inherits:
-
Middleware
- Object
- Middleware
- Multiplayer::RequestMiddleware
- Defined in:
- lib/multiplayer/middleware/request_middleware.rb
Instance Attribute Summary
Attributes inherited from Middleware
#headers_to_mask, #mask_deb_span_payload, #max_payload_size, #schemify_doc_span_payload
Instance Method Summary collapse
Methods inherited from Middleware
Constructor Details
This class inherits a constructor from Multiplayer::Middleware
Instance Method Details
#call(env) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/multiplayer/middleware/request_middleware.rb', line 3 def call(env) current_span = OpenTelemetry::Trace.current_span trace_id = current_span.context.trace_id.unpack1("H*") request = Rack::Request.new(env) request_headers = extract_request_headers(env) masked_headers = mask_headers(request_headers, @headers_to_mask) current_span.set_attribute(ATTR_MULTIPLAYER_HTTP_REQUEST_HEADERS, masked_headers.to_json) if request_headers.key?("content-type") == "application/json" request_body = (extract_request_body(request)).dup if trace_id.start_with?(MULTIPLAYER_TRACE_DEBUG_PREFIX) && @mask_deb_span_payload request_body = mask_body(request_body) elsif trace_id.start_with?(MULTIPLAYER_TRACE_DOC_PREFIX) || @schemify_doc_span_payload request_body = schemify(request_body) elsif !request_body.is_a?(String) request_body = JSON.generate(request_body) end request_body = truncate_if_needed(request_body) current_span.set_attribute(ATTR_MULTIPLAYER_HTTP_REQUEST_BODY, request_body.is_a?(String) ? request_body : request_body.to_json) end @app.call(env) end |