diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-11-26 11:52:14 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-11-26 11:52:14 +0000 |
commit | 8587e09e17abf5ec9b4d8a7ff471d92e220fabb0 (patch) | |
tree | 54d5e48fbc4ed969120d25ba7d3491fbaa0580d2 | |
parent | 4aa611053b1e1ff72a9c79e29824e7383539c47e (diff) | |
parent | af798427a9cab86ad5f58c5519916d33d3ef1946 (diff) | |
download | gitlab-ce-8587e09e17abf5ec9b4d8a7ff471d92e220fabb0.tar.gz |
Merge branch '7527-ci-variables-are-not-parameterized-for-alerting-rules-ce' into 'master'
CE Backport: Extract Gitlab::Prometheus::QueryVariables
See merge request gitlab-org/gitlab-ce!23335
-rw-r--r-- | lib/gitlab/prometheus/queries/query_additional_metrics.rb | 7 | ||||
-rw-r--r-- | lib/gitlab/prometheus/query_variables.rb | 15 | ||||
-rw-r--r-- | spec/lib/gitlab/prometheus/query_variables_spec.rb | 33 |
3 files changed, 50 insertions, 5 deletions
diff --git a/lib/gitlab/prometheus/queries/query_additional_metrics.rb b/lib/gitlab/prometheus/queries/query_additional_metrics.rb index 43508af96a7..960d3536ec0 100644 --- a/lib/gitlab/prometheus/queries/query_additional_metrics.rb +++ b/lib/gitlab/prometheus/queries/query_additional_metrics.rb @@ -83,11 +83,8 @@ module Gitlab end def common_query_context(environment, timeframe_start:, timeframe_end:) - base_query_context(timeframe_start, timeframe_end).merge({ - ci_environment_slug: environment.slug, - kube_namespace: environment.deployment_platform&.actual_namespace || '', - environment_filter: %{container_name!="POD",environment="#{environment.slug}"} - }) + base_query_context(timeframe_start, timeframe_end) + .merge(QueryVariables.call(environment)) end def base_query_context(timeframe_start, timeframe_end) diff --git a/lib/gitlab/prometheus/query_variables.rb b/lib/gitlab/prometheus/query_variables.rb new file mode 100644 index 00000000000..1cc85d4b4a6 --- /dev/null +++ b/lib/gitlab/prometheus/query_variables.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Gitlab + module Prometheus + module QueryVariables + def self.call(environment) + { + ci_environment_slug: environment.slug, + kube_namespace: environment.deployment_platform&.actual_namespace || '', + environment_filter: %{container_name!="POD",environment="#{environment.slug}"} + } + end + end + end +end diff --git a/spec/lib/gitlab/prometheus/query_variables_spec.rb b/spec/lib/gitlab/prometheus/query_variables_spec.rb new file mode 100644 index 00000000000..78974cadb69 --- /dev/null +++ b/spec/lib/gitlab/prometheus/query_variables_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::Prometheus::QueryVariables do + describe '.call' do + set(:environment) { create(:environment) } + let(:slug) { environment.slug } + + subject { described_class.call(environment) } + + it { is_expected.to include(ci_environment_slug: slug) } + + it do + is_expected.to include(environment_filter: + %{container_name!="POD",environment="#{slug}"}) + end + + context 'without deployment platform' do + it { is_expected.to include(kube_namespace: '') } + end + + context 'with deplyoment platform' do + let(:kube_namespace) { environment.deployment_platform.actual_namespace } + + before do + create(:cluster, :provided_by_user, projects: [environment.project]) + end + + it { is_expected.to include(kube_namespace: kube_namespace) } + end + end +end |