diff options
Diffstat (limited to 'app/services/projects/overwrite_project_service.rb')
-rw-r--r-- | app/services/projects/overwrite_project_service.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/services/projects/overwrite_project_service.rb b/app/services/projects/overwrite_project_service.rb index 6be3b1b5a6f..f35370c427f 100644 --- a/app/services/projects/overwrite_project_service.rb +++ b/app/services/projects/overwrite_project_service.rb @@ -5,6 +5,8 @@ module Projects def execute(source_project) return unless source_project && source_project.namespace == @project.namespace + start_time = ::Gitlab::Metrics::System.monotonic_time + Project.transaction do move_before_destroy_relationships(source_project) # Reset is required in order to get the proper @@ -25,10 +27,25 @@ module Projects else raise end + + ensure + track_service(start_time, source_project, e) end private + def track_service(start_time, source_project, exception) + return if ::Feature.disabled?(:project_overwrite_service_tracking, source_project, default_enabled: :yaml) + + duration = ::Gitlab::Metrics::System.monotonic_time - start_time + + Gitlab::AppJsonLogger.info(class: self.class.name, + namespace_id: source_project.namespace.id, + project_id: source_project.id, + duration_s: duration.to_f, + error: exception.class.name) + end + def move_before_destroy_relationships(source_project) options = { remove_remaining_elements: false } |