diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-27 21:09:17 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-27 21:09:17 +0000 |
commit | c77fda905a8619b756163c10a75171dc9cfe7084 (patch) | |
tree | ffa93b37bfe4b99ba0b8584c7a0bd1a4cd19772a /lib/gitlab/lograge | |
parent | e0fa0638a422c3e20d4423c9bb69d79afc9c7d3d (diff) | |
download | gitlab-ce-c77fda905a8619b756163c10a75171dc9cfe7084.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/lograge')
-rw-r--r-- | lib/gitlab/lograge/custom_options.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/gitlab/lograge/custom_options.rb b/lib/gitlab/lograge/custom_options.rb new file mode 100644 index 00000000000..5dbff7d9102 --- /dev/null +++ b/lib/gitlab/lograge/custom_options.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +module Gitlab + module Lograge + module CustomOptions + LIMITED_ARRAY_SENTINEL = { key: 'truncated', value: '...' }.freeze + IGNORE_PARAMS = Set.new(%w(controller action format)).freeze + + def self.call(event) + params = event + .payload[:params] + .each_with_object([]) { |(k, v), array| array << { key: k, value: v } unless IGNORE_PARAMS.include?(k) } + + payload = { + time: Time.now.utc.iso8601(3), + params: Gitlab::Utils::LogLimitedArray.log_limited_array(params, sentinel: LIMITED_ARRAY_SENTINEL), + remote_ip: event.payload[:remote_ip], + user_id: event.payload[:user_id], + username: event.payload[:username], + ua: event.payload[:ua], + queue_duration: event.payload[:queue_duration] + } + + ::Gitlab::InstrumentationHelper.add_instrumentation_data(payload) + + payload[:response] = event.payload[:response] if event.payload[:response] + payload[:etag_route] = event.payload[:etag_route] if event.payload[:etag_route] + payload[Labkit::Correlation::CorrelationId::LOG_KEY] = Labkit::Correlation::CorrelationId.current_id + + if cpu_s = Gitlab::Metrics::System.thread_cpu_duration(::Gitlab::RequestContext.instance.start_thread_cpu_time) + payload[:cpu_s] = cpu_s + end + + # https://github.com/roidrage/lograge#logging-errors--exceptions + exception = event.payload[:exception_object] + + ::Gitlab::ExceptionLogFormatter.format!(exception, payload) + + payload + end + end + end +end |