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>2023-08-09 21:12:44 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-08-09 21:12:44 +0300
commit26dd7eec86080ea304eae663500455b96bbcfa1b (patch)
tree7ed2608f60ce7805a9ead423d747b9439476bbe8
parent0eb9c236888a832407bf0369ce188c4060a35c76 (diff)
Add latest changes from gitlab-org/gitlab@16-2-stable-ee
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--config/feature_flags/development/log_response_length.yml8
-rw-r--r--lib/gitlab/grape_logging/loggers/response_logger.rb2
-rw-r--r--lib/gitlab/lograge/custom_options.rb4
-rw-r--r--spec/controllers/application_controller_spec.rb14
-rw-r--r--spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb8
-rw-r--r--spec/lib/gitlab/lograge/custom_options_spec.rb10
7 files changed, 47 insertions, 1 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 8588273a41f..08e4f4956df 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -181,7 +181,7 @@ class ApplicationController < ActionController::Base
payload[:queue_duration_s] = request.env[::Gitlab::Middleware::RailsQueueDuration::GITLAB_RAILS_QUEUE_DURATION_KEY]
- payload[:response_bytes] = response.body_parts.sum(&:bytesize)
+ payload[:response_bytes] = response.body_parts.sum(&:bytesize) if Feature.enabled?(:log_response_length)
store_cloudflare_headers!(payload, request)
end
diff --git a/config/feature_flags/development/log_response_length.yml b/config/feature_flags/development/log_response_length.yml
new file mode 100644
index 00000000000..689a262bec1
--- /dev/null
+++ b/config/feature_flags/development/log_response_length.yml
@@ -0,0 +1,8 @@
+---
+name: log_response_length
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91448
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/366854
+milestone: '15.3'
+type: development
+group: group::tenant scale
+default_enabled: false
diff --git a/lib/gitlab/grape_logging/loggers/response_logger.rb b/lib/gitlab/grape_logging/loggers/response_logger.rb
index b87566a62b0..767c282d62e 100644
--- a/lib/gitlab/grape_logging/loggers/response_logger.rb
+++ b/lib/gitlab/grape_logging/loggers/response_logger.rb
@@ -5,6 +5,8 @@ module Gitlab
module Loggers
class ResponseLogger < ::GrapeLogging::Loggers::Base
def parameters(_, response)
+ return {} unless Feature.enabled?(:log_response_length)
+
response_bytes = 0
case response
diff --git a/lib/gitlab/lograge/custom_options.rb b/lib/gitlab/lograge/custom_options.rb
index 9abad44b10e..f8ec58cf217 100644
--- a/lib/gitlab/lograge/custom_options.rb
+++ b/lib/gitlab/lograge/custom_options.rb
@@ -36,6 +36,10 @@ module Gitlab
payload[:feature_flag_states] = Feature.logged_states.map { |key, state| "#{key}:#{state ? 1 : 0}" }
end
+ if Feature.disabled?(:log_response_length)
+ payload.delete(:response_bytes)
+ end
+
payload
end
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index 0beaae7a2d7..58125f3a831 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -567,6 +567,20 @@ RSpec.describe ApplicationController, feature_category: :shared do
expect(controller.last_payload[:response_bytes]).to eq('authenticated'.bytesize)
end
+
+ context 'with log_response_length disabled' do
+ before do
+ stub_feature_flags(log_response_length: false)
+ end
+
+ it 'logs response length' do
+ sign_in user
+
+ get :index
+
+ expect(controller.last_payload).not_to include(:response_bytes)
+ end
+ end
end
describe '#access_denied' do
diff --git a/spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb b/spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb
index 1bf97e87708..449096a6faf 100644
--- a/spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb
+++ b/spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb
@@ -20,6 +20,14 @@ RSpec.describe Gitlab::GrapeLogging::Loggers::ResponseLogger do
it { expect(subject).to eq({ response_bytes: response1.bytesize + response2.bytesize }) }
end
+ context 'with log_response_length disabled' do
+ before do
+ stub_feature_flags(log_response_length: false)
+ end
+
+ it { expect(subject).to eq({}) }
+ end
+
context 'when response is a String' do
let(:response) { response1 }
diff --git a/spec/lib/gitlab/lograge/custom_options_spec.rb b/spec/lib/gitlab/lograge/custom_options_spec.rb
index 3460a8fb080..090b79c5d3c 100644
--- a/spec/lib/gitlab/lograge/custom_options_spec.rb
+++ b/spec/lib/gitlab/lograge/custom_options_spec.rb
@@ -60,6 +60,16 @@ RSpec.describe Gitlab::Lograge::CustomOptions do
expect(subject[:response_bytes]).to eq(1234)
end
+ context 'with log_response_length disabled' do
+ before do
+ stub_feature_flags(log_response_length: false)
+ end
+
+ it 'does not add the response length' do
+ expect(subject).not_to include(:response_bytes)
+ end
+ end
+
it 'adds Cloudflare headers' do
expect(subject[:cf_ray]).to eq(event.payload[:cf_ray])
expect(subject[:cf_request_id]).to eq(event.payload[:cf_request_id])