diff options
Diffstat (limited to 'app/controllers/projects/settings/operations_controller.rb')
-rw-r--r-- | app/controllers/projects/settings/operations_controller.rb | 37 |
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) |