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

feat(slo): introduce new search capabilities #162665

Merged
merged 9 commits into from
Aug 1, 2023

Conversation

kdelemme
Copy link
Contributor

@kdelemme kdelemme commented Jul 27, 2023

Summary

This PR merges the new summary search capabilities into main.

This PR introduces breaking changes in various places, and we have decided to not handle backward compatibility:

  • SLO find API body parameters have changed
  • The index mapping used by the rollup data has changed, and we have added a summary index that becomes the new source of truth for search
  • The rollup transform have been updated, but existing SLO with their transform won't be updated.

If some SLOs have been installed in a prior version at 8.10, the user will need to remove them manually from the UI, or by deleting the Saved Object and the associated Transform.

In a nutshell, we have added another layer of transforms to summarize each SLO so we can use this data in the find API and therefore in the listing page. Because of the inherent delay of the transform, the summary data is not available right after creating or updating an SLO. To mitigate this, we index a temporary summary document with "no_data values for the given SLO, and when we search the summary documents, we dedupe the temporary vs non temporary summary documents, and delete them in the brackground. Therefore the summary documents are eventually consistent as we read through them.

flowchart LR
    A(Raw Data Index) --> B[Rollup Transform]
    B --> C(Rollup Data Index)
    C --> D[Summary Transform]
    D --> E(Summary Data Index)
Loading

Release note

SLO definition and computed values are now summarized periodically into a summary search index, allowing users to search by name, tags, SLO budgeting type or time window, and even by and sort by error budget consumed, error budget remaining, SLI value or status. This is a breaking change due to the changes in the transform definitions. To mitigate this change, you will need to re-create your SLOs by exporting the definitions via the listing API.

@apmmachine
Copy link
Contributor

🤖 GitHub comments

Expand to view the GitHub comments

Just comment with:

  • /oblt-deploy : Deploy a Kibana instance using the Observability test environments.
  • /oblt-deploy-serverless : Deploy a serverless Kibana instance using the Observability test environments.
  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@kdelemme kdelemme added release_note:skip Skip the PR/issue when compiling release notes Team: Actionable Observability - DEPRECATED For Observability Alerting and SLOs use "Team:obs-ux-management", for AIops "Team:obs-knowledge" v8.10.0 labels Jul 27, 2023
@kdelemme kdelemme changed the title Slo/feature branch feat(slo): introduce new search capabilities Jul 27, 2023
@kdelemme kdelemme added release_note:feature Makes this part of the condensed release notes release_note:breaking and removed release_note:skip Skip the PR/issue when compiling release notes labels Jul 28, 2023
@kdelemme kdelemme force-pushed the slo/feature-branch branch 2 times, most recently from 6662da9 to 533a6f2 Compare July 28, 2023 13:37
@kdelemme kdelemme marked this pull request as ready for review July 28, 2023 16:49
@kdelemme kdelemme requested a review from a team as a code owner July 28, 2023 16:49
@elasticmachine
Copy link
Contributor

Pinging @elastic/actionable-observability (Team: Actionable Observability)

kdelemme added 9 commits July 28, 2023 12:52
Resolves elastic#161393

## Summary

This PR is the first of a series to implement the summary and search
improvement feature on SLO.
Every PR will be merged against the feature branch:
`slo/feature-branch`. And we'll update this feature branch with main as
often as possible to keep conflict as a minimum.

This PR changes the SLO rollup index mapping, adding more fields to it,
that we are going to use to summarize the SLO rollup data later.
It also includes the SLO summary index templates (mappings, settings,
template) and install them with the other templates.

Since this is a **breaking change**, any SLO running will be shown as
`NO_DATA`. You can remove the SLO through the API or the UI, or update
them (make sure you change something significant (time window, indicator
params, ...) in order to induce a revision bump) so the underlying
transform is recreated using the new index structure.
@kdelemme kdelemme force-pushed the slo/feature-branch branch from 533a6f2 to 6f0443f Compare July 28, 2023 17:22
@kibana-ci
Copy link
Collaborator

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] x-pack/test/alerting_api_integration/security_and_spaces/group2/config_non_dedicated_task_runner.ts / alerting api integration security and spaces enabled - Group 2 Connectors ServiceNow SIR ServiceNow SIR - Action Creation should return 200 when creating a servicenow Basic Auth connector successfully

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
observability 1.0MB 1.0MB -961.0B

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

Copy link
Member

@simianhacker simianhacker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kdelemme kdelemme merged commit 757c881 into elastic:main Aug 1, 2023
@kibanamachine kibanamachine added the backport:skip This commit does not require backporting label Aug 1, 2023
@kdelemme kdelemme deleted the slo/feature-branch branch August 1, 2023 12:32
ThomThomson pushed a commit to ThomThomson/kibana that referenced this pull request Aug 1, 2023
gsoldevila added a commit that referenced this pull request Sep 14, 2023
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Sep 14, 2023
kibanamachine added a commit that referenced this pull request Sep 14, 2023
# Backport

This will backport the following commits from `main` to `8.10`:
- [Remove excessively verbose logs
(#166525)](#166525)

<!--- Backport version: 8.9.7 -->

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

<!--BACKPORT [{"author":{"name":"Gerard
Soldevila","email":"[email protected]"},"sourceCommit":{"committedDate":"2023-09-14T21:41:10Z","message":"Remove
excessively verbose logs (#166525)\n\nRevert
#162665","sha":"33108a1638d2f153883cfbf6c6127ba7fb051077","branchLabelMapping":{"^v8.11.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","release_note:skip","backport:prev-minor","v8.11.0","v8.10.1"],"number":166525,"url":"https://github.com/elastic/kibana/pull/166525","mergeCommit":{"message":"Remove
excessively verbose logs (#166525)\n\nRevert
#162665","sha":"33108a1638d2f153883cfbf6c6127ba7fb051077"}},"sourceBranch":"main","suggestedTargetBranches":["8.10"],"targetPullRequestStates":[{"branch":"main","label":"v8.11.0","labelRegex":"^v8.11.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/166525","number":166525,"mergeCommit":{"message":"Remove
excessively verbose logs (#166525)\n\nRevert
#162665","sha":"33108a1638d2f153883cfbf6c6127ba7fb051077"}},{"branch":"8.10","label":"v8.10.1","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Gerard Soldevila <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting release_note:breaking release_note:feature Makes this part of the condensed release notes Team: Actionable Observability - DEPRECATED For Observability Alerting and SLOs use "Team:obs-ux-management", for AIops "Team:obs-knowledge" v8.10.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants