Class: Gitlab::Memory::ReportsUploader
- Inherits:
-
Object
- Object
- Gitlab::Memory::ReportsUploader
- Defined in:
- lib/gitlab/memory/reports_uploader.rb
Instance Method Summary collapse
-
#initialize(gcs_key:, gcs_project:, gcs_bucket:, logger:) ⇒ ReportsUploader
constructor
A new instance of ReportsUploader.
- #upload(path) ⇒ Object
Constructor Details
#initialize(gcs_key:, gcs_project:, gcs_bucket:, logger:) ⇒ ReportsUploader
Returns a new instance of ReportsUploader.
8 9 10 11 12 |
# File 'lib/gitlab/memory/reports_uploader.rb', line 8 def initialize(gcs_key:, gcs_project:, gcs_bucket:, logger:) @gcs_bucket = gcs_bucket @fog = Fog::Storage::Google.new(google_project: gcs_project, google_json_key_location: gcs_key) @logger = logger end |
Instance Method Details
#upload(path) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/gitlab/memory/reports_uploader.rb', line 14 def upload(path) log_upload_requested(path) start_monotonic_time = Gitlab::Metrics::System.monotonic_time File.open(path.to_s) { |file| fog.put_object(gcs_bucket, File.basename(path), file) } duration_s = Gitlab::Metrics::System.monotonic_time - start_monotonic_time log_upload_success(path, duration_s) rescue StandardError, Errno::ENOENT => error log_exception(error) end |