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