Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[8.6] Added Time-series indexing (TSDB) to Integrations Experimental …
…Indexing settings (#144974) (#146562) # Backport This will backport the following commits from `main` to `8.6`: - [Added Time-series indexing (TSDB) to Integrations Experimental Indexing settings (#144974)](#144974) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Julia Bardi","email":"90178898+juliaElastic@users.noreply.github.com"},"sourceCommit":{"committedDate":"2022-11-17T09:13:20Z","message":"Added Time-series indexing (TSDB) to Integrations Experimental Indexing settings (#144974)\n\n## Summary\r\n\r\nCloses https://github.com/elastic/kibana/issues/144530\r\n\r\nAdded a new option under integration / data streams / Index settings\r\n(experimental) / TSDB\r\n\r\n- [x] Add a toggle to the \"Experimental indexing features\" data streams\r\nUI for TSDB\r\n- Enabling this toggle adds `index.mode: time_series` to the data\r\nstream's index template settings.\r\n- Note: `index.routing_path` value was not needed to be added in this\r\nlogic, because there is an existing elasticsearch automation that\r\ngenerates it from dimension fields, see test instructions.\r\n- [x] If the current package's manifest contains `index_mode:\r\ntime_series` for a given data stream, the toggle should be in an\r\n\"enabled + readonly\" state, e.g. it cannot be disabled\r\n- Note: currently there is no package that has this setting enabled, I\r\ntested locally by manually modifying the package info response. Will\r\nneed to figure out a way to create a mock package to test this.\r\n- [x] Once the toggle is enabled and the policy is saved, the toggle\r\nshould _not_ be disable-able. Enabling TSDB for a data stream is an\r\nirreversible operation\r\n- [x] Add a tooltip to make the irreversible nature of this operation\r\nclear\r\n\r\nTSDB setting in System package:\r\n<img width=\"915\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201656513-78bbe993-a900-4633-ad66-886f56ce2cf0.png\">\r\n<img width=\"632\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201656559-e0c90ae2-4b21-4ee9-9bfc-a69c4ffaf708.png\">\r\n\r\nTooltip:\r\n<img width=\"509\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201657054-11daeac3-cab2-45e4-8794-17a74b6c4300.png\">\r\n\r\n\r\n## Test instructions\r\n\r\n### Setup local registry\r\n\r\n- For testing, I created a new version of `System` package, that has a\r\n`dimension` field called `test_dimension`. This is needed so that the\r\nelasticsearch automation runs to generate the `routing_path` setting.\r\n\r\n- Download the test data zip:\r\n\r\n[registry-packages.zip](https://github.com/elastic/kibana/files/10004220/registry-packages.zip)\r\n\r\n\r\n- Start a registry:\r\n```\r\ndocker run -p 8080:8080 -v <path to unzipped dir>/input-packages/packages:/packages/test-packages -v <path to unzipped dir>/input-packages/package_registry_config.yml:/package-registry/config.yml docker.elastic.co/package-registry/package-registry:main\r\n```\r\n- Add this to your kibana config:\r\n```\r\nxpack.fleet.registryUrl: http://localhost:8080\r\n```\r\n\r\n- Open kibana, open Add System integration page (should be version\r\n`1.20.5` coming from local registry)\r\n- Enable only `Collect metrics from System instances / System cpu\r\nmetrics` stream, and enable `Time-series indexing (TSDB)` switch under\r\n`Advanced options`\r\n- Click on save integration. The integration should be added\r\nsuccessfully to an agent policy.\r\n- Start a fleet server and enroll an agent to the previously created\r\nagent policy. Wait for the agent to be healthy, this should trigger\r\nsystem metrics flowing in, this way triggering the creation of the data\r\nstream.\r\n- Go to `Stack Management / Index Management / Index Templates`, and\r\nopen the details of `metrics-system.cpu`, check that it has this in\r\n`Settings` tab: `index.mode: time_series`\r\n\r\n<img width=\"2013\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201657409-1754d5a4-98fa-4646-9ccf-e47981404018.png\">\r\n\r\n- Go to `Indices` tab and look for\r\n`data_stream=\"metrics-system.cpu-default\"` including hidden indices. You\r\nshould see `routing_path` populated in Settings, and `test_dimension` in\r\nMappings.\r\n\r\n<img width=\"1792\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201659788-845fbca8-2cdb-4d1b-8af6-efc24b71f1d3.png\">\r\n<img width=\"774\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201659882-e9cba197-d354-494c-974a-3c580d4d98a5.png\">\r\n\r\n### Testing scenario of enabling TSDB in package spec by default\r\n\r\n- Prepared a newer version of `system` package `v1.20.9` that has\r\n`index_mode: \"time_series\"` in `system.cpu` data stream in package\r\nmanifest.\r\n- Download and extract the below zip and restart the local epr container\r\nto read from this folder.\r\n\r\n[registry-packages.zip](https://github.com/elastic/kibana/files/10011702/registry-packages.zip)\r\n- Open add system integration page\r\n- Check that `tsdb:true` is set in `Preview API request` for\r\n`system.cpu` data stream\r\n\r\n<img width=\"1033\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897480-f9a79526-776f-4d9f-b168-474b44e0aa53.png\">\r\n\r\n- Open the system cpu metrics stream on the policy editor, and check\r\nthat the TSDB switch is turned on.\r\n<img width=\"1093\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897787-f5a34aa6-c150-4c90-af97-bda6df92e0c4.png\">\r\n<img width=\"1051\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897943-85157b6b-caca-492d-8933-46ebe19b6930.png\">\r\n\r\n### Update 11/16:\r\n\r\n- After latest changes, expect `routing_path` with dimension fields to\r\nbe generated in Index Template when enabling TSDB:\r\n\r\n<img width=\"1163\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/202123899-388d3f74-014a-492c-91ad-8afc9e454186.png\">\r\n\r\nThis was added to fix the issue mentioned here\r\nhttps://github.com//pull/144974#issuecomment-1315270890\r\n\r\n- After adding TSDB, modifying the parent component template should be\r\nsuccessful.\r\n\r\n<img width=\"555\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/202124250-14bcc310-0dd9-4246-8461-ef66c1f7ac43.png\">\r\n\r\n\r\n### Checklist\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"4608af41da7dc98403bbdbfba8a3ac02475277e4","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["backport:skip","Team:Fleet","release_note:feature","v8.7.0"],"number":144974,"url":"https://github.com/elastic/kibana/pull/144974","mergeCommit":{"message":"Added Time-series indexing (TSDB) to Integrations Experimental Indexing settings (#144974)\n\n## Summary\r\n\r\nCloses https://github.com/elastic/kibana/issues/144530\r\n\r\nAdded a new option under integration / data streams / Index settings\r\n(experimental) / TSDB\r\n\r\n- [x] Add a toggle to the \"Experimental indexing features\" data streams\r\nUI for TSDB\r\n- Enabling this toggle adds `index.mode: time_series` to the data\r\nstream's index template settings.\r\n- Note: `index.routing_path` value was not needed to be added in this\r\nlogic, because there is an existing elasticsearch automation that\r\ngenerates it from dimension fields, see test instructions.\r\n- [x] If the current package's manifest contains `index_mode:\r\ntime_series` for a given data stream, the toggle should be in an\r\n\"enabled + readonly\" state, e.g. it cannot be disabled\r\n- Note: currently there is no package that has this setting enabled, I\r\ntested locally by manually modifying the package info response. Will\r\nneed to figure out a way to create a mock package to test this.\r\n- [x] Once the toggle is enabled and the policy is saved, the toggle\r\nshould _not_ be disable-able. Enabling TSDB for a data stream is an\r\nirreversible operation\r\n- [x] Add a tooltip to make the irreversible nature of this operation\r\nclear\r\n\r\nTSDB setting in System package:\r\n<img width=\"915\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201656513-78bbe993-a900-4633-ad66-886f56ce2cf0.png\">\r\n<img width=\"632\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201656559-e0c90ae2-4b21-4ee9-9bfc-a69c4ffaf708.png\">\r\n\r\nTooltip:\r\n<img width=\"509\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201657054-11daeac3-cab2-45e4-8794-17a74b6c4300.png\">\r\n\r\n\r\n## Test instructions\r\n\r\n### Setup local registry\r\n\r\n- For testing, I created a new version of `System` package, that has a\r\n`dimension` field called `test_dimension`. This is needed so that the\r\nelasticsearch automation runs to generate the `routing_path` setting.\r\n\r\n- Download the test data zip:\r\n\r\n[registry-packages.zip](https://github.com/elastic/kibana/files/10004220/registry-packages.zip)\r\n\r\n\r\n- Start a registry:\r\n```\r\ndocker run -p 8080:8080 -v <path to unzipped dir>/input-packages/packages:/packages/test-packages -v <path to unzipped dir>/input-packages/package_registry_config.yml:/package-registry/config.yml docker.elastic.co/package-registry/package-registry:main\r\n```\r\n- Add this to your kibana config:\r\n```\r\nxpack.fleet.registryUrl: http://localhost:8080\r\n```\r\n\r\n- Open kibana, open Add System integration page (should be version\r\n`1.20.5` coming from local registry)\r\n- Enable only `Collect metrics from System instances / System cpu\r\nmetrics` stream, and enable `Time-series indexing (TSDB)` switch under\r\n`Advanced options`\r\n- Click on save integration. The integration should be added\r\nsuccessfully to an agent policy.\r\n- Start a fleet server and enroll an agent to the previously created\r\nagent policy. Wait for the agent to be healthy, this should trigger\r\nsystem metrics flowing in, this way triggering the creation of the data\r\nstream.\r\n- Go to `Stack Management / Index Management / Index Templates`, and\r\nopen the details of `metrics-system.cpu`, check that it has this in\r\n`Settings` tab: `index.mode: time_series`\r\n\r\n<img width=\"2013\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201657409-1754d5a4-98fa-4646-9ccf-e47981404018.png\">\r\n\r\n- Go to `Indices` tab and look for\r\n`data_stream=\"metrics-system.cpu-default\"` including hidden indices. You\r\nshould see `routing_path` populated in Settings, and `test_dimension` in\r\nMappings.\r\n\r\n<img width=\"1792\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201659788-845fbca8-2cdb-4d1b-8af6-efc24b71f1d3.png\">\r\n<img width=\"774\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201659882-e9cba197-d354-494c-974a-3c580d4d98a5.png\">\r\n\r\n### Testing scenario of enabling TSDB in package spec by default\r\n\r\n- Prepared a newer version of `system` package `v1.20.9` that has\r\n`index_mode: \"time_series\"` in `system.cpu` data stream in package\r\nmanifest.\r\n- Download and extract the below zip and restart the local epr container\r\nto read from this folder.\r\n\r\n[registry-packages.zip](https://github.com/elastic/kibana/files/10011702/registry-packages.zip)\r\n- Open add system integration page\r\n- Check that `tsdb:true` is set in `Preview API request` for\r\n`system.cpu` data stream\r\n\r\n<img width=\"1033\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897480-f9a79526-776f-4d9f-b168-474b44e0aa53.png\">\r\n\r\n- Open the system cpu metrics stream on the policy editor, and check\r\nthat the TSDB switch is turned on.\r\n<img width=\"1093\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897787-f5a34aa6-c150-4c90-af97-bda6df92e0c4.png\">\r\n<img width=\"1051\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897943-85157b6b-caca-492d-8933-46ebe19b6930.png\">\r\n\r\n### Update 11/16:\r\n\r\n- After latest changes, expect `routing_path` with dimension fields to\r\nbe generated in Index Template when enabling TSDB:\r\n\r\n<img width=\"1163\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/202123899-388d3f74-014a-492c-91ad-8afc9e454186.png\">\r\n\r\nThis was added to fix the issue mentioned here\r\nhttps://github.com//pull/144974#issuecomment-1315270890\r\n\r\n- After adding TSDB, modifying the parent component template should be\r\nsuccessful.\r\n\r\n<img width=\"555\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/202124250-14bcc310-0dd9-4246-8461-ef66c1f7ac43.png\">\r\n\r\n\r\n### Checklist\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"4608af41da7dc98403bbdbfba8a3ac02475277e4"}},"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/144974","number":144974,"mergeCommit":{"message":"Added Time-series indexing (TSDB) to Integrations Experimental Indexing settings (#144974)\n\n## Summary\r\n\r\nCloses https://github.com/elastic/kibana/issues/144530\r\n\r\nAdded a new option under integration / data streams / Index settings\r\n(experimental) / TSDB\r\n\r\n- [x] Add a toggle to the \"Experimental indexing features\" data streams\r\nUI for TSDB\r\n- Enabling this toggle adds `index.mode: time_series` to the data\r\nstream's index template settings.\r\n- Note: `index.routing_path` value was not needed to be added in this\r\nlogic, because there is an existing elasticsearch automation that\r\ngenerates it from dimension fields, see test instructions.\r\n- [x] If the current package's manifest contains `index_mode:\r\ntime_series` for a given data stream, the toggle should be in an\r\n\"enabled + readonly\" state, e.g. it cannot be disabled\r\n- Note: currently there is no package that has this setting enabled, I\r\ntested locally by manually modifying the package info response. Will\r\nneed to figure out a way to create a mock package to test this.\r\n- [x] Once the toggle is enabled and the policy is saved, the toggle\r\nshould _not_ be disable-able. Enabling TSDB for a data stream is an\r\nirreversible operation\r\n- [x] Add a tooltip to make the irreversible nature of this operation\r\nclear\r\n\r\nTSDB setting in System package:\r\n<img width=\"915\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201656513-78bbe993-a900-4633-ad66-886f56ce2cf0.png\">\r\n<img width=\"632\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201656559-e0c90ae2-4b21-4ee9-9bfc-a69c4ffaf708.png\">\r\n\r\nTooltip:\r\n<img width=\"509\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201657054-11daeac3-cab2-45e4-8794-17a74b6c4300.png\">\r\n\r\n\r\n## Test instructions\r\n\r\n### Setup local registry\r\n\r\n- For testing, I created a new version of `System` package, that has a\r\n`dimension` field called `test_dimension`. This is needed so that the\r\nelasticsearch automation runs to generate the `routing_path` setting.\r\n\r\n- Download the test data zip:\r\n\r\n[registry-packages.zip](https://github.com/elastic/kibana/files/10004220/registry-packages.zip)\r\n\r\n\r\n- Start a registry:\r\n```\r\ndocker run -p 8080:8080 -v <path to unzipped dir>/input-packages/packages:/packages/test-packages -v <path to unzipped dir>/input-packages/package_registry_config.yml:/package-registry/config.yml docker.elastic.co/package-registry/package-registry:main\r\n```\r\n- Add this to your kibana config:\r\n```\r\nxpack.fleet.registryUrl: http://localhost:8080\r\n```\r\n\r\n- Open kibana, open Add System integration page (should be version\r\n`1.20.5` coming from local registry)\r\n- Enable only `Collect metrics from System instances / System cpu\r\nmetrics` stream, and enable `Time-series indexing (TSDB)` switch under\r\n`Advanced options`\r\n- Click on save integration. The integration should be added\r\nsuccessfully to an agent policy.\r\n- Start a fleet server and enroll an agent to the previously created\r\nagent policy. Wait for the agent to be healthy, this should trigger\r\nsystem metrics flowing in, this way triggering the creation of the data\r\nstream.\r\n- Go to `Stack Management / Index Management / Index Templates`, and\r\nopen the details of `metrics-system.cpu`, check that it has this in\r\n`Settings` tab: `index.mode: time_series`\r\n\r\n<img width=\"2013\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201657409-1754d5a4-98fa-4646-9ccf-e47981404018.png\">\r\n\r\n- Go to `Indices` tab and look for\r\n`data_stream=\"metrics-system.cpu-default\"` including hidden indices. You\r\nshould see `routing_path` populated in Settings, and `test_dimension` in\r\nMappings.\r\n\r\n<img width=\"1792\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201659788-845fbca8-2cdb-4d1b-8af6-efc24b71f1d3.png\">\r\n<img width=\"774\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201659882-e9cba197-d354-494c-974a-3c580d4d98a5.png\">\r\n\r\n### Testing scenario of enabling TSDB in package spec by default\r\n\r\n- Prepared a newer version of `system` package `v1.20.9` that has\r\n`index_mode: \"time_series\"` in `system.cpu` data stream in package\r\nmanifest.\r\n- Download and extract the below zip and restart the local epr container\r\nto read from this folder.\r\n\r\n[registry-packages.zip](https://github.com/elastic/kibana/files/10011702/registry-packages.zip)\r\n- Open add system integration page\r\n- Check that `tsdb:true` is set in `Preview API request` for\r\n`system.cpu` data stream\r\n\r\n<img width=\"1033\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897480-f9a79526-776f-4d9f-b168-474b44e0aa53.png\">\r\n\r\n- Open the system cpu metrics stream on the policy editor, and check\r\nthat the TSDB switch is turned on.\r\n<img width=\"1093\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897787-f5a34aa6-c150-4c90-af97-bda6df92e0c4.png\">\r\n<img width=\"1051\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/201897943-85157b6b-caca-492d-8933-46ebe19b6930.png\">\r\n\r\n### Update 11/16:\r\n\r\n- After latest changes, expect `routing_path` with dimension fields to\r\nbe generated in Index Template when enabling TSDB:\r\n\r\n<img width=\"1163\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/202123899-388d3f74-014a-492c-91ad-8afc9e454186.png\">\r\n\r\nThis was added to fix the issue mentioned here\r\nhttps://github.com//pull/144974#issuecomment-1315270890\r\n\r\n- After adding TSDB, modifying the parent component template should be\r\nsuccessful.\r\n\r\n<img width=\"555\" alt=\"image\"\r\nsrc=\"https://user-images.githubusercontent.com/90178898/202124250-14bcc310-0dd9-4246-8461-ef66c1f7ac43.png\">\r\n\r\n\r\n### Checklist\r\n\r\n- [x] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [x] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"4608af41da7dc98403bbdbfba8a3ac02475277e4"}}]}] BACKPORT--> Co-authored-by: Julia Bardi <90178898+juliaElastic@users.noreply.github.com>
- Loading branch information