diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-03-06 16:31:04 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2018-03-06 16:31:04 +0000 |
commit | 348c16e7d36435b3c3c5577d622f173278c49814 (patch) | |
tree | b55c97195105ac5f8854e0f448fa8a7b4dddf3bd /app/services/prometheus/adapter_service.rb | |
parent | 9a8f5a2b605f85ace3c81a32cf1855f79cabde43 (diff) | |
parent | 4ff8db0d2e8371dfdae2ddef8a8595c1ef80c3d4 (diff) | |
download | gitlab-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.rb | 36 |
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 |