Commit 10c13f05 authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch 'fp-lower-frequency-trace-update' into 'master'

Lower the frequency of which job trace updates occur [RUN ALL RSPEC] [RUN AS-IF-FOSS]

See merge request gitlab-org/gitlab!56743
parents ce053017 9a4b5e2e
---
name: ci_lower_frequency_trace_update
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56743
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/324768
milestone: '13.11'
type: development
group: group::continuous integration
default_enabled: false
......@@ -11,7 +11,8 @@ module Gitlab
LOCK_SLEEP = 0.001.seconds
WATCH_FLAG_TTL = 10.seconds
UPDATE_FREQUENCY_DEFAULT = 30.seconds
LEGACY_UPDATE_FREQUENCY_DEFAULT = 30.seconds
UPDATE_FREQUENCY_DEFAULT = 60.seconds
UPDATE_FREQUENCY_WHEN_BEING_WATCHED = 3.seconds
ArchiveError = Class.new(StandardError)
......@@ -114,7 +115,15 @@ module Gitlab
end
def update_interval
being_watched? ? UPDATE_FREQUENCY_WHEN_BEING_WATCHED : UPDATE_FREQUENCY_DEFAULT
if being_watched?
UPDATE_FREQUENCY_WHEN_BEING_WATCHED
else
if Feature.enabled?(:ci_lower_frequency_trace_update, job.project, default_enabled: :yaml)
UPDATE_FREQUENCY_DEFAULT
else
LEGACY_UPDATE_FREQUENCY_DEFAULT
end
end
end
def being_watched!
......
......@@ -63,8 +63,14 @@ RSpec.describe Gitlab::Ci::Trace, :clean_gitlab_redis_shared_state, factory_defa
describe '#update_interval' do
context 'it is not being watched' do
it 'returns 30 seconds' do
expect(trace.update_interval).to eq(30.seconds)
it { expect(trace.update_interval).to eq(60.seconds) }
context 'when feature flag ci_lower_frequency_trace_update is disabled' do
before do
stub_feature_flags(ci_lower_frequency_trace_update: false)
end
it { expect(trace.update_interval).to eq(30.seconds) }
end
end
......
......@@ -210,11 +210,24 @@ RSpec.describe API::Ci::Runner, :clean_gitlab_redis_shared_state do
end
context 'when build trace is not being watched' do
it 'returns X-GitLab-Trace-Update-Interval as 30' do
it 'returns the interval in X-GitLab-Trace-Update-Interval' do
patch_the_trace
expect(response).to have_gitlab_http_status(:accepted)
expect(response.header['X-GitLab-Trace-Update-Interval']).to eq('30')
expect(response.header['X-GitLab-Trace-Update-Interval']).to eq('60')
end
context 'when ci_lower_frequency_trace_update feature flag is disabled' do
before do
stub_feature_flags(ci_lower_frequency_trace_update: false)
end
it 'returns the legacy interval in X-GitLab-Trace-Update-Interval' do
patch_the_trace
expect(response).to have_gitlab_http_status(:accepted)
expect(response.header['X-GitLab-Trace-Update-Interval']).to eq('30')
end
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment