summaryrefslogtreecommitdiff
path: root/app/services/prometheus/adapter_service.rb
blob: 5e8357a83f67297da03d90d1a66b29c1884d4b1d (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
# frozen_string_literal: true

module Prometheus
  class AdapterService
    attr_reader :project, :cluster

    def initialize(project, cluster)
      @project = project
      @cluster = cluster
    end

    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
      application = cluster&.application_prometheus

      application if application&.available?
    end
  end
end