"Add alert" in monitoring dashboard yields "Error creating alert"
Summary
In the monitoring dashboard (metrics), it is not possible to add a new alert.
"Add alert" in monitoring dashboard yields "Error creating alert"
Steps to reproduce
- (Disabled feature flag
prometheus_computed_alerts
) - Visit the dashboard for a project. e.g.
<project>/environments/29/metrics
- Select a metric three dots button.
- In the pop-up select any data and click on "Add"
Example Project
https://gitlab.com/sarahwaldner/waldner_demo
What is the current bug behavior?
"Error creating alert" notice appears.
What is the expected correct behavior?
Alert is added.
Relevant logs and/or screenshots
Issue is manifested by constraint violation in the db:
11:52:07 postgresql.1 | 2019-08-30 11:52:07.774 -05 [4438] ERROR: null value in column "operator" violates not-null constraint
11:52:07 postgresql.1 | 2019-08-30 11:52:07.774 -05 [4438] DETAIL: Failing row contains (1, 2019-08-30 16:52:07.773174+00, 2019-08-30 16:52:07.773174+00, 1, null, 29, 19, 19).
11:52:07 postgresql.1 | 2019-08-30 11:52:07.774 -05 [4438] STATEMENT: INSERT INTO "prometheus_alerts" ("created_at", "updated_at", "threshold", "environment_id", "project_id", "prometheus_metric_id") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"
Full stack trace by gdk:
PG::NotNullViolation at /root/autodevops-deploy/prometheus/alerts.json
======================================================================
> ERROR: null value in column "operator" violates not-null constraint
DETAIL: Failing row contains (1, 2019-08-30 16:52:07.773174+00, 2019-08-30 16:52:07.773174+00, 1, null, 29, 19, 19).
ee/app/services/projects/prometheus/alerts/create_service.rb, line 10
---------------------------------------------------------------------
``` ruby
5 module Alerts
6 class CreateService < BaseService
7 include AlertParams
8
9 def execute
> 10 project.prometheus_alerts.create(alert_params)
11 end
12 end
13 end
14 end
15 end
App backtrace
- ee/app/services/projects/prometheus/alerts/create_service.rb:10:in `execute'
- ee/app/controllers/projects/prometheus/alerts_controller.rb:36:in `create'
- ee/lib/gitlab/ip_address_state.rb:10:in `with'
- ee/app/controllers/ee/application_controller.rb:39:in `set_current_ip_address'
- lib/gitlab/session.rb:11:in `with_session'
- app/controllers/application_controller.rb:450:in `set_session_storage'
- lib/gitlab/i18n.rb:55:in `with_locale'
- lib/gitlab/i18n.rb:61:in `with_user_locale'
- app/controllers/application_controller.rb:444:in `set_locale'
- lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
- lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
- lib/gitlab/metrics/transaction.rb:57:in `run'
- lib/gitlab/metrics/rack_middleware.rb:17:in `call'
- lib/gitlab/middleware/multipart.rb:103:in `call'
- lib/gitlab/request_profiler/middleware.rb:17:in `call'
- lib/gitlab/query_limiting/middleware.rb:17:in `block in call'
- lib/gitlab/query_limiting/transaction.rb:39:in `run'
- lib/gitlab/query_limiting/middleware.rb:16:in `call'
- ee/lib/gitlab/jira/middleware.rb:17:in `call'
- lib/gitlab/middleware/go.rb:20:in `call'
- lib/gitlab/etag_caching/middleware.rb:13:in `call'
- lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
- lib/gitlab/middleware/correlation_id.rb:15:in `call'
- lib/gitlab/middleware/read_only/controller.rb:42:in `call'
- lib/gitlab/middleware/read_only.rb:18:in `call'
- lib/gitlab/middleware/basic_health_check.rb:25:in `call'
- lib/gitlab/request_context.rb:26:in `call'
- lib/gitlab/middleware/static.rb:11:in `call'
- lib/gitlab/webpack/dev_server_middleware.rb:27:in `perform_request'
- lib/gitlab/metrics/requests_rack_middleware.rb:29:in `call'
- lib/gitlab/middleware/release_env.rb:12:in `call'
Output of checks
This bug happens on GitLab.com
Possible fixes
- ...
Edited by Miguel Rincon