diff options
Diffstat (limited to 'lib/gitlab/usage/metrics/instrumentations/issues_created_from_alerts_metric.rb')
-rw-r--r-- | lib/gitlab/usage/metrics/instrumentations/issues_created_from_alerts_metric.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/gitlab/usage/metrics/instrumentations/issues_created_from_alerts_metric.rb b/lib/gitlab/usage/metrics/instrumentations/issues_created_from_alerts_metric.rb new file mode 100644 index 00000000000..e430bc8eb71 --- /dev/null +++ b/lib/gitlab/usage/metrics/instrumentations/issues_created_from_alerts_metric.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module Gitlab + module Usage + module Metrics + module Instrumentations + class IssuesCreatedFromAlertsMetric < NumbersMetric + ISSUES_FROM_ALERTS_METRICS = [ + IssuesWithAlertManagementAlertsMetric, + IssuesWithPrometheusAlertEvents, + IssuesWithSelfManagedPrometheusAlertEvents + ].freeze + + operation :add + + data do |time_frame| + ISSUES_FROM_ALERTS_METRICS.map { |metric| metric.new(time_frame: time_frame).value } + end + + # overwriting instrumentation to generate the appropriate sql query + def instrumentation + 'SELECT ' + ISSUES_FROM_ALERTS_METRICS.map do |metric| + "(#{metric.new(time_frame: time_frame).instrumentation})" + end.join(' + ') + end + end + end + end + end +end |