summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb')
-rw-r--r--spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb52
1 files changed, 29 insertions, 23 deletions
diff --git a/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb b/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
index 61c690b85e9..97b70b5a7fc 100644
--- a/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
+++ b/spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb
@@ -53,18 +53,6 @@ RSpec.describe Gitlab::Metrics::RequestsRackMiddleware, :aggregate_failures, fea
subject.call(env)
end
- it 'does not track error rate when feature flag is disabled' do
- stub_feature_flags(gitlab_metrics_error_rate_sli: false)
-
- expect(described_class).to receive_message_chain(:http_requests_total, :increment).with(method: 'get', status: '200', feature_category: 'unknown')
- expect(described_class).to receive_message_chain(:http_request_duration_seconds, :observe).with({ method: 'get' }, a_positive_execution_time)
- expect(Gitlab::Metrics::RailsSlis.request_apdex).to receive(:increment)
- .with(labels: { feature_category: 'unknown', endpoint_id: 'unknown', request_urgency: :default }, success: true)
- expect(Gitlab::Metrics::RailsSlis.request_error_rate).not_to receive(:increment)
-
- subject.call(env)
- end
-
context 'request is a health check endpoint' do
['/-/liveness', '/-/liveness/', '/-/%6D%65%74%72%69%63%73'].each do |path|
context "when path is #{path}" do
@@ -116,17 +104,6 @@ RSpec.describe Gitlab::Metrics::RequestsRackMiddleware, :aggregate_failures, fea
subject.call(env)
end
-
- it 'does not track error rate when feature flag is disabled' do
- stub_feature_flags(gitlab_metrics_error_rate_sli: false)
-
- expect(described_class).to receive_message_chain(:http_requests_total, :increment).with(method: 'get', status: '500', feature_category: 'unknown')
- expect(described_class).not_to receive(:http_request_duration_seconds)
- expect(Gitlab::Metrics::RailsSlis).not_to receive(:request_apdex)
- expect(Gitlab::Metrics::RailsSlis.request_error_rate).not_to receive(:increment)
-
- subject.call(env)
- end
end
context '@app.call throws exception' do
@@ -415,6 +392,35 @@ RSpec.describe Gitlab::Metrics::RequestsRackMiddleware, :aggregate_failures, fea
end
end
+ context 'A request with urgency set on the env (from ETag-caching)' do
+ let(:env) do
+ { described_class::REQUEST_URGENCY_KEY => Gitlab::EndpointAttributes::Config::REQUEST_URGENCIES[:medium],
+ 'REQUEST_METHOD' => 'GET' }
+ end
+
+ it 'records the request with the correct urgency' do
+ allow(Gitlab::Metrics::System).to receive(:monotonic_time).and_return(100, 100.1)
+ expect(Gitlab::Metrics::RailsSlis.request_apdex).to receive(:increment).with(
+ labels: {
+ feature_category: 'unknown',
+ endpoint_id: 'unknown',
+ request_urgency: :medium
+ },
+ success: true
+ )
+ expect(Gitlab::Metrics::RailsSlis.request_error_rate).to receive(:increment).with(
+ labels: {
+ feature_category: 'unknown',
+ endpoint_id: 'unknown',
+ request_urgency: :medium
+ },
+ error: false
+ )
+
+ subject.call(env)
+ end
+ end
+
context 'An unknown request' do
let(:env) do
{ 'REQUEST_METHOD' => 'GET' }