Class: Gitlab::Import::Metrics

Inherits:
Object
  • Object
show all
Includes:
Utils::UsageData
Defined in:
lib/gitlab/import/metrics.rb

Constant Summary collapse

IMPORT_DURATION_BUCKETS =
[0.5, 1, 3, 5, 10, 60, 120, 240, 360, 720, 1440].freeze

Constants included from Utils::UsageData

Utils::UsageData::DISTRIBUTED_HLL_FALLBACK, Utils::UsageData::FALLBACK, Utils::UsageData::HISTOGRAM_FALLBACK, Utils::UsageData::MAX_BUCKET_SIZE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils::UsageData

#add, #add_metric, #alt_usage_data, #average, #count, #distinct_count, #estimate_batch_distinct_count, #histogram, #maximum_id, #measure_duration, #minimum_id, #redis_usage_data, #sum, #track_usage_event, #with_finished_at, #with_metadata, #with_prometheus_client

Constructor Details

#initialize(importer, project) ⇒ Metrics

Returns a new instance of Metrics.



12
13
14
15
# File 'lib/gitlab/import/metrics.rb', line 12

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

Instance Attribute Details

#durationObject (readonly)

Returns the value of attribute duration.



10
11
12
# File 'lib/gitlab/import/metrics.rb', line 10

def duration
  @duration
end

#importerObject (readonly)

Returns the value of attribute importer.



10
11
12
# File 'lib/gitlab/import/metrics.rb', line 10

def importer
  @importer
end

Instance Method Details

#issues_counterObject



45
46
47
48
49
50
# File 'lib/gitlab/import/metrics.rb', line 45

def issues_counter
  @issues_counter ||= Gitlab::Metrics.counter(
    :"#{importer}_imported_issues_total",
    'The number of imported issues'
  )
end

#merge_requests_counterObject



52
53
54
55
56
57
# File 'lib/gitlab/import/metrics.rb', line 52

def merge_requests_counter
  @merge_requests_counter ||= Gitlab::Metrics.counter(
    :"#{importer}_imported_merge_requests_total",
    'The number of imported merge (pull) requests'
  )
end

#track_canceled_importObject



38
39
40
41
42
43
# File 'lib/gitlab/import/metrics.rb', line 38

def track_canceled_import
  return unless project.github_import?

  track_usage_event(:github_import_project_cancelled, project.id)
  track_import_state('github', 'Import::GithubService')
end

#track_failed_importObject



31
32
33
34
35
36
# File 'lib/gitlab/import/metrics.rb', line 31

def track_failed_import
  return unless project.github_import?

  track_usage_event(:github_import_project_failure, project.id)
  track_import_state('github', 'Import::GithubService')
end

#track_finished_importObject



23
24
25
26
27
28
29
# File 'lib/gitlab/import/metrics.rb', line 23

def track_finished_import
  @duration = Time.zone.now - project.created_at

  observe_histogram
  projects_counter.increment
  track_finish_metric
end

#track_start_importObject



17
18
19
20
21
# File 'lib/gitlab/import/metrics.rb', line 17

def track_start_import
  return unless project.github_import?

  track_usage_event(:github_import_project_start, project.id)
end