summaryrefslogtreecommitdiff
path: root/app/services/prometheus/adapter_service.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2018-03-06 16:31:04 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2018-03-06 16:31:04 +0000
commit348c16e7d36435b3c3c5577d622f173278c49814 (patch)
treeb55c97195105ac5f8854e0f448fa8a7b4dddf3bd /app/services/prometheus/adapter_service.rb
parent9a8f5a2b605f85ace3c81a32cf1855f79cabde43 (diff)
parent4ff8db0d2e8371dfdae2ddef8a8595c1ef80c3d4 (diff)
downloadgitlab-ce-348c16e7d36435b3c3c5577d622f173278c49814.tar.gz
Merge branch '5029-support-cluster-metrics-ce' into 'master'
Refactoring changes to support cluster metrics in EE Closes #42820 See merge request gitlab-org/gitlab-ce!17336
Diffstat (limited to 'app/services/prometheus/adapter_service.rb')
-rw-r--r--app/services/prometheus/adapter_service.rb36
1 files changed, 36 insertions, 0 deletions
diff --git a/app/services/prometheus/adapter_service.rb b/app/services/prometheus/adapter_service.rb
new file mode 100644
index 00000000000..4504d2ccfe6
--- /dev/null
+++ b/app/services/prometheus/adapter_service.rb
@@ -0,0 +1,36 @@
+module Prometheus
+ class AdapterService
+ def initialize(project, deployment_platform = nil)
+ @project = project
+
+ @deployment_platform = if deployment_platform
+ deployment_platform
+ else
+ project.deployment_platform
+ end
+ end
+
+ attr_reader :deployment_platform, :project
+
+ def prometheus_adapter
+ @prometheus_adapter ||= if service_prometheus_adapter.can_query?
+ service_prometheus_adapter
+ else
+ cluster_prometheus_adapter
+ end
+ end
+
+ def service_prometheus_adapter
+ project.find_or_initialize_service('prometheus')
+ end
+
+ def cluster_prometheus_adapter
+ return unless deployment_platform.respond_to?(:cluster)
+
+ cluster = deployment_platform.cluster
+ return unless cluster.application_prometheus&.installed?
+
+ cluster.application_prometheus
+ end
+ end
+end