класс ActionDispatch::RequestId
Обеспечивает уникальный идентификатор запроса, доступный в переменной среды action_dispatch.request_id (который затем доступен через ActionDispatch::Request#uuid) и отправляет тот же идентификатор клиенту через заголовок X-Request-Id.
Уникальный идентификатор запроса основан либо на заголовке X-Request-Id в запросе, который обычно генерируется брандмауэром, балансировщиком нагрузки или веб-сервером, либо, если этот заголовок недоступен, на случайном uuid. Если заголовок принимается извне, он очищается, ограничиваясь максимальной длиной 255 символов и содержанием только букв, цифр и тире.
Уникальный идентификатор запроса можно использовать для отслеживания запроса от начала до конца, и он обычно включается в файлы журналов с нескольких уровней стека.
Общедоступные методы класса
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 15 def initialize(app) @app = app end
Общедоступные методы экземпляра
# File actionpack/lib/action_dispatch/middleware/request_id.rb, line 19
def call(env)
env["action_dispatch.request_id"] = external_request_id(env) || internal_request_id
@app.call(env).tap { |_status, headers, _body| headers["X-Request-Id"] = env["action_dispatch.request_id"] }
end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.