Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/concerns/request_payload_logger.rb')
-rw-r--r--app/controllers/concerns/request_payload_logger.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/controllers/concerns/request_payload_logger.rb b/app/controllers/concerns/request_payload_logger.rb
new file mode 100644
index 00000000000..b13164e5c57
--- /dev/null
+++ b/app/controllers/concerns/request_payload_logger.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+module RequestPayloadLogger
+ extend ActiveSupport::Concern
+ include Gitlab::Logging::CloudflareHelper
+
+ def append_info_to_payload(payload)
+ super
+
+ payload[:ua] = request.env["HTTP_USER_AGENT"]
+ payload[:remote_ip] = request.remote_ip
+ payload[Labkit::Correlation::CorrelationId::LOG_KEY] = Labkit::Correlation::CorrelationId.current_id
+
+ payload[:metadata] = Gitlab::ApplicationContext.current
+
+ if defined?(urgency)
+ payload[:request_urgency] = urgency&.name
+ payload[:target_duration_s] = urgency&.duration
+ end
+
+ logged_user = auth_user
+ if logged_user.present?
+ payload[:user_id] = logged_user.try(:id)
+ payload[:username] = logged_user.try(:username)
+ end
+
+ payload[:queue_duration_s] = request.env[::Gitlab::Middleware::RailsQueueDuration::GITLAB_RAILS_QUEUE_DURATION_KEY]
+ payload[:response_bytes] = response.body_parts.sum(&:bytesize) if Feature.enabled?(:log_response_length)
+
+ store_cloudflare_headers!(payload, request)
+ end
+end