Welcome to mirror list, hosted at ThFree Co, Russian Federation.

adapter_service.rb « prometheus « services « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4504d2ccfe6c15c5a36d4834781967feee8afd15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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