summaryrefslogtreecommitdiff
path: root/lib/gitlab/usage_data.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/usage_data.rb')
-rw-r--r--lib/gitlab/usage_data.rb18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb
index 24f6cc725f6..c105288fff0 100644
--- a/lib/gitlab/usage_data.rb
+++ b/lib/gitlab/usage_data.rb
@@ -344,6 +344,11 @@ module Gitlab
def jira_usage
# Jira Cloud does not support custom domains as per https://jira.atlassian.com/browse/CLOUD-6999
# so we can just check for subdomains of atlassian.net
+ jira_integration_data_hash = jira_integration_data
+ if jira_integration_data_hash.nil?
+ return { projects_jira_server_active: FALLBACK, projects_jira_cloud_active: FALLBACK }
+ end
+
results = {
projects_jira_server_active: 0,
projects_jira_cloud_active: 0,
@@ -351,14 +356,10 @@ module Gitlab
projects_jira_dvcs_server_active: count(ProjectFeatureUsage.with_jira_dvcs_integration_enabled(cloud: false))
}
- jira_integration_data_hash = jira_integration_data
results[:projects_jira_server_active] = jira_integration_data_hash[:projects_jira_server_active]
results[:projects_jira_cloud_active] = jira_integration_data_hash[:projects_jira_cloud_active]
results
- rescue ActiveRecord::StatementInvalid => error
- Gitlab::ErrorTracking.track_and_raise_for_dev_exception(error)
- { projects_jira_server_active: FALLBACK, projects_jira_cloud_active: FALLBACK }
end
# rubocop: enable CodeReuse/ActiveRecord
@@ -602,13 +603,18 @@ module Gitlab
}
end
- def with_duration
+ def with_metadata
result = nil
+ error = nil
+
duration = Benchmark.realtime do
result = yield
+ rescue StandardError => e
+ error = e
+ Gitlab::ErrorTracking.track_and_raise_for_dev_exception(error)
end
- ::Gitlab::Usage::ServicePing::LegacyMetricTimingDecorator.new(result, duration)
+ ::Gitlab::Usage::ServicePing::LegacyMetricMetadataDecorator.new(result, duration, error: error)
end
private