Alert end time should be updated after changing status to `Resolved`
Summary
Alert end time should be updated after changing state to Resolved
.
The current business logic is that the 'end time' field is populated after setting an alert to Resolved. However, this is no shown immediately in the UI. Instead, a user has to select Resolved and then refresh the page to see the updated value.
This affects the alert list and the alert detail view.
Steps to reproduce
- Navigate to an Alert List (or Alert Detail view) e.g. https://staging.gitlab.com/gitlab-org/monitor/monitor-sandbox/-/alert_management.
- Ensure there is an alert that has no end time.
- Change the status to "Resolved"
Example Project
https://staging.gitlab.com/gitlab-org/monitor/monitor-sandbox/-/alert_management
What is the current bug behavior?
- The end time doesn't change.
- If you refresh the page, you see an updated end time.
What is the expected correct behavior?
- The end time should display as "just now"
Relevant logs and/or screenshots
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
The response to the mutation request comes back with the following data:
[
{
"data": {
"updateAlertStatus": {
"errors": [],
"alert": {
"iid": "4",
"status": "RESOLVED",
"__typename": "AlertManagementAlert"
},
"__typename": "UpdateAlertStatusPayload"
}
}
}
]
Note the existence of the status field: "status": "RESOLVED"
which is reflected correctly by the UI updating. Then notice that endedAt
is missing.
I believe a backend change to add the endedAt
field to the api response is what's required to fix this.