Update histogram buckets for Banzai cacheless_render metrics
This commit is contained in:
parent
c228e5bcd1
commit
b5edb275f4
|
@ -160,16 +160,40 @@ def self.post_process(html, context)
|
|||
def self.cacheless_render(text, context = {})
|
||||
return text.to_s unless text.present?
|
||||
|
||||
Gitlab::Metrics.measure(:banzai_cacheless_render) do
|
||||
result = render_result(text, context)
|
||||
real_start = Gitlab::Metrics::System.monotonic_time
|
||||
cpu_start = Gitlab::Metrics::System.cpu_time
|
||||
|
||||
output = result[:output]
|
||||
if output.respond_to?(:to_html)
|
||||
output.to_html
|
||||
else
|
||||
output.to_s
|
||||
end
|
||||
end
|
||||
result = render_result(text, context)
|
||||
|
||||
output = result[:output]
|
||||
rendered = if output.respond_to?(:to_html)
|
||||
output.to_html
|
||||
else
|
||||
output.to_s
|
||||
end
|
||||
|
||||
cpu_duration_histogram.observe({}, Gitlab::Metrics::System.cpu_time - cpu_start)
|
||||
real_duration_histogram.observe({}, Gitlab::Metrics::System.monotonic_time - real_start)
|
||||
|
||||
rendered
|
||||
end
|
||||
|
||||
def self.real_duration_histogram
|
||||
Gitlab::Metrics.histogram(
|
||||
:gitlab_banzai_cacheless_render_real_duration_seconds,
|
||||
'Duration of Banzai pipeline rendering in real time',
|
||||
{},
|
||||
[0.01, 0.01, 0.05, 0.1, 0.5, 1, 2, 5, 10.0, 50, 100]
|
||||
)
|
||||
end
|
||||
|
||||
def self.cpu_duration_histogram
|
||||
Gitlab::Metrics.histogram(
|
||||
:gitlab_banzai_cacheless_render_cpu_duration_seconds,
|
||||
'Duration of Banzai pipeline rendering in cpu time',
|
||||
{},
|
||||
Gitlab::Metrics::EXECUTION_MEASUREMENT_BUCKETS
|
||||
)
|
||||
end
|
||||
|
||||
def self.full_cache_key(cache_key, pipeline_name)
|
||||
|
|
|
@ -84,6 +84,24 @@ def fake_cacheless_object
|
|||
end
|
||||
end
|
||||
|
||||
describe '#cacheless_render' do
|
||||
context 'without cache' do
|
||||
let(:object) { fake_object(fresh: false) }
|
||||
let(:histogram) { double('prometheus histogram') }
|
||||
|
||||
it 'returns cacheless render field' do
|
||||
allow(renderer).to receive(:render_result).and_return(output: 'test')
|
||||
allow(renderer).to receive(:real_duration_histogram).and_return(histogram)
|
||||
allow(renderer).to receive(:cpu_duration_histogram).and_return(histogram)
|
||||
|
||||
expect(renderer).to receive(:render_result).with('test', {})
|
||||
expect(histogram).to receive(:observe).twice
|
||||
|
||||
renderer.cacheless_render('test')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#post_process' do
|
||||
let(:context_options) { {} }
|
||||
let(:html) { 'Consequatur aperiam et nesciunt modi aut assumenda quo id. '}
|
||||
|
|
|
@ -280,7 +280,7 @@
|
|||
end
|
||||
|
||||
context 'metrics' do
|
||||
let(:histogram) { double(:histogram) }
|
||||
let(:histogram) { double(:histogram).as_null_object }
|
||||
let(:counter) { double('counter', increment: true) }
|
||||
|
||||
before do
|
||||
|
@ -315,7 +315,6 @@
|
|||
)
|
||||
|
||||
expect(counter).to receive(:increment)
|
||||
allow(histogram).to receive(:observe).with({ importer: :bitbucket_server_importer }, anything)
|
||||
|
||||
subject.execute
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue