Module: RequestPayloadLogger

Extended by:
ActiveSupport::Concern
Includes:
Gitlab::Logging::CloudflareHelper, Gitlab::Logging::JsonMetadataHelper
Included in:
ApplicationController, Oauth::AuthorizationsController, Oauth::TokensController
Defined in:
app/controllers/concerns/request_payload_logger.rb

Constant Summary

Constants included from Gitlab::Logging::JsonMetadataHelper

Gitlab::Logging::JsonMetadataHelper::JSON_METADATA_HEADERS

Constants included from Gitlab::Logging::CloudflareHelper

Gitlab::Logging::CloudflareHelper::CLOUDFLARE_CUSTOM_HEADERS

Instance Method Summary collapse

Methods included from Gitlab::Logging::JsonMetadataHelper

#store_json_metadata_headers!

Methods included from Gitlab::Logging::CloudflareHelper

#store_cloudflare_headers!, #valid_cloudflare_header?

Instance Method Details

#append_info_to_payload(payload) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/concerns/request_payload_logger.rb', line 8

def append_info_to_payload(payload)
  super

  payload[:ua] = request.env["HTTP_USER_AGENT"]
  payload[:remote_ip] = request.remote_ip
  payload[Labkit::Fields::CORRELATION_ID] = 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]

  store_cloudflare_headers!(payload, request)
  (payload, request)
end