diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-20 11:43:02 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-20 11:43:02 +0300 |
commit | d9ab72d6080f594d0b3cae15f14b3ef2c6c638cb (patch) | |
tree | 2341ef426af70ad1e289c38036737e04b0aa5007 /app/workers/gitlab | |
parent | d6e514dd13db8947884cd58fe2a9c2a063400a9b (diff) |
Add latest changes from gitlab-org/gitlab@14-4-stable-eev14.4.0-rc42
Diffstat (limited to 'app/workers/gitlab')
4 files changed, 53 insertions, 18 deletions
diff --git a/app/workers/gitlab/github_import/stage/finish_import_worker.rb b/app/workers/gitlab/github_import/stage/finish_import_worker.rb index 006b79dbff4..5197c1e1e88 100644 --- a/app/workers/gitlab/github_import/stage/finish_import_worker.rb +++ b/app/workers/gitlab/github_import/stage/finish_import_worker.rb @@ -18,36 +18,28 @@ module Gitlab # project - An instance of Project. def import(_, project) + @project = project project.after_import - report_import_time(project) + report_import_time end - def report_import_time(project) - duration = Time.zone.now - project.created_at + private - histogram.observe({ project: project.full_path }, duration) - counter.increment + attr_reader :project + + def report_import_time + metrics.track_finished_import info( project.id, message: "GitHub project import finished", - duration_s: duration.round(2), + duration_s: metrics.duration.round(2), object_counts: ::Gitlab::GithubImport::ObjectCounter.summary(project) ) end - def histogram - @histogram ||= Gitlab::Metrics.histogram( - :github_importer_total_duration_seconds, - 'Total time spent importing GitHub projects, in seconds' - ) - end - - def counter - @counter ||= Gitlab::Metrics.counter( - :github_importer_imported_projects, - 'The number of imported GitHub projects' - ) + def metrics + @metrics ||= Gitlab::Import::Metrics.new(:github_importer, project) end end end diff --git a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb index 715c39caf42..cc6a2255160 100644 --- a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb @@ -31,6 +31,22 @@ module Gitlab project.import_state.refresh_jid_expiration ImportPullRequestsWorker.perform_async(project.id) + rescue StandardError => e + Gitlab::Import::ImportFailureService.track( + project_id: project.id, + error_source: self.class.name, + exception: e, + fail_import: abort_on_failure, + metrics: true + ) + + raise(e) + end + + private + + def abort_on_failure + true end end end diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb index d76d36531d1..71d0247bae0 100644 --- a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb @@ -27,6 +27,22 @@ module Gitlab { waiter.key => waiter.jobs_remaining }, :pull_requests_merged_by ) + rescue StandardError => e + Gitlab::Import::ImportFailureService.track( + project_id: project.id, + error_source: self.class.name, + exception: e, + fail_import: abort_on_failure, + metrics: true + ) + + raise(e) + end + + private + + def abort_on_failure + true end end end diff --git a/app/workers/gitlab/github_import/stage/import_repository_worker.rb b/app/workers/gitlab/github_import/stage/import_repository_worker.rb index 227b7c304b0..3e914cc7590 100644 --- a/app/workers/gitlab/github_import/stage/import_repository_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_repository_worker.rb @@ -33,6 +33,17 @@ module Gitlab counter.increment ImportBaseDataWorker.perform_async(project.id) + + rescue StandardError => e + Gitlab::Import::ImportFailureService.track( + project_id: project.id, + error_source: self.class.name, + exception: e, + fail_import: abort_on_failure, + metrics: true + ) + + raise(e) end def counter |