Class: Ci::PrometheusMetrics::ObserveHistogramsService

Inherits:
Object
  • Object
show all
Defined in:
app/services/ci/prometheus_metrics/observe_histograms_service.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, params) ⇒ ObserveHistogramsService

Returns a new instance of ObserveHistogramsService.



22
23
24
25
# File 'app/services/ci/prometheus_metrics/observe_histograms_service.rb', line 22

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

Class Method Details

.available_histogramsObject



7
8
9
10
11
12
13
# File 'app/services/ci/prometheus_metrics/observe_histograms_service.rb', line 7

def available_histograms
  @available_histograms ||= [
    histogram(:pipeline_graph_link_calculation_duration_seconds, 'Total time spent calculating links, in seconds', {}, [0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.8, 1, 2]),
    histogram(:pipeline_graph_links_total, 'Number of links per graph', {}, [1, 5, 10, 25, 50, 100, 200]),
    histogram(:pipeline_graph_links_per_job_ratio, 'Ratio of links to job per graph', {}, [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1])
  ].to_h
end

Instance Method Details

#executeObject



27
28
29
30
31
32
33
# File 'app/services/ci/prometheus_metrics/observe_histograms_service.rb', line 27

def execute
  params
    .fetch(:histograms, [])
    .each { |data| observe(data) }

  ServiceResponse.success(http_status: :created)
end