1# frozen_string_literal: true 2 3module Prometheus 4 class CreateDefaultAlertsWorker 5 include ApplicationWorker 6 7 data_consistency :always 8 9 sidekiq_options retry: 3 10 11 feature_category :incident_management 12 urgency :high 13 idempotent! 14 15 def perform(project_id) 16 project = Project.find_by_id(project_id) 17 18 return unless project 19 20 result = ::Prometheus::CreateDefaultAlertsService.new(project: project).execute 21 22 log_info(result.message) if result.error? 23 end 24 25 private 26 27 def log_info(message) 28 logger.info(structured_payload(message: message)) 29 end 30 end 31end 32