-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Infrastructure UI] Improve metrics settings error handling #146272
[Infrastructure UI] Improve metrics settings error handling #146272
Conversation
x-pack/plugins/infra/public/pages/metrics/settings/source_configuration_settings.tsx
Show resolved
Hide resolved
…-ref HEAD~1..HEAD --fix'
Pinging @elastic/infra-monitoring-ui (Team:Infra Monitoring UI) |
…ub.com:tonyghiani/kibana into 145238-improve-metrics-settings-error-handling
// @ts-ignore | ||
patchedSourceConfigurationProperties | ||
)); | ||
? sources.updateSourceConfiguration(soClient, sourceId, sourceConfigurationPayload) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for removing these ts-ignore annotations
body: metricsSourceConfigurationResponseRT.encode({ source: { ...source, status } }), | ||
}); | ||
} catch (err) { | ||
return response.notFound(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just wondering why we wouldn't just let the error propagate here? My concern is more whether this will mask an actual error - if it ever happens
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have the same concerns as you do, I'm actually looking at how behaves the client when receiving a 500 response to see if it breaks somewhere as it happens when the metricAlias is not valid.
Since it's not a real request error from the client, but it conflicts with the state of the data in the server, we could respond with a 409 when this is the case, what's your opinion about this?
…ub.com:tonyghiani/kibana into 145238-improve-metrics-settings-error-handling
…-ref HEAD~1..HEAD --fix'
💚 Build Succeeded
Metrics [docs]Module Count
Public APIs missing comments
Async chunks
Public APIs missing exports
Unknown metric groupsAPI count
ESLint disabled in files
ESLint disabled line counts
Total ESLint disabled count
History
To update your PR or re-run it, just comment with: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🌟
body: metricsSourceConfigurationResponseRT.encode({ source: { ...source, status } }), | ||
}); | ||
} catch (error) { | ||
return response.customError({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Cool io-ts tricks.
…146272) Closes [elastic#145238](elastic#145238) ## Summary These changes add validation to the Metric Indices passed into the Metrics settings page. New validation is added both in the UI and in the endpoint, performing the following checks: - Index pattern is not an empty string - Index pattern does not contain empty spaces (start, middle, end) (the pattern is not trimmed) - Index pattern does not contain empty entries, comma-separated values should have an acceptable value. In case the value is not valid, the UI will render an appropriate error message. If the `PATCH /api/metrics/source/{sourceId}` request to update the value is manually sent with an invalid value, the server will respond with a 400 status code and an error message. Also, for retro compatibility and to not block the user when the configuration can't be successfully retrieved, in case of internal error the `GET /api/metrics/source/{sourceId}` will return a 404 and on the UI, instead of rendering a blank page, the user will see the empty form and will be able to re-insert the right values. ## Testing Navigate to `Inventory`-> Click on `Settings` on the topbar -> Start writing different metric indices in the Metric Indices field. ### Editing Metric Indices validation https://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov ### Missing/Broken configuration response https://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov Co-authored-by: Marco Antonio Ghiani <[email protected]> Co-authored-by: kibanamachine <[email protected]> (cherry picked from commit ddcbf73)
…146272) Closes [elastic#145238](elastic#145238) ## Summary These changes add validation to the Metric Indices passed into the Metrics settings page. New validation is added both in the UI and in the endpoint, performing the following checks: - Index pattern is not an empty string - Index pattern does not contain empty spaces (start, middle, end) (the pattern is not trimmed) - Index pattern does not contain empty entries, comma-separated values should have an acceptable value. In case the value is not valid, the UI will render an appropriate error message. If the `PATCH /api/metrics/source/{sourceId}` request to update the value is manually sent with an invalid value, the server will respond with a 400 status code and an error message. Also, for retro compatibility and to not block the user when the configuration can't be successfully retrieved, in case of internal error the `GET /api/metrics/source/{sourceId}` will return a 404 and on the UI, instead of rendering a blank page, the user will see the empty form and will be able to re-insert the right values. ## Testing Navigate to `Inventory`-> Click on `Settings` on the topbar -> Start writing different metric indices in the Metric Indices field. ### Editing Metric Indices validation https://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov ### Missing/Broken configuration response https://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov Co-authored-by: Marco Antonio Ghiani <[email protected]> Co-authored-by: kibanamachine <[email protected]> (cherry picked from commit ddcbf73)
💔 Some backports could not be created
Note: Successful backport PRs will be merged automatically after passing CI. Manual backportTo create the backport manually run:
Questions ?Please refer to the Backport tool documentation |
…46272) (#146674) # Backport This will backport the following commits from `main` to `8.5`: - [[Infrastructure UI] Improve metrics settings error handling (#146272)](#146272) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Marco Antonio Ghiani","email":"[email protected]"},"sourceCommit":{"committedDate":"2022-11-30T10:54:37Z","message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Metrics UI","Team:Infra Monitoring UI","release_note:skip","backport:all-open","v8.7.0"],"number":146272,"url":"https://github.com/elastic/kibana/pull/146272","mergeCommit":{"message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/146272","number":146272,"mergeCommit":{"message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02"}}]}] BACKPORT--> Co-authored-by: Marco Antonio Ghiani <[email protected]>
…46272) (#146675) # Backport This will backport the following commits from `main` to `8.6`: - [[Infrastructure UI] Improve metrics settings error handling (#146272)](#146272) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Marco Antonio Ghiani","email":"[email protected]"},"sourceCommit":{"committedDate":"2022-11-30T10:54:37Z","message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Metrics UI","Team:Infra Monitoring UI","release_note:skip","backport:all-open","v8.7.0"],"number":146272,"url":"https://github.com/elastic/kibana/pull/146272","mergeCommit":{"message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/146272","number":146272,"mergeCommit":{"message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02"}}]}] BACKPORT--> Co-authored-by: Marco Antonio Ghiani <[email protected]>
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…146272) (#146699) # Backport This will backport the following commits from `main` to `7.17`: - [[Infrastructure UI] Improve metrics settings error handling (#146272)](#146272) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Marco Antonio Ghiani","email":"[email protected]"},"sourceCommit":{"committedDate":"2022-11-30T10:54:37Z","message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Metrics UI","Team:Infra Monitoring UI","release_note:skip","backport:all-open","v8.6.0","v8.7.0","v8.5.3"],"number":146272,"url":"https://github.com/elastic/kibana/pull/146272","mergeCommit":{"message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"8.6","label":"v8.6.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/146675","number":146675,"state":"MERGED","mergeCommit":{"sha":"28991d49d86e7cdb2496e0c2fe37cac928c557c2","message":"[8.6] [Infrastructure UI] Improve metrics settings error handling (#146272) (#146675)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.6`:\n- [[Infrastructure UI] Improve metrics settings error handling\n(#146272)](https://github.com/elastic/kibana/pull/146272)\n\n<!--- Backport version: 8.9.7 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Marco Antonio\nGhiani\",\"email\":\"[email protected]\"},\"sourceCommit\":{\"committedDate\":\"2022-11-30T10:54:37Z\",\"message\":\"[Infrastructure\nUI] Improve metrics settings error handling (#146272)\\n\\nCloses\n[#145238](https://github.com/elastic/kibana/issues/145238)\\r\\n\\r\\n##\nSummary\\r\\n\\r\\nThese changes add validation to the Metric Indices passed\ninto the\\r\\nMetrics settings page.\\r\\nNew validation is added both in\nthe UI and in the endpoint, performing\\r\\nthe following checks:\\r\\n-\nIndex pattern is not an empty string\\r\\n- Index pattern does not contain\nempty spaces (start, middle, end) (the\\r\\npattern is not trimmed)\\r\\n-\nIndex pattern does not contain empty entries, comma-separated\nvalues\\r\\nshould have an acceptable value.\\r\\n\\r\\nIn case the value is\nnot valid, the UI will render an appropriate error\\r\\nmessage.\\r\\nIf the\n`PATCH /api/metrics/source/{sourceId}` request to update the\\r\\nvalue is\nmanually sent with an invalid value, the server will respond\\r\\nwith a\n400 status code and an error message.\\r\\n\\r\\nAlso, for retro\ncompatibility and to not block the user when the\\r\\nconfiguration can't\nbe successfully retrieved, in case of internal error\\r\\nthe `GET\n/api/metrics/source/{sourceId}` will return a 404 and on the\\r\\nUI,\ninstead of rendering a blank page, the user will see the empty\nform\\r\\nand will be able to re-insert the right values.\\r\\n\\r\\n##\nTesting\\r\\n\\r\\nNavigate to `Inventory`-> Click on `Settings` on the\ntopbar -> Start\\r\\nwriting different metric indices in the Metric\nIndices field.\\r\\n\\r\\n### Editing Metric Indices\nvalidation\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\\r\\n\\r\\n###\nMissing/Broken configuration\nresponse\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\\r\\n\\r\\nCo-authored-by:\nMarco Antonio Ghiani <[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02\",\"branchLabelMapping\":{\"^v8.7.0$\":\"main\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"Feature:Metrics\nUI\",\"Team:Infra Monitoring\nUI\",\"release_note:skip\",\"backport:all-open\",\"v8.7.0\"],\"number\":146272,\"url\":\"https://github.com/elastic/kibana/pull/146272\",\"mergeCommit\":{\"message\":\"[Infrastructure\nUI] Improve metrics settings error handling (#146272)\\n\\nCloses\n[#145238](https://github.com/elastic/kibana/issues/145238)\\r\\n\\r\\n##\nSummary\\r\\n\\r\\nThese changes add validation to the Metric Indices passed\ninto the\\r\\nMetrics settings page.\\r\\nNew validation is added both in\nthe UI and in the endpoint, performing\\r\\nthe following checks:\\r\\n-\nIndex pattern is not an empty string\\r\\n- Index pattern does not contain\nempty spaces (start, middle, end) (the\\r\\npattern is not trimmed)\\r\\n-\nIndex pattern does not contain empty entries, comma-separated\nvalues\\r\\nshould have an acceptable value.\\r\\n\\r\\nIn case the value is\nnot valid, the UI will render an appropriate error\\r\\nmessage.\\r\\nIf the\n`PATCH /api/metrics/source/{sourceId}` request to update the\\r\\nvalue is\nmanually sent with an invalid value, the server will respond\\r\\nwith a\n400 status code and an error message.\\r\\n\\r\\nAlso, for retro\ncompatibility and to not block the user when the\\r\\nconfiguration can't\nbe successfully retrieved, in case of internal error\\r\\nthe `GET\n/api/metrics/source/{sourceId}` will return a 404 and on the\\r\\nUI,\ninstead of rendering a blank page, the user will see the empty\nform\\r\\nand will be able to re-insert the right values.\\r\\n\\r\\n##\nTesting\\r\\n\\r\\nNavigate to `Inventory`-> Click on `Settings` on the\ntopbar -> Start\\r\\nwriting different metric indices in the Metric\nIndices field.\\r\\n\\r\\n### Editing Metric Indices\nvalidation\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\\r\\n\\r\\n###\nMissing/Broken configuration\nresponse\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\\r\\n\\r\\nCo-authored-by:\nMarco Antonio Ghiani <[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v8.7.0\",\"labelRegex\":\"^v8.7.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/146272\",\"number\":146272,\"mergeCommit\":{\"message\":\"[Infrastructure\nUI] Improve metrics settings error handling (#146272)\\n\\nCloses\n[#145238](https://github.com/elastic/kibana/issues/145238)\\r\\n\\r\\n##\nSummary\\r\\n\\r\\nThese changes add validation to the Metric Indices passed\ninto the\\r\\nMetrics settings page.\\r\\nNew validation is added both in\nthe UI and in the endpoint, performing\\r\\nthe following checks:\\r\\n-\nIndex pattern is not an empty string\\r\\n- Index pattern does not contain\nempty spaces (start, middle, end) (the\\r\\npattern is not trimmed)\\r\\n-\nIndex pattern does not contain empty entries, comma-separated\nvalues\\r\\nshould have an acceptable value.\\r\\n\\r\\nIn case the value is\nnot valid, the UI will render an appropriate error\\r\\nmessage.\\r\\nIf the\n`PATCH /api/metrics/source/{sourceId}` request to update the\\r\\nvalue is\nmanually sent with an invalid value, the server will respond\\r\\nwith a\n400 status code and an error message.\\r\\n\\r\\nAlso, for retro\ncompatibility and to not block the user when the\\r\\nconfiguration can't\nbe successfully retrieved, in case of internal error\\r\\nthe `GET\n/api/metrics/source/{sourceId}` will return a 404 and on the\\r\\nUI,\ninstead of rendering a blank page, the user will see the empty\nform\\r\\nand will be able to re-insert the right values.\\r\\n\\r\\n##\nTesting\\r\\n\\r\\nNavigate to `Inventory`-> Click on `Settings` on the\ntopbar -> Start\\r\\nwriting different metric indices in the Metric\nIndices field.\\r\\n\\r\\n### Editing Metric Indices\nvalidation\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\\r\\n\\r\\n###\nMissing/Broken configuration\nresponse\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\\r\\n\\r\\nCo-authored-by:\nMarco Antonio Ghiani <[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02\"}}]}]\nBACKPORT-->\n\nCo-authored-by: Marco Antonio Ghiani <[email protected]>"}},{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/146272","number":146272,"mergeCommit":{"message":"[Infrastructure UI] Improve metrics settings error handling (#146272)\n\nCloses [#145238](https://github.com/elastic/kibana/issues/145238)\r\n\r\n## Summary\r\n\r\nThese changes add validation to the Metric Indices passed into the\r\nMetrics settings page.\r\nNew validation is added both in the UI and in the endpoint, performing\r\nthe following checks:\r\n- Index pattern is not an empty string\r\n- Index pattern does not contain empty spaces (start, middle, end) (the\r\npattern is not trimmed)\r\n- Index pattern does not contain empty entries, comma-separated values\r\nshould have an acceptable value.\r\n\r\nIn case the value is not valid, the UI will render an appropriate error\r\nmessage.\r\nIf the `PATCH /api/metrics/source/{sourceId}` request to update the\r\nvalue is manually sent with an invalid value, the server will respond\r\nwith a 400 status code and an error message.\r\n\r\nAlso, for retro compatibility and to not block the user when the\r\nconfiguration can't be successfully retrieved, in case of internal error\r\nthe `GET /api/metrics/source/{sourceId}` will return a 404 and on the\r\nUI, instead of rendering a blank page, the user will see the empty form\r\nand will be able to re-insert the right values.\r\n\r\n## Testing\r\n\r\nNavigate to `Inventory`-> Click on `Settings` on the topbar -> Start\r\nwriting different metric indices in the Metric Indices field.\r\n\r\n### Editing Metric Indices validation\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\r\n\r\n### Missing/Broken configuration response\r\n\r\n\r\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\r\n\r\nCo-authored-by: Marco Antonio Ghiani <[email protected]>\r\nCo-authored-by: kibanamachine <[email protected]>","sha":"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02"}},{"branch":"8.5","label":"v8.5.3","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/146674","number":146674,"state":"MERGED","mergeCommit":{"sha":"223121bc5d668f560f609a25a9e08778fa504c50","message":"[8.5] [Infrastructure UI] Improve metrics settings error handling (#146272) (#146674)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.5`:\n- [[Infrastructure UI] Improve metrics settings error handling\n(#146272)](https://github.com/elastic/kibana/pull/146272)\n\n<!--- Backport version: 8.9.7 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Marco Antonio\nGhiani\",\"email\":\"[email protected]\"},\"sourceCommit\":{\"committedDate\":\"2022-11-30T10:54:37Z\",\"message\":\"[Infrastructure\nUI] Improve metrics settings error handling (#146272)\\n\\nCloses\n[#145238](https://github.com/elastic/kibana/issues/145238)\\r\\n\\r\\n##\nSummary\\r\\n\\r\\nThese changes add validation to the Metric Indices passed\ninto the\\r\\nMetrics settings page.\\r\\nNew validation is added both in\nthe UI and in the endpoint, performing\\r\\nthe following checks:\\r\\n-\nIndex pattern is not an empty string\\r\\n- Index pattern does not contain\nempty spaces (start, middle, end) (the\\r\\npattern is not trimmed)\\r\\n-\nIndex pattern does not contain empty entries, comma-separated\nvalues\\r\\nshould have an acceptable value.\\r\\n\\r\\nIn case the value is\nnot valid, the UI will render an appropriate error\\r\\nmessage.\\r\\nIf the\n`PATCH /api/metrics/source/{sourceId}` request to update the\\r\\nvalue is\nmanually sent with an invalid value, the server will respond\\r\\nwith a\n400 status code and an error message.\\r\\n\\r\\nAlso, for retro\ncompatibility and to not block the user when the\\r\\nconfiguration can't\nbe successfully retrieved, in case of internal error\\r\\nthe `GET\n/api/metrics/source/{sourceId}` will return a 404 and on the\\r\\nUI,\ninstead of rendering a blank page, the user will see the empty\nform\\r\\nand will be able to re-insert the right values.\\r\\n\\r\\n##\nTesting\\r\\n\\r\\nNavigate to `Inventory`-> Click on `Settings` on the\ntopbar -> Start\\r\\nwriting different metric indices in the Metric\nIndices field.\\r\\n\\r\\n### Editing Metric Indices\nvalidation\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\\r\\n\\r\\n###\nMissing/Broken configuration\nresponse\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\\r\\n\\r\\nCo-authored-by:\nMarco Antonio Ghiani <[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02\",\"branchLabelMapping\":{\"^v8.7.0$\":\"main\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"Feature:Metrics\nUI\",\"Team:Infra Monitoring\nUI\",\"release_note:skip\",\"backport:all-open\",\"v8.7.0\"],\"number\":146272,\"url\":\"https://github.com/elastic/kibana/pull/146272\",\"mergeCommit\":{\"message\":\"[Infrastructure\nUI] Improve metrics settings error handling (#146272)\\n\\nCloses\n[#145238](https://github.com/elastic/kibana/issues/145238)\\r\\n\\r\\n##\nSummary\\r\\n\\r\\nThese changes add validation to the Metric Indices passed\ninto the\\r\\nMetrics settings page.\\r\\nNew validation is added both in\nthe UI and in the endpoint, performing\\r\\nthe following checks:\\r\\n-\nIndex pattern is not an empty string\\r\\n- Index pattern does not contain\nempty spaces (start, middle, end) (the\\r\\npattern is not trimmed)\\r\\n-\nIndex pattern does not contain empty entries, comma-separated\nvalues\\r\\nshould have an acceptable value.\\r\\n\\r\\nIn case the value is\nnot valid, the UI will render an appropriate error\\r\\nmessage.\\r\\nIf the\n`PATCH /api/metrics/source/{sourceId}` request to update the\\r\\nvalue is\nmanually sent with an invalid value, the server will respond\\r\\nwith a\n400 status code and an error message.\\r\\n\\r\\nAlso, for retro\ncompatibility and to not block the user when the\\r\\nconfiguration can't\nbe successfully retrieved, in case of internal error\\r\\nthe `GET\n/api/metrics/source/{sourceId}` will return a 404 and on the\\r\\nUI,\ninstead of rendering a blank page, the user will see the empty\nform\\r\\nand will be able to re-insert the right values.\\r\\n\\r\\n##\nTesting\\r\\n\\r\\nNavigate to `Inventory`-> Click on `Settings` on the\ntopbar -> Start\\r\\nwriting different metric indices in the Metric\nIndices field.\\r\\n\\r\\n### Editing Metric Indices\nvalidation\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\\r\\n\\r\\n###\nMissing/Broken configuration\nresponse\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\\r\\n\\r\\nCo-authored-by:\nMarco Antonio Ghiani <[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v8.7.0\",\"labelRegex\":\"^v8.7.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/146272\",\"number\":146272,\"mergeCommit\":{\"message\":\"[Infrastructure\nUI] Improve metrics settings error handling (#146272)\\n\\nCloses\n[#145238](https://github.com/elastic/kibana/issues/145238)\\r\\n\\r\\n##\nSummary\\r\\n\\r\\nThese changes add validation to the Metric Indices passed\ninto the\\r\\nMetrics settings page.\\r\\nNew validation is added both in\nthe UI and in the endpoint, performing\\r\\nthe following checks:\\r\\n-\nIndex pattern is not an empty string\\r\\n- Index pattern does not contain\nempty spaces (start, middle, end) (the\\r\\npattern is not trimmed)\\r\\n-\nIndex pattern does not contain empty entries, comma-separated\nvalues\\r\\nshould have an acceptable value.\\r\\n\\r\\nIn case the value is\nnot valid, the UI will render an appropriate error\\r\\nmessage.\\r\\nIf the\n`PATCH /api/metrics/source/{sourceId}` request to update the\\r\\nvalue is\nmanually sent with an invalid value, the server will respond\\r\\nwith a\n400 status code and an error message.\\r\\n\\r\\nAlso, for retro\ncompatibility and to not block the user when the\\r\\nconfiguration can't\nbe successfully retrieved, in case of internal error\\r\\nthe `GET\n/api/metrics/source/{sourceId}` will return a 404 and on the\\r\\nUI,\ninstead of rendering a blank page, the user will see the empty\nform\\r\\nand will be able to re-insert the right values.\\r\\n\\r\\n##\nTesting\\r\\n\\r\\nNavigate to `Inventory`-> Click on `Settings` on the\ntopbar -> Start\\r\\nwriting different metric indices in the Metric\nIndices field.\\r\\n\\r\\n### Editing Metric Indices\nvalidation\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763021-0f4d8926-ffa4-448a-a038-696732158f4e.mov\\r\\n\\r\\n###\nMissing/Broken configuration\nresponse\\r\\n\\r\\n\\r\\nhttps://user-images.githubusercontent.com/34506779/203763120-ffc91cd3-9bf4-43da-a04f-5561ceabf591.mov\\r\\n\\r\\nCo-authored-by:\nMarco Antonio Ghiani <[email protected]>\\r\\nCo-authored-by:\nkibanamachine\n<[email protected]>\",\"sha\":\"ddcbf73284d48b1f1f6eb9322f6f108f312f8e02\"}}]}]\nBACKPORT-->\n\nCo-authored-by: Marco Antonio Ghiani <[email protected]>"}}]}] BACKPORT--> Co-authored-by: Marco Antonio Ghiani <[email protected]>
Closes #145238
Summary
These changes add validation to the Metric Indices passed into the Metrics settings page.
New validation is added both in the UI and in the endpoint, performing the following checks:
In case the value is not valid, the UI will render an appropriate error message.
If the
PATCH /api/metrics/source/{sourceId}
request to update the value is manually sent with an invalid value, the server will respond with a 400 status code and an error message.Also, for retro compatibility and to not block the user when the configuration can't be successfully retrieved, in case of internal error the
GET /api/metrics/source/{sourceId}
will return a 404 and on the UI, instead of rendering a blank page, the user will see the empty form and will be able to re-insert the right values.Testing
Navigate to
Inventory
-> Click onSettings
on the topbar -> Start writing different metric indices in the Metric Indices field.Editing Metric Indices validation
edit-indices.mov
Missing/Broken configuration response
missing-configuration.mov