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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-28 00:09:17 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-28 00:09:17 +0300
commitc77fda905a8619b756163c10a75171dc9cfe7084 (patch)
treeffa93b37bfe4b99ba0b8584c7a0bd1a4cd19772a /lib/gitlab/lograge
parente0fa0638a422c3e20d4423c9bb69d79afc9c7d3d (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/lograge')
-rw-r--r--lib/gitlab/lograge/custom_options.rb43
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