diff options
-rw-r--r-- | app/services/prometheus/proxy_service.rb | 5 | ||||
-rw-r--r-- | spec/services/prometheus/proxy_service_spec.rb | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/app/services/prometheus/proxy_service.rb b/app/services/prometheus/proxy_service.rb index cadfe59b900..c5d2b84878b 100644 --- a/app/services/prometheus/proxy_service.rb +++ b/app/services/prometheus/proxy_service.rb @@ -3,6 +3,7 @@ module Prometheus class ProxyService < BaseService include ReactiveCaching + include Gitlab::Utils::StrongMemoize self.reactive_cache_key = ->(service) { service.cache_key } self.reactive_cache_lease_timeout = 30.seconds @@ -91,7 +92,9 @@ module Prometheus end def prometheus_adapter - @prometheus_adapter ||= @proxyable.prometheus_adapter + strong_memoize(:prometheus_adapter) do + @proxyable.prometheus_adapter + end end def prometheus_client_wrapper diff --git a/spec/services/prometheus/proxy_service_spec.rb b/spec/services/prometheus/proxy_service_spec.rb index 3e2eea12d95..4bdb20de4c9 100644 --- a/spec/services/prometheus/proxy_service_spec.rb +++ b/spec/services/prometheus/proxy_service_spec.rb @@ -48,7 +48,7 @@ describe Prometheus::ProxyService do allow(environment).to receive(:prometheus_adapter).and_return(nil) end - it 'should return error' do + it 'returns error' do expect(subject.execute).to eq( status: :error, message: 'No prometheus server found', @@ -63,7 +63,7 @@ describe Prometheus::ProxyService do allow(prometheus_adapter).to receive(:can_query?).and_return(false) end - it 'should return error' do + it 'returns error' do expect(subject.execute).to eq( status: :error, message: 'No prometheus server found', |