summaryrefslogtreecommitdiff
path: root/app/controllers/projects/settings/operations_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects/settings/operations_controller.rb')
-rw-r--r--app/controllers/projects/settings/operations_controller.rb37
1 files changed, 27 insertions, 10 deletions
diff --git a/app/controllers/projects/settings/operations_controller.rb b/app/controllers/projects/settings/operations_controller.rb
index 781b850ddfe..c407b15e29f 100644
--- a/app/controllers/projects/settings/operations_controller.rb
+++ b/app/controllers/projects/settings/operations_controller.rb
@@ -9,6 +9,9 @@ module Projects
respond_to :json, only: [:reset_alerting_token, :reset_pagerduty_token]
helper_method :error_tracking_setting
+ helper_method :tracing_setting
+
+ feature_category :incident_management
def update
result = ::Projects::Operations::UpdateService.new(project, current_user, update_params).execute
@@ -17,15 +20,6 @@ module Projects
render_update_response(result)
end
- # overridden in EE
- def track_events(result)
- if result[:status] == :success
- ::Gitlab::Tracking::IncidentManagement.track_from_params(
- update_params[:incident_management_setting_attributes]
- )
- end
- end
-
def reset_alerting_token
result = ::Projects::Operations::UpdateService
.new(project, current_user, alerting_params)
@@ -55,6 +49,24 @@ module Projects
private
+ def track_events(result)
+ if result[:status] == :success
+ ::Gitlab::Tracking::IncidentManagement.track_from_params(
+ update_params[:incident_management_setting_attributes]
+ )
+ track_tracing_external_url
+ end
+ end
+
+ def track_tracing_external_url
+ external_url_previous_change = project&.tracing_setting&.external_url_previous_change
+
+ return unless external_url_previous_change
+ return unless external_url_previous_change[0].blank? && external_url_previous_change[1].present?
+
+ ::Gitlab::Tracking.event('project:operations:tracing', 'external_url_populated')
+ end
+
def alerting_params
{ alerting_setting_attributes: { regenerate_token: true } }
end
@@ -106,6 +118,10 @@ module Projects
project.build_error_tracking_setting
end
+ def tracing_setting
+ @tracing_setting ||= project.tracing_setting || project.build_tracing_setting
+ end
+
def update_params
params.require(:project).permit(permitted_project_params)
end
@@ -124,7 +140,8 @@ module Projects
project: [:slug, :name, :organization_slug, :organization_name]
],
- grafana_integration_attributes: [:token, :grafana_url, :enabled]
+ grafana_integration_attributes: [:token, :grafana_url, :enabled],
+ tracing_setting_attributes: [:external_url]
}
if Feature.enabled?(:settings_operations_prometheus_service, project)