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-01 15:10:18 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-08-01 15:10:18 +0300
commit5e77663f2e4617be51e387b75872e1bcc8559f54 (patch)
tree5202cbdfa37409722a1e2593024b1e64e6cb7f90 /spec/lib/gitlab/sidekiq_middleware
parent1fb5861e0a89e67369a6ab36ffa6dd29d2445bff (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib/gitlab/sidekiq_middleware')
-rw-r--r--spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb147
1 files changed, 52 insertions, 95 deletions
diff --git a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
index bc69f232d9e..e674d37ece6 100644
--- a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
@@ -59,35 +59,6 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics do
described_class.initialize_process_metrics
end
- shared_examples "initializes sidekiq SLIs for the workers in the current process" do
- before do
- allow(Gitlab::SidekiqConfig)
- .to receive(:current_worker_queue_mappings)
- .and_return('MergeWorker' => 'merge', 'Ci::BuildFinishedWorker' => 'default')
- allow(completion_seconds_metric).to receive(:get)
- end
-
- it "initializes the SLIs with labels" do
- expect(Gitlab::Metrics::SidekiqSlis)
- .to receive(initialize_sli_method).with([
- {
- worker: 'MergeWorker',
- urgency: 'high',
- feature_category: 'source_code_management',
- external_dependencies: 'no'
- },
- {
- worker: 'Ci::BuildFinishedWorker',
- urgency: 'high',
- feature_category: 'continuous_integration',
- external_dependencies: 'no'
- }
- ])
-
- described_class.initialize_process_metrics
- end
- end
-
shared_examples "not initializing sidekiq SLIs" do
it 'does not initialize sidekiq SLIs' do
expect(Gitlab::Metrics::SidekiqSlis)
@@ -97,35 +68,38 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics do
end
end
- context 'initializing execution SLIs' do
- let(:initialize_sli_method) { :initialize_execution_slis! }
-
- context 'when sidekiq_execution_application_slis FF is turned on' do
- it_behaves_like "initializes sidekiq SLIs for the workers in the current process"
- end
-
- context 'when sidekiq_execution_application_slis FF is turned off' do
- before do
- stub_feature_flags(sidekiq_execution_application_slis: false)
- end
-
- it_behaves_like "not initializing sidekiq SLIs"
+ context 'initializing execution and queueing SLIs' do
+ before do
+ allow(Gitlab::SidekiqConfig)
+ .to receive(:current_worker_queue_mappings)
+ .and_return('MergeWorker' => 'merge', 'Ci::BuildFinishedWorker' => 'default')
+ allow(completion_seconds_metric).to receive(:get)
end
- end
- context 'initializing queueing SLIs' do
- let(:initialize_sli_method) { :initialize_queueing_slis! }
+ it "initializes the execution and queueing SLIs with labels" do
+ expected_labels = [
+ {
+ worker: 'MergeWorker',
+ urgency: 'high',
+ feature_category: 'source_code_management',
+ external_dependencies: 'no',
+ queue: 'merge'
+ },
+ {
+ worker: 'Ci::BuildFinishedWorker',
+ urgency: 'high',
+ feature_category: 'continuous_integration',
+ external_dependencies: 'no',
+ queue: 'default'
+ }
+ ]
- context 'when sidekiq_queueing_application_slis FF is turned on' do
- it_behaves_like "initializes sidekiq SLIs for the workers in the current process"
- end
-
- context 'when sidekiq_queueing_application_slis FF is turned off' do
- before do
- stub_feature_flags(sidekiq_queueing_application_slis: false)
- end
+ expect(Gitlab::Metrics::SidekiqSlis)
+ .to receive(:initialize_execution_slis!).with(expected_labels)
+ expect(Gitlab::Metrics::SidekiqSlis)
+ .to receive(:initialize_queueing_slis!).with(expected_labels)
- it_behaves_like "not initializing sidekiq SLIs"
+ described_class.initialize_process_metrics
end
end
@@ -192,20 +166,26 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics do
expect(redis_requests_total).to receive(:increment).with(labels_with_job_status, redis_calls)
expect(elasticsearch_requests_total).to receive(:increment).with(labels_with_job_status, elasticsearch_calls)
expect(sidekiq_mem_total_bytes).to receive(:set).with(labels_with_job_status, mem_total_bytes)
- expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_execution_apdex).with(labels.slice(:worker,
- :feature_category,
- :urgency,
- :external_dependencies), monotonic_time_duration)
- expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_execution_error).with(labels.slice(:worker,
- :feature_category,
- :urgency,
- :external_dependencies), false)
+ expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_execution_apdex)
+ .with(labels.slice(:worker,
+ :feature_category,
+ :urgency,
+ :external_dependencies,
+ :queue), monotonic_time_duration)
+ expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_execution_error)
+ .with(labels.slice(:worker,
+ :feature_category,
+ :urgency,
+ :external_dependencies,
+ :queue), false)
if queue_duration_for_job
- expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_queueing_apdex).with(labels.slice(:worker,
- :feature_category,
- :urgency,
- :external_dependencies), queue_duration_for_job)
+ expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_queueing_apdex)
+ .with(labels.slice(:worker,
+ :feature_category,
+ :urgency,
+ :external_dependencies,
+ :queue), queue_duration_for_job)
end
subject.call(worker, job, :test) { nil }
@@ -260,10 +240,12 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics do
it 'records sidekiq SLI error but does not record sidekiq SLI apdex' do
expect(failed_total_metric).to receive(:increment)
expect(Gitlab::Metrics::SidekiqSlis).not_to receive(:record_execution_apdex)
- expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_execution_error).with(labels.slice(:worker,
- :feature_category,
- :urgency,
- :external_dependencies), true)
+ expect(Gitlab::Metrics::SidekiqSlis).to receive(:record_execution_error)
+ .with(labels.slice(:worker,
+ :feature_category,
+ :urgency,
+ :external_dependencies,
+ :queue), true)
expect { subject.call(worker, job, :test) { raise StandardError, "Failed" } }.to raise_error(StandardError, "Failed")
end
@@ -288,31 +270,6 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics do
subject.call(worker, job, :test) { nil }
end
end
-
- context 'when sidekiq_execution_application_slis FF is turned off' do
- before do
- stub_feature_flags(sidekiq_execution_application_slis: false)
- end
-
- it 'does not call record_execution_apdex nor record_execution_error' do
- expect(Gitlab::Metrics::SidekiqSlis).not_to receive(:record_execution_apdex)
- expect(Gitlab::Metrics::SidekiqSlis).not_to receive(:record_execution_error)
-
- subject.call(worker, job, :test) { nil }
- end
- end
-
- context 'when sidekiq_queueing_application_slis FF is turned off' do
- before do
- stub_feature_flags(sidekiq_queueing_application_slis: false)
- end
-
- it 'does not call record_queueing_apdex' do
- expect(Gitlab::Metrics::SidekiqSlis).not_to receive(:record_queueing_apdex)
-
- subject.call(worker, job, :test) { nil }
- end
- end
end
end