Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Synthetics] Alert connector recovery messages are broken #188387

Closed
dominiqueclarke opened this issue Jul 16, 2024 · 1 comment · Fixed by #188461
Closed

[Synthetics] Alert connector recovery messages are broken #188387

dominiqueclarke opened this issue Jul 16, 2024 · 1 comment · Fixed by #188461
Labels
bug Fixes for quality problems that affect the customer experience Team:obs-ux-management Observability Management User Experience Team v8.15.0

Comments

@dominiqueclarke
Copy link
Contributor

Kibana version: 8.15.0

Original install method (e.g. download page, yum, from source, etc.): Local dev

Onboarding the monitor status rule to FAAD has broken some of our alert recovery logic. Alert connector recovery messages are broken. In particular, this is because we are relying on some values on state that are no longer present. We used call replaceState to apply these state variables but that was replaced with setAlertData.

PR #186214
Logic affected https://github.com/elastic/kibana/blob/main/x-pack/plugins/observability_solution/synthetics/server/alert_rules/common.ts#L202

The missing values cause empty, broken recovery messages, such as this example in my slack connector
Screenshot 2024-07-15 at 10 43 18 PM

@dominiqueclarke dominiqueclarke added bug Fixes for quality problems that affect the customer experience Team:obs-ux-management Observability Management User Experience Team v8.15.0 labels Jul 16, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-management-team (Team:obs-ux-management)

@dominiqueclarke dominiqueclarke changed the title [Synthetics] [Synthetics] Alert connector recovery messages are broken Jul 16, 2024
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Jul 18, 2024
## Summary

Fixes elastic#188387

We previously relied on state to populate values in alert recovery
messages. However, values were removed from state when onboarding the
rule with FAAD. Fortunately, onboarding with FAAD means we now have
access to the alert document within recovery. This PR uses values from
that document, instead of state, to populate the alert recovery message.

### Testing
1. Create an oblt cluster with `/create-ccs-cluster` on slack. Choose
`dev-oblt`.
2. Add the configuration values from the oblt command to your kibana.yml
3. Navigate to `app/synthetics/settings/alerting` and add a default
connector. The easiest connector to add would be a Server log
4. Create an intentionally down HTTP monitor
5. Wait to receive an alert to your alert connector
6. Update the monitor so that the monitor comes up
7. Wait to receive an alert recovery message to your alert connector.
The recovery message data should be completely populated

(cherry picked from commit b562c8e)
kibanamachine referenced this issue Jul 18, 2024
# Backport

This will backport the following commits from `main` to `8.15`:
- [[Synthetics] fix recovery message
(#188461)](#188461)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Dominique
Clarke","email":"dominique.clarke@elastic.co"},"sourceCommit":{"committedDate":"2024-07-18T19:07:11Z","message":"[Synthetics]
fix recovery message (#188461)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/188387\r\n\r\nWe previously
relied on state to populate values in alert recovery\r\nmessages.
However, values were removed from state when onboarding the\r\nrule with
FAAD. Fortunately, onboarding with FAAD means we now have\r\naccess to
the alert document within recovery. This PR uses values from\r\nthat
document, instead of state, to populate the alert recovery
message.\r\n\r\n### Testing\r\n1. Create an oblt cluster with
`/create-ccs-cluster` on slack. Choose\r\n`dev-oblt`.\r\n2. Add the
configuration values from the oblt command to your kibana.yml\r\n3.
Navigate to `app/synthetics/settings/alerting` and add a
default\r\nconnector. The easiest connector to add would be a Server
log\r\n4. Create an intentionally down HTTP monitor\r\n5. Wait to
receive an alert to your alert connector\r\n6. Update the monitor so
that the monitor comes up\r\n7. Wait to receive an alert recovery
message to your alert connector.\r\nThe recovery message data should be
completely
populated","sha":"b562c8eb8290aa22fb1e7e54f672d17b0420f5e7","branchLabelMapping":{"^v8.16.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","release_note:skip","ci:project-deploy-observability","Team:obs-ux-management","v8.15.0","v8.16.0"],"title":"[Synthetics]
fix recovery
message","number":188461,"url":"https://github.com/elastic/kibana/pull/188461","mergeCommit":{"message":"[Synthetics]
fix recovery message (#188461)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/188387\r\n\r\nWe previously
relied on state to populate values in alert recovery\r\nmessages.
However, values were removed from state when onboarding the\r\nrule with
FAAD. Fortunately, onboarding with FAAD means we now have\r\naccess to
the alert document within recovery. This PR uses values from\r\nthat
document, instead of state, to populate the alert recovery
message.\r\n\r\n### Testing\r\n1. Create an oblt cluster with
`/create-ccs-cluster` on slack. Choose\r\n`dev-oblt`.\r\n2. Add the
configuration values from the oblt command to your kibana.yml\r\n3.
Navigate to `app/synthetics/settings/alerting` and add a
default\r\nconnector. The easiest connector to add would be a Server
log\r\n4. Create an intentionally down HTTP monitor\r\n5. Wait to
receive an alert to your alert connector\r\n6. Update the monitor so
that the monitor comes up\r\n7. Wait to receive an alert recovery
message to your alert connector.\r\nThe recovery message data should be
completely
populated","sha":"b562c8eb8290aa22fb1e7e54f672d17b0420f5e7"}},"sourceBranch":"main","suggestedTargetBranches":["8.15"],"targetPullRequestStates":[{"branch":"8.15","label":"v8.15.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.16.0","branchLabelMappingKey":"^v8.16.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/188461","number":188461,"mergeCommit":{"message":"[Synthetics]
fix recovery message (#188461)\n\n## Summary\r\n\r\nFixes
https://github.com/elastic/kibana/issues/188387\r\n\r\nWe previously
relied on state to populate values in alert recovery\r\nmessages.
However, values were removed from state when onboarding the\r\nrule with
FAAD. Fortunately, onboarding with FAAD means we now have\r\naccess to
the alert document within recovery. This PR uses values from\r\nthat
document, instead of state, to populate the alert recovery
message.\r\n\r\n### Testing\r\n1. Create an oblt cluster with
`/create-ccs-cluster` on slack. Choose\r\n`dev-oblt`.\r\n2. Add the
configuration values from the oblt command to your kibana.yml\r\n3.
Navigate to `app/synthetics/settings/alerting` and add a
default\r\nconnector. The easiest connector to add would be a Server
log\r\n4. Create an intentionally down HTTP monitor\r\n5. Wait to
receive an alert to your alert connector\r\n6. Update the monitor so
that the monitor comes up\r\n7. Wait to receive an alert recovery
message to your alert connector.\r\nThe recovery message data should be
completely
populated","sha":"b562c8eb8290aa22fb1e7e54f672d17b0420f5e7"}}]}]
BACKPORT-->

Co-authored-by: Dominique Clarke <dominique.clarke@elastic.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Fixes for quality problems that affect the customer experience Team:obs-ux-management Observability Management User Experience Team v8.15.0
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants