Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[SLO] Add synthetics availability SLI (elastic#177842)
## Summary Relates to elastic/actionable-observability#122 Relates to elastic/observability-dev#2931 Adds the Synthetics SLI Also adds a concept of a [`meta` key ](https://github.com/elastic/kibana/pull/177842/files#diff-9540eeb8237fdcf36ceac67af9cc67e192c7b67ff1c9a944db3635f9e953a9a1R139) to the `SLOWithSummaryResponse` object, to hold arbitrary fields related to a specific indicator. In the case of synthetics, I'm using this key to store `config_id` (the monitor's SO id) and `observer.name` (the monitors location id). These keys are critical for linking back to Synthetics, but not available elsewhere. ## Release note Adds the ability to create an SLI based on the availability of your synthetics monitors. Select one or multiple monitors, or groups of monitors via projects or tags. Individual SLOs will automatically be generated for each monitor and location combination, based on your specified filters. <img width="862" alt="Screenshot 2024-03-04 at 8 40 37 AM" src="https://github.com/elastic/kibana/assets/11356435/53c84fcb-6209-43f4-bac4-b10032795d02"> <img width="724" alt="Screenshot 2024-03-04 at 8 41 47 AM" src="https://github.com/elastic/kibana/assets/11356435/89a9ef2c-82c6-470a-ac03-e19bd24e52c9"> <img width="1435" alt="Screenshot 2024-03-04 at 8 41 59 AM" src="https://github.com/elastic/kibana/assets/11356435/44e9843f-053b-447c-9298-6ec4c66496d8"> ### Testing 1. On main, create a few different SLIs 2. Check out this branch 3. Create synthetics monitors. You can do so by creating an oblt cluster, using the `kibana.yml` provided, and then navigating to the Synthetics app. Be sure to create monitors with tags. 4. Navigate to the SLO page. Create a test Synthetics SLI. Ensure that the tags you created appear in the `tags` suggestions, and the monitors you created appear in the `monitor name` suggestions. When filtering by a specific tag, you should only see monitors with that tag. On the opposite side, when filtering by a monitor name(s) you should only see tags related to those monitors. 5. Navigate to the SLO overview. Ensure the SLO is computed correctly 6. Navigate to the SLO details page. Ensure all of the visualizations are populated correctly. Ensure the groupings value appear correct. Under the `Synthetics Monitor` key in the Overview table, click the name and ensure that you can navigate to the Synthetics app successfully. ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --------- Co-authored-by: shahzad31 <shahzad31comp@gmail.com> Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
- Loading branch information