From d5e2afdeee9a48d2da763fc6e300723cb855b953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georgiana-Andreea=20Onolea=C8=9B=C4=83?= Date: Mon, 7 Oct 2024 12:47:40 +0300 Subject: [PATCH 01/62] [ResponseOps][Cases] Design Review changes PR 2 (#194681) ## Summary Connects to https://github.com/elastic/kibana/issues/188187 - the "add template" button is now hidden once the user reaches the limit of 10 templates and the message is displayed in a subdued color to inform the user that the limit has been reached. ![Screenshot 2024-10-03 at 13 47 32](https://github.com/user-attachments/assets/42622eff-2582-41e6-9318-18126e477f12) - same applies to custom fields ![Screenshot 2024-10-03 at 13 52 20](https://github.com/user-attachments/assets/b0f13235-4345-45f1-b772-0cc5ccc771bb) --- .../components/custom_fields/index.test.tsx | 5 +-- .../public/components/custom_fields/index.tsx | 40 +++++++++---------- .../components/templates/index.test.tsx | 4 +- .../public/components/templates/index.tsx | 38 +++++++++--------- 4 files changed, 43 insertions(+), 44 deletions(-) diff --git a/x-pack/plugins/cases/public/components/custom_fields/index.test.tsx b/x-pack/plugins/cases/public/components/custom_fields/index.test.tsx index 26ee9b8476da6..fc6c774c20b0c 100644 --- a/x-pack/plugins/cases/public/components/custom_fields/index.test.tsx +++ b/x-pack/plugins/cases/public/components/custom_fields/index.test.tsx @@ -97,13 +97,12 @@ describe('CustomFields', () => { required: false, }); } + const customFields = [...customFieldsConfigurationMock, ...generatedMockCustomFields]; appMockRender.render(); - await userEvent.click(await screen.findByTestId('add-custom-field')); - expect(await screen.findByText(i18n.MAX_CUSTOM_FIELD_LIMIT(MAX_CUSTOM_FIELDS_PER_CASE))); - expect(await screen.findByTestId('add-custom-field')).toHaveAttribute('disabled'); + expect(screen.queryByTestId('add-custom-field')).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/custom_fields/index.tsx b/x-pack/plugins/cases/public/components/custom_fields/index.tsx index 3c754d39a63fb..d749a7aba9bea 100644 --- a/x-pack/plugins/cases/public/components/custom_fields/index.tsx +++ b/x-pack/plugins/cases/public/components/custom_fields/index.tsx @@ -80,18 +80,9 @@ const CustomFieldsComponent: React.FC = ({ onDeleteCustomField={handleDeleteCustomField} onEditCustomField={onEditCustomField} /> - {error ? ( - - - - {i18n.MAX_CUSTOM_FIELD_LIMIT(MAX_CUSTOM_FIELDS_PER_CASE)} - - - - ) : null} ) : null} - + {!customFields.length ? ( @@ -102,18 +93,27 @@ const CustomFieldsComponent: React.FC = ({ ) : null} - - {i18n.ADD_CUSTOM_FIELD} - + {customFields.length < MAX_CUSTOM_FIELDS_PER_CASE ? ( + + {i18n.ADD_CUSTOM_FIELD} + + ) : ( + + + {i18n.MAX_CUSTOM_FIELD_LIMIT(MAX_CUSTOM_FIELDS_PER_CASE)} + + + )} + ) : null; diff --git a/x-pack/plugins/cases/public/components/templates/index.test.tsx b/x-pack/plugins/cases/public/components/templates/index.test.tsx index 1c7b6cc3ff0e6..7fcb563a54dde 100644 --- a/x-pack/plugins/cases/public/components/templates/index.test.tsx +++ b/x-pack/plugins/cases/public/components/templates/index.test.tsx @@ -130,9 +130,7 @@ describe('Templates', () => { appMockRender.render(); - await userEvent.click(await screen.findByTestId('add-template')); - expect(await screen.findByText(i18n.MAX_TEMPLATE_LIMIT(MAX_TEMPLATES_LENGTH))); - expect(await screen.findByTestId('add-template')).toHaveAttribute('disabled'); + expect(screen.queryByTestId('add-template')).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/cases/public/components/templates/index.tsx b/x-pack/plugins/cases/public/components/templates/index.tsx index 3be2bf92411a9..479101d2889ad 100644 --- a/x-pack/plugins/cases/public/components/templates/index.tsx +++ b/x-pack/plugins/cases/public/components/templates/index.tsx @@ -92,16 +92,9 @@ const TemplatesComponent: React.FC = ({ onEditTemplate={handleEditTemplate} onDeleteTemplate={handleDeleteTemplate} /> - {error ? ( - - - {i18n.MAX_TEMPLATE_LIMIT(MAX_TEMPLATES_LENGTH)} - - - ) : null} ) : null} - + {!templates.length ? ( @@ -113,16 +106,25 @@ const TemplatesComponent: React.FC = ({ {canAddTemplates ? ( - - {i18n.ADD_TEMPLATE} - + {templates.length < MAX_TEMPLATES_LENGTH ? ( + + {i18n.ADD_TEMPLATE} + + ) : ( + + + {i18n.MAX_TEMPLATE_LIMIT(MAX_TEMPLATES_LENGTH)} + + + )} + ) : null} From 94caafd57d8fcff310ca4117cbf984bbb54658cb Mon Sep 17 00:00:00 2001 From: florent-leborgne Date: Mon, 7 Oct 2024 11:51:42 +0200 Subject: [PATCH 02/62] (Docs) Add Kibana upgrade notes page (#193268) ## Summary This PR: - adds a page that is a compiled list of all breaking changes and deprecations introduced since the last major version. I slightly edited some bits to align the wording and add version information to each item, and took a bit of freedom (not too much!) to ignore items that shouldn't be identified as deprecations or breaking changes, or to move them to the appropriate section in this page. - adds a link to the new page from the Upgrade Kibana page. image image I'm wondering if we should leave this uncategorized or at least identify which items are specific to a solution. It also doesn't make much sense that we have Obs here while we don't have Security. Let's think about a consistent way to do it. Note: In this PR, the page is initially added under the Release notes section. I'll need to make sure that this does not interfere with the release notes automation. Note 2: If we move forward with this proposal, we'll need update the release notes internal docs to add the relevant information to this page with each minor release, or find a way to automate. Closes: https://github.com/elastic/kibana-team/issues/1075 --------- Co-authored-by: Lisa Cawley Co-authored-by: Kaarina Tungseth Co-authored-by: Luke Elmers --- docs/CHANGELOG.asciidoc | 95 +- docs/setup/upgrade.asciidoc | 2 + docs/upgrade-notes.asciidoc | 1716 +++++++++++++++++++++++++++++++++++ 3 files changed, 1724 insertions(+), 89 deletions(-) create mode 100644 docs/upgrade-notes.asciidoc diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index 03bc26d3824ca..b88939fdfdc84 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -73,6 +73,9 @@ Review important information about the {kib} 8.x releases. -- + +include::upgrade-notes.asciidoc[] + [[release-notes-8.15.2]] == {kib} 8.15.2 @@ -119,6 +122,7 @@ Machine Learning:: * Fixes link to anomaly detection wizard from pattern analysis in Discover ({kibana-pull}192375[#192375]). * Fixes an issue with the `http_endpoint` input config loading incorrectly in an Automatic Import workflow ({kibana-pull}191964[#191964]). + [[release-notes-8.15.1]] == {kib} 8.15.1 @@ -241,7 +245,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.15.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-184036]] .Adds rate limiting to install by upload endpoint. [%collapsible] ==== @@ -660,7 +663,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.14.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-182074]] .Renamed an advanced setting to enable {esql}. [%collapsible] ==== @@ -1111,7 +1113,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.13.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-176879]] .Removes conditional topics for Kafka outputs [%collapsible] ==== @@ -1120,7 +1121,6 @@ The Kafka output no longer supports conditional topics. For more information, re ==== [discrete] -[[breaking-176443]] .Most Fleet installed integrations are now read-only and labelled with a *Managed* tag in the Kibana UI [%collapsible] ==== @@ -1136,7 +1136,6 @@ For more information, refer to ({kibana-pull}172393[#172393]). ==== [discrete] -[[breaking-174674]] .Removes `is_nan`, `is_finite`, and `is_infinite` functions from {esql} [%collapsible] ==== @@ -1512,7 +1511,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.12.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-172224]] .New SLO architecture [%collapsible] ==== @@ -1536,7 +1534,6 @@ Be aware that when installing a new SLO (or after resetting an SLO), we install ==== [discrete] -[[breaking-170635]] .A new sub-feature privilege to control user access to the cases settings [%collapsible] ==== @@ -1920,21 +1917,21 @@ Before you upgrade to 8.11.0, review the breaking changes, then mitigate the imp [discrete] -[[breaking-167085]] .Improve config output validation for default output. [%collapsible] ==== *Details* + Improve config output validation to not allow to defining multiple default outputs in {kib} configuration. For more information, refer to ({kibana-pull}167085[#167085]). ==== + [discrete] -[[breaking-161806]] .Convert filterQuery to KQL. [%collapsible] ==== *Details* + Converts `filterQuery` to a KQL query string. For more information, refer to ({kibana-pull}161806[#161806]). ==== + [float] [[deprecations-8.11.0]] === Deprecations @@ -2264,7 +2261,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.10.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-162665]] .New summary search capabilities cause existing SLOs to stop working [%collapsible] ==== @@ -2342,7 +2338,6 @@ DELETE .slo-observability.sli-v1* ==== [discrete] -[[breaking-162506]] .Get case metrics APIs now internal [%collapsible] ==== @@ -2351,7 +2346,6 @@ The get case metrics APIs are now internal. For more information, refer to ({kib ==== [discrete] -[[breaking-162492]] .Case limits [%collapsible] ==== @@ -2373,7 +2367,6 @@ For the full list, refer to {kib-issue}146945[#146945]. ==== [discrete] -[[breaking-159041]] .`addProcessorDefinition` is removed [%collapsible] ==== @@ -2382,7 +2375,6 @@ The function `addProcessorDefinition` is removed from the Console plugin start c ==== [discrete] -[[breaking-162288]] .The Download CSV endpoint has changed. [%collapsible] ==== @@ -2699,7 +2691,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.9.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-159118]] .Hide Uptime app if no data is available [%collapsible] ==== @@ -2709,7 +2700,6 @@ For synthetic monitoring, we now recommend to use the new Synthetics app. For mo ==== [discrete] -[[breaking-159012]] .Remove synthetics pattern from Uptime settings [%collapsible] ==== @@ -3282,7 +3272,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.8.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-155470]] .Removes legacy project monitor API [%collapsible] ==== @@ -3294,7 +3283,6 @@ In 8.8.0 and later, an error appears when you use the project monitor API. ==== [discrete] -[[breaking-147985]] .Changes the privileges for alerts and cases [%collapsible] ==== @@ -3799,7 +3787,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.7.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-149482]] .Removes the fields list sampling setting [%collapsible] ==== @@ -3811,7 +3798,6 @@ In 8.1.0 and later, {kib} uses the field caps API, by default, to determine the ==== [discrete] -[[breaking-146990]] .Removes the legacy pie chart visualization setting [%collapsible] ==== @@ -3823,7 +3809,6 @@ In 7.14.0 and later, the new aggregation-based pie chart visualization is availa ==== [discrete] -[[breaking-147616]] .Removes the current_upgrades endpoint [%collapsible] ==== @@ -3835,7 +3820,6 @@ When you upgrade to 8.7.0, use the `/action_status` endpoint. ==== [discrete] -[[breaking-147199]] .Removes the preconfiguration API route [%collapsible] ==== @@ -4298,7 +4282,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.6.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-143081]] .Changes the `histogram:maxBars` default setting [%collapsible] ==== @@ -4314,7 +4297,6 @@ For each {kibana-ref}/xpack-spaces.html[space], complete the following to change ==== [discrete] -[[breaking-158338]] .CSV reports use PIT instead of Scroll [%collapsible] ==== @@ -4742,7 +4724,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.5.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-141757]] .Updates bulk action API to return actionId instead of agent success [%collapsible] ==== @@ -4754,7 +4735,6 @@ When you use `FleetBulkResponse`, you now receive only `actionId` responses. ==== [discrete] -[[breaking-139431]] .Removes filter validation for ad-hoc data views [%collapsible] ==== @@ -4766,7 +4746,6 @@ Filters associated with unknown data views now display a warning message instead ==== [discrete] -[[breaking-138677]] .Removes the `package_policies` field from the agent policy saved object [%collapsible] ==== @@ -5240,7 +5219,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.4.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-135669]] .xpack.agents.* are uneditable in UI when defined in kibana.yml [%collapsible] ==== @@ -5254,7 +5232,6 @@ To configure `setxpack.fleet.agents.fleet_server.hosts` and `xpack.fleet.agents. ==== [discrete] -[[breaking-134336]] .Removes the legacy charts library [%collapsible] ==== @@ -5831,7 +5808,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade, review the breaking change, then mitigate the impact to your application. [discrete] -[[breaking-129581]] .Removes Quandl and Graphite integrations [%collapsible] ==== @@ -5845,7 +5821,6 @@ To leave your feedback about the removal of `.quandl` and `.graphite`, go to the ==== [discrete] -[[breaking-134855]] .Makes Osquery All with All base privilege [%collapsible] ==== @@ -6822,7 +6797,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.1.0, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-121435]] .Removes legacy CSV export type [%collapsible] ==== @@ -6834,7 +6808,6 @@ If you are using 7.13.0 and earlier, {kibana-ref-all}/8.1/automating-report-gene ==== [discrete] -[[breaking-121369]] .Removes legacy PDF shim [%collapsible] ==== @@ -7186,7 +7159,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade to 8.0.0, review the breaking change, then mitigate the impact to your application. [discrete] -[[breaking-123754]] .Removes the `console.ssl` setting [%collapsible] ==== @@ -7314,7 +7286,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade, review the breaking change, then mitigate the impact to your application. [discrete] -[[breaking-122722]] .Removes the ability to use `elasticsearch.username: elastic` in production [%collapsible] ==== @@ -7396,7 +7367,6 @@ Breaking changes can prevent your application from optimal operation and perform Before you upgrade, review the breaking changes, then mitigate the impact to your application. [discrete] -[[breaking-118854]] .Splits package policy `upgrade` endpoint for Fleet [%collapsible] ==== @@ -7432,7 +7402,6 @@ The endpoint is now split into two separate endpoints: ==== [discrete] -[[breaking-119945]] .Removes APM jobs from Machine Learning [%collapsible] ==== @@ -7444,7 +7413,6 @@ When you upgrade to 8.0.0, you are unable to create and view the APM Node.js and ==== [discrete] -[[breaking-118300]] .Fails migrations for unknown types [%collapsible] ==== @@ -7456,7 +7424,6 @@ To complete the migration, re enable plugins or delete documents from the index ==== [discrete] -[[breaking-116821]] .Removes deprecated config fields from Logs and Metrics APIs and saved objects [%collapsible] ==== @@ -7487,7 +7454,6 @@ To review the breaking changes in previous versions, refer to the following: Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade. [discrete] -[[deprecation-120689]] .Renames the `autocreate` data view APM setting [%collapsible] ==== @@ -7499,7 +7465,6 @@ To automatically create data views in APM, use `xpack.apm.autoCreateApmDataView` ==== [discrete] -[[deprecation-119494]] .Updates Fleet API to improve consistency [%collapsible] ==== @@ -7696,7 +7661,6 @@ To review the breaking changes in previous versions, refer to the following: ==== Alerting [discrete] -[[breaking-114558]] .Removes `xpack.task_manager.index` [%collapsible] ==== @@ -7708,7 +7672,6 @@ Before you upgrade to 8.0.0, remove `xpack.task_manager.index` from kibana.yml. ==== [discrete] -[[breaking-113461]] .Removes ability to remove plugins [%collapsible] ==== @@ -7724,7 +7687,6 @@ Before you upgrade to 8.0.0, remove `xpack.actions.enabled` from kibana.yml. ==== Lens & visualizations [discrete] -[[breaking-113516]] .Removes display options from legacy gauge [%collapsible] ==== @@ -7736,7 +7698,6 @@ When you create aggregation-based gauge visualizations, the *Display warnings* o ==== [discrete] -[[breaking-112643]] .Removes settings from visEditors plugins [%collapsible] ==== @@ -7781,7 +7742,6 @@ Before you upgrade, make the following changes in kibana.yml: ==== [discrete] -[[breaking-111704]] .Removes dimming opacity setting [%collapsible] ==== @@ -7793,7 +7753,6 @@ When you upgrade to 8.0.0, you are no longer able to configure the dimming opact ==== [discrete] -[[breaking-110985]] .Removes Less stylesheet support [%collapsible] ==== @@ -7805,7 +7764,6 @@ Existing less stylesheets are automatically converted to CSS stylesheets. ==== [discrete] -[[breaking-110571]] .Disables the input string mode [%collapsible] ==== @@ -7827,7 +7785,6 @@ To use index patterns and {es} indices in *TSVB* visualizations: ==== Logs [discrete] -[[breaking-115974]] .Removes deprecated alias config entries [%collapsible] ==== @@ -7839,7 +7796,6 @@ Before you upgrade, remove the settings from kibana.yml, then configure the sett ==== [discrete] -[[breaking-61302]] .Removes configurable fields in settings [%collapsible] ==== @@ -7855,7 +7811,6 @@ Configure the settings in https://www.elastic.co/guide/en/ecs/current/ecs-refere ==== Machine learning [discrete] -[[breaking-115444]] .Grants access to machine learning features when base privileges are used [%collapsible] ==== @@ -7871,7 +7826,6 @@ If you do not want to grant users privileges to machine learning features, updat ==== Maps [discrete] -[[breaking-116184]] .Removes proxyElasticMapsServiceInMaps [%collapsible] ==== @@ -7887,7 +7841,6 @@ Install the on-prem version of the <>, ==== Operations [discrete] -[[breaking-111535]] .Removes environment variables [%collapsible] ==== @@ -7903,7 +7856,6 @@ Replace the `CONFIG_PATH` environment variable with `KBN_PATH_CONF`, and replace ==== Platform [discrete] -[[breaking-114379]] .Removes supports for csp.rules configuration [%collapsible] ==== @@ -7915,7 +7867,6 @@ Configuring the default `csp.script_src`, `csp.workers_src`, and `csp.style_src` ==== [discrete] -[[breaking-113653]] .Changes and removes deprecated core settings and deprecated settings from core plugins [%collapsible] ==== @@ -7949,7 +7900,6 @@ For more information, refer to {kibana-pull}113653[#113653]. ==== [discrete] -[[breaking-113495]] .Removes `enabled` settings from plugins [%collapsible] ==== @@ -7966,7 +7916,6 @@ Before you upgrade to 8.0.0: ==== [discrete] -[[breaking-113367]] .Removes `--plugin-dir` cli option [%collapsible] ==== @@ -7978,7 +7927,6 @@ Before you upgrade to 8.0.0, remove `plugins.scanDirs` from kibana.yml. ==== [discrete] -[[breaking-113296]] .Removes support for `optimize.*` settings [%collapsible] ==== @@ -8012,7 +7960,6 @@ To run the `@kbn/optimizer` separately in development, pass `--no-optimizer` to ==== [discrete] -[[breaking-113173]] .Removes `so/server/es` settings [%collapsible] ==== @@ -8031,7 +7978,6 @@ Before you upgrade to 8.0.0., remove these settings from kibana.yml. ==== [discrete] -[[breaking-113068]] .Adds requirement for inline scripting [%collapsible] ==== @@ -8043,7 +7989,6 @@ Enable {ref}/modules-scripting-security.html[inline scripting]. ==== [discrete] -[[breaking-112773]] .Removes `kibana.index` settings [%collapsible] ==== @@ -8055,7 +8000,6 @@ Use spaces, cross-cluster replication, or cross-cluster search. To migrate to << ==== [discrete] -[[breaking-112305]] .Removes legacy logging [%collapsible] ==== @@ -8071,7 +8015,6 @@ Use the new <>. ==== Reporting [discrete] -[[breaking-114216]] .Removes reporting settings [%collapsible] ==== @@ -8097,7 +8040,6 @@ Before you upgrade to 8.0.0, remove the settings from kibana.yml. ==== REST API [discrete] -[[breaking-114730]] .Removes `/api/settings` [%collapsible] ==== @@ -8113,7 +8055,6 @@ Use `/api/stats`. ==== Security [discrete] -[[breaking-116191]] .Removes legacy audit logger [%collapsible] ==== @@ -8200,7 +8141,6 @@ Breaking changes can prevent your application from optimal operation and perform To review the breaking changes in the previous version, refer to <>. [discrete] -[[breaking-110830]] .Changes the `GET /api/status` default behavior [%collapsible] ==== @@ -8212,7 +8152,6 @@ To retrieve the {kib} status in the previous format, use `GET /api/status?v7form ==== [discrete] -[[breaking-110738]] .Removes support for legacy exports [%collapsible] ==== @@ -8224,7 +8163,6 @@ Using the user interface to import saved objects is restricted to `.ndjson` form ==== [discrete] -[[breaking-109896]] .Removes `map.regionmap.*` [%collapsible] ==== @@ -8242,7 +8180,6 @@ If you have maps that use `map.regionmap` layers: ==== [discrete] -[[breaking-109798]] .Removes `kibana.defaultAppId` [%collapsible] ==== @@ -8254,7 +8191,6 @@ When you upgrade, remove `kibana.defaultAppId` from your kibana.yml file. To con ==== [discrete] -[[breaking-109350]] .Removes `courier:batchSearches` [%collapsible] ==== @@ -8266,7 +8202,6 @@ When you upgrade, the `courier:batchSearches` setting will no longer be availabl ==== [discrete] -[[breaking-108111]] .Removes `xpack.task_manager.index` [%collapsible] ==== @@ -8278,7 +8213,6 @@ When you upgrade, remove `xpack.task_manager.index` from your kibana.yml file. ==== [discrete] -[[breaking-108103]] .Removes dashboard-only mode [%collapsible] ==== @@ -8290,7 +8224,6 @@ To grant users access to only dashboards, create a new role, then assign only th ==== [discrete] -[[breaking-105979]] .Removes `xpack.maps.showMapVisualizationTypes` [%collapsible] ==== @@ -8343,7 +8276,6 @@ Breaking changes can prevent your application from optimal operation and perform ==== Enterprise Search changes [discrete] -[[breaking-106307]] .Required security plugin in 8.0 [%collapsible] ==== @@ -8359,7 +8291,6 @@ Enable X-Pack Security. ==== Index pattern changes [discrete] -[[breaking-35173]] .Removed support for time-based interval index patterns [%collapsible] ==== @@ -8375,7 +8306,6 @@ You must migrate your time_based index patterns to a wildcard pattern. For examp ==== Operations changes [discrete] -[[breaking-93835]] .Removed platform from archive root directory [%collapsible] ==== @@ -8387,7 +8317,6 @@ To use the new folder, update the configuration management tools and automation. ==== [discrete] -[[breaking-90511]] .Removed default support for TLS v1.0 and v1.1 [%collapsible] ==== @@ -8399,7 +8328,6 @@ To enable support, set `--tls-min-1.0` in the `node.options` configuration file. ==== [discrete] -[[breaking-74424]] .Removed support for sysv init [%collapsible] ==== @@ -8411,7 +8339,6 @@ If your installation uses .deb or .rpm packages with SysV, migrate to systemd. ==== [discrete] -[[breaking-42353]] .Disabled response logging as a default [%collapsible] ==== @@ -8447,7 +8374,6 @@ logging: ==== Reporting changes [discrete] -[[breaking-52539]] .Legacy job parameters are no longer supported [%collapsible] ==== @@ -8463,7 +8389,6 @@ If you use POST URL snippets to automatically generate PDF reports, regenerate t ==== Security changes [discrete] -[[breaking-47929]] .Removed `/api/security/v1/saml` route [%collapsible] ==== @@ -8475,7 +8400,6 @@ Use the `/api/security/saml/callback` route, or wait to upgrade to 8.0.0-alpha2 ==== [discrete] -[[breaking-41700]] .Reject legacy browsers by default [%collapsible] ==== @@ -8491,7 +8415,6 @@ To enable support for legacy browsers, set `csp.strict: false` in kibana.yml. To ==== Settings changes [discrete] -[[breaking-106061]] .Use new session timeout defaults [%collapsible] ==== @@ -8506,7 +8429,6 @@ Use the following default values: ==== [discrete] -[[breaking-87114]] .Removed support for setting `server.host` to '0' [%collapsible] ==== @@ -8518,7 +8440,6 @@ You are now unable to use `0` as the `server.host`. ==== [discrete] -[[breaking-38657]] .Removed `xpack.security.public` and `xpack.security.authProviders` [%collapsible] ==== @@ -8530,7 +8451,6 @@ Use the `xpack.security.authc.saml.realm` and `xpack.security.authc.providers` s ==== [discrete] -[[breaking-22696]] .Removed useUTC deprecation [%collapsible] ==== @@ -8542,7 +8462,6 @@ The default timezone is UTC. To change the timezone, set `logging.timezone: fals ==== [discrete] -[[breaking-32049]] .Removed environment variables `CONFIG_PATH` and `DATA_PATH` [%collapsible] ==== @@ -8560,7 +8479,6 @@ Use the environment variable `KBN_PATH_CONF` instead of `CONFIG_PATH`. Use the The following functionality is deprecated in 8.0.0, and will be removed in 9.0.0. Deprecated functionality does not have an immediate impact on your application, but we strongly recommend you make the necessary updates after you complete the upgrade. [discrete] -[[deprecation-74424]] .Removed support for SysV init [%collapsible] ==== @@ -8572,7 +8490,6 @@ If your system doesn't have `service` aliased to use kibana.service, use `system ==== [discrete] -[[deprecation-33603]] .Removed `xpack:defaultAdminEmail` setting [%collapsible] ==== diff --git a/docs/setup/upgrade.asciidoc b/docs/setup/upgrade.asciidoc index 686e10265df7b..818898e804b7c 100644 --- a/docs/setup/upgrade.asciidoc +++ b/docs/setup/upgrade.asciidoc @@ -6,6 +6,8 @@ To upgrade from 7.16.0 or earlier to {version}, {stack-ref}/upgrading-elastic-stack.html#prepare-to-upgrade[prepare for the upgrade]. Before you upgrade, you must resolve all critical issues identified by the *Upgrade Assistant*. +In addition, we recommend to carefully review the <> and to take any necessary actions to mitigate their impact on the upgrade. + Rolling upgrades are unsupported in {kib}. To upgrade, you must shut down all {kib} instances, install the new software, and restart {kib}. Upgrading while older {kib} instances are running can cause data loss or upgrade failures. diff --git a/docs/upgrade-notes.asciidoc b/docs/upgrade-notes.asciidoc new file mode 100644 index 0000000000000..57b97856a3d40 --- /dev/null +++ b/docs/upgrade-notes.asciidoc @@ -0,0 +1,1716 @@ +[[breaking-changes-summary]] +== Upgrade notes + +//// +USE THE FOLLOWING TEMPLATE to add entries to this document, from "[discrete]" to the last "====" included. + +[discrete] +[[REPO-PR]] +.[FEATURE] TITLE TO DESCRIBE THE CHANGE. (VERSION) +[%collapsible] +==== +*Details* + +ADD MORE DETAILS ON WHAT IS CHANGING AND A LINK TO THE PR INTRODUCING THE CHANGE + +*Impact* + +ADD INFORMATION ABOUT WHAT THIS CHANGE WILL BREAK FOR USERS + +*Action* + +ADD INSTRUCTIONS FOR USERS LOOKING TO UPGRADE. HOW CAN THEY WORK AROUND THIS? +==== + + +1. Copy and edit the template in the right area section of this file. Most recent entries should be at the top of the section. +2. Edit the anchor ID [[REPO-PR]] of the template with proper values. +3. Don't hardcode the link to the new entry. Instead, make it available through the doc link service files: + - https://github.com/elastic/kibana/blob/main/packages/kbn-doc-links/src/get_doc_links.ts + - https://github.com/elastic/kibana/blob/main/packages/kbn-doc-links/src/types.ts + +The entry in the main links file should look like this: + +id: `${KIBANA_DOCS}breaking-changes-summary.html#REPO-PR` + +Where: + - `id` is the ID of your choice. + - `REPO-PR` is the anchor ID that you assigned to the entry in this upgrade document. + +4. You can then call the link from any Kibana code. For example: `href: docLinks.links.upgradeAssistant.id` +Check https://docs.elastic.dev/docs/kibana-doc-links (internal) for more details about the Doc links service. + +//// + +Before you upgrade, review the breaking changes and deprecations introduced in {kib} 8.x, then mitigate the impact. + +For Elastic Security release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. + +[float] +=== Breaking changes + +[float] +==== Kibana APIs + +[discrete] +[[breaking-162506]] +.Get case metrics APIs became internal. (8.10) +[%collapsible] +==== +*Details* + +The get case metrics APIs are now internal. For more information, refer to ({kibana-pull}162506[#162506]). +==== + +[discrete] +[[breaking-155470]] +.Removed legacy project monitor API. (8.8) +[%collapsible] +==== +*Details* + +The project monitor API for Synthetics in Elastic Observability has been removed. For more information, refer to {kibana-pull}155470[#155470]. + +*Impact* + +In 8.8.0 and later, an error appears when you use the project monitor API. +==== + +[discrete] +[[breaking-147616]] +.Removed the `current_upgrades` endpoint. (8.7) +[%collapsible] +==== +*Details* + +The `/api/fleet/current_upgrades` endpoint has been removed. For more information, refer to {kibana-pull}147616[#147616]. + +*Impact* + +When you upgrade to 8.7.0, use the `api/fleet/agents/action_status` endpoint. +==== + +[discrete] +[[breaking-147199]] +.Removed the `preconfiguration` API route. (8.7) +[%collapsible] +==== +*Details* + +The `/api/fleet/setup/preconfiguration` API, which was released as generally available by error, has been removed. For more information, refer to {kibana-pull}147199[#147199]. + +*Impact* + +Do not use `/api/fleet/setup/preconfiguration`. To manage preconfigured agent policies, use kibana.yml. For more information, check link:https://www.elastic.co/guide/en/kibana/current/fleet-settings-kb.html#_preconfiguration_settings_for_advanced_use_cases[Preconfigured settings]. +==== + +[discrete] +[[breaking-141757]] +.Updated bulk action API to return actionId instead of agent success. (8.5) +[%collapsible] +==== +*Details* + +To make bulk action responses consistent, returns `actionId` instead of agent ids with `success: True` or `success: False` results. For more information, refer to {kibana-pull}141757[#141757]. + +*Impact* + +When you use `FleetBulkResponse`, you now receive only `actionId` responses. +==== + +[discrete] +[[breaking-116821]] +.Removed deprecated config fields from Logs and Metrics APIs and saved objects. (8.0) +[%collapsible] +==== +*Details* + +On the Logs and Metrics UIs, references to the following API and saved object deprecated fields have been removed: + +* `timestamp` +* `tiebreaker` +* `container` +* `pod` +* `host` + +For more information, refer to {kibana-pull}116821[#116821] and {kibana-pull}115874[#115874]. + +*Impact* + +When you upgrade to 8.0.0, you are unable to use references to the deprecated fields. +==== + +[discrete] +[[breaking-114730]] +.Removed `/api/settings`. (8.0) +[%collapsible] +==== +*Details* + +The `/api/settings` REST API has been removed. For more information, refer to {kibana-pull}114730[#114730]. + +*Impact* + +Use `/api/stats`. +==== + +[discrete] +[[breaking-110830]] +.Changed the `GET /api/status` default behavior. (8.0) +[%collapsible] +==== +*Details* + +`GET /api/status` reports a new and more verbose payload. For more information, refer to {kibana-pull}110830[#110830]. + +*Impact* + +To retrieve the {kib} status in the previous format, use `GET /api/status?v7format=true`. +==== + +[float] +==== Kibana platform + +// Alerting +[discrete] +[[breaking-170635]] +.[Alerting] A new sub-feature privilege to control user access to the cases settings. (8.12) +[%collapsible] +==== +*Details* + +Roles with at least a sub-feature privilege configured will not have access to the cases setting like they had previously. All roles without a sub-feature privilege configured will not be affected. For more information, refer to ({kibana-pull}170635[#170635]). +==== + +[discrete] +[[breaking-162492]] +.[Alerting] New case limits. (8.10) +[%collapsible] +==== +*Details* + +Limits are now imposed on the number of objects cases can process or the amount of data those objects can store. +//// +For example: +* Updating a case comment is now included in the 10000 user actions restriction. ({kibana-pull}163150[#163150]) +* Updating a case now fails if the operation makes it reach more than 10000 user actions. ({kibana-pull}161848[#161848]) +* The total number of characters per comment is limited to 30000. ({kibana-pull}161357[#161357]) +* The getConnectors API now limits the number of supported connectors returned to 1000. ({kibana-pull}161282[#161282]) +* There are new limits and restrictions when retrieving cases. ({kibana-pull}162411[#162411]), ({kibana-pull}162245[#162245]), ({kibana-pull}161111[#161111]), ({kibana-pull}160705[#160705]) +* A case can now only have 100 external references and persistable state(excluding files) attachments combined. ({kibana-pull}162071[#162071]). +* New limits on titles, descriptions, tags and category. ({kibana-pull}160844[#160844]). +* The maximum number of cases that can be updated simultaneously is now 100. The minimum is 1. ({kibana-pull}161076[#161076]). +* The Delete cases API now limits the number of cases to be deleted to 100.({kibana-pull}160846[#160846]). +//// +For the full list, refer to {kib-issue}146945[#146945]. +==== + +[discrete] +[[breaking-147985]] +.[Alerting] Changed privileges for alerts and cases. (8.8) +[%collapsible] +==== +*Details* + +The privileges for attaching alerts to cases has changed. For more information, refer to {kibana-pull}147985[#147985]. + +*Impact* + +To attach alerts to cases, you must have `Read` access to an {observability} or Security feature that has alerts and `All` access to the **Cases** feature. For detailed information, check link:https://www.elastic.co/guide/en/kibana/current/kibana-privileges.html[{kib} privileges] and link:https://www.elastic.co/guide/en/kibana/current/setup-cases.html[Configure access to cases]. +==== + +[discrete] +.[Alerting] Removed support for `monitoring.cluster_alerts.allowedSpaces`. (8.0) +[%collapsible] +==== +*Details* + +The `monitoring.cluster_alerts.allowedSpaces` setting, which {kib} uses to create Stack Monitoring alerts, has been removed. For more information, refer to {kibana-pull}123229[#123229]. + +*Impact* + +Before you upgrade to 8.0.0, remove `monitoring.cluster_alerts.allowedSpaces` from kibana.yml. +==== + +[discrete] +[[breaking-114558]] +.[Alerting] Removed `xpack.task_manager.index` setting. (8.0) +[%collapsible] +==== +*Details* + +The `xpack.task_manager.index` setting has been removed. For more information, refer to {kibana-pull}114558[#114558]. + +*Impact* + +Before you upgrade to 8.0.0, remove `xpack.task_manager.index` from kibana.yml. +==== + +[discrete] +[[breaking-113461]] +.[Alerting] Removed ability to remove Elastic-managed plugins. (8.0) +[%collapsible] +==== +*Details* + +The `xpack.actions.enabled` setting has been removed. For more information, refer to {kibana-pull}113461[#113461]. + +*Impact* + +Before you upgrade to 8.0.0, remove `xpack.actions.enabled` from kibana.yml. +==== + + +// Data views + +[discrete] +[[breaking-139431]] +.[Data views] Removed filter validation for ad-hoc data views (8.5) +[%collapsible] +==== +*Details* + +Filters associated with unknown data views, such as deleted data views, are no longer automatically disabled. For more information, refer to {kibana-pull}139431[#139431]. + +*Impact* + +Filters associated with unknown data views now display a warning message instead of being automatically disabled. +==== + +// Dev tools + +[discrete] +[[breaking-159041]] +.[Dev tools] The `addProcessorDefinition` function was removed from Console. (8.10) +[%collapsible] +==== +*Details* + +The function `addProcessorDefinition` is removed from the Console plugin start contract (server side). For more information, refer to ({kibana-pull}159041[#159041]). +==== + +[discrete] +[[breaking-123754]] +.[Dev tools] Removed the `console.ssl` setting. (8.0) +[%collapsible] +==== +*Details* + +The `console.ssl` setting has been removed. For more information, refer to {kibana-pull}123754[#123754]. + +*Impact* + +Before you upgrade to 8.0.0, remove `console.ssl` from kibana.yml. +==== + +// ECS + +[discrete] +.[Elastic Common Schema] Moved `doc_root.vulnerability.package` to doc_root.package (ECS). (8.11) +[%collapsible] +==== +*Details* + +This change updates all instances of `vulnerability.package` to the ECS standard package fieldset. For more information, refer to ({kibana-pull}164651[#164651]). +==== + +// ESQL +[discrete] +[[breaking-182074]] +.[ES|QL] Renamed an advanced setting to enable {esql}. (8.14) +[%collapsible] +==== +*Details* + +The advanced setting which hides {esql} from the UI has been renamed from `discover:enableESQL` to `enableESQL`. It is enabled by default and must be switched off to disable {esql} features from your {kib} applications. For more information, refer to ({kibana-pull}182074[#182074]). +==== + +[discrete] +[[breaking-174674]] +.[ES|QL] Removed `is_nan`, `is_finite`, and `is_infinite` functions from {esql}. (8.13) +[%collapsible] +==== +*Details* + +These functions have been removed from {esql} queries as they are not supported. Errors would be thrown when trying to use them. For more information, refer to ({kibana-pull}174674[#174674]). +==== + +// Fleet +[discrete] +[[breaking-184036]] +.[Fleet] Added rate limiting to install by upload endpoint. (8.15) +[%collapsible] +==== +*Details* + +Rate limiting was added to the upload `api/fleet/epm/packages` endpoint. For more information, refer to {kibana-pull}184036[#184036]. + +*Impact* + +If you do two or more requests in less than 10 seconds, the subsequent requests fail with `429 Too Many Requests`. +Wait 10 seconds before uploading again. +This change could potentially break automations for users that rely on frequent package uploads. +==== + +[discrete] +[[breaking-176879]] +.[Fleet]Removed conditional topics for Kafka outputs. (8.13) +[%collapsible] +==== +*Details* + +The Kafka output no longer supports conditional topics. For more information, refer to ({kibana-pull}176879[#176879]). +==== + +[discrete] +[[breaking-176443]] +.[Fleet]Most Fleet installed integrations are now read-only and labelled with a *Managed* tag in the Kibana UI. (8.13) +[%collapsible] +==== +*Details* + + +Integration content installed by {fleet} is no longer editable. This content is tagged with *Managed* in the {kib} UI, and is Elastic managed. This content cannot be edited or deleted. However, managed visualizations, dashboards, and saved searches can be cloned. The clones can be customized. + +When cloning a dashboard the cloned panels become entirely independent copies that are unlinked from the original configurations and dependencies. + +For managed content relating to specific visualization editors such as Lens, TSVB, and Maps, the clones retain the original reference configurations. The same applies to editing any saved searches in a managed visualization. + +For more information, refer to ({kibana-pull}172393[#172393]). +==== + +[discrete] +[[breaking-167085]] +.[Fleet] Improved config output validation for default output. (8.11) +[%collapsible] +==== +*Details* + +Improve config output validation to not allow to defining multiple default outputs in {kib} configuration. For more information, refer to ({kibana-pull}167085[#167085]). +==== + +[discrete] +[[breaking-138677]] +.[Fleet] Removed the `package_policies` field from the agent policy saved object. (8.5) +[%collapsible] +==== +*Details* + +The bidirectional foreign key between agent policy and package policy has been removed. For more information, refer to {kibana-pull}138677[#138677]. + +*Impact* + +The agent policy saved object no longer includes the `package_policies` field. +==== + +[discrete] +[[breaking-135669]] +.[Fleet] xpack.agents.* are now uneditable in UI when defined in kibana.yml. (8.4) +[%collapsible] +==== +*Details* + +When you configure `xpack.fleet.agents.fleet_server.hosts` and `xpack.fleet.agents.elasticsearch.hosts` in kibana.yml, you are unable to update the fields on the Fleet UI. + +For more information, refer to {kibana-pull}135669[#135669]. + +*Impact* + +To configure `xpack.fleet.agents.fleet_server.hosts` and `xpack.fleet.agents.elasticsearch.hosts` on the Fleet UI, avoid configuring the settings in kibana.yml. +==== + +[discrete] +[[breaking-118854]] +.[Fleet] Split package policy `upgrade` endpoint for Fleet. (8.0) +[%collapsible] +==== +*Details* + +For package policy upgrades, the packagePolicy `upgrade` endpoint format supports a mutative upgrade operation (when `dryRun: false`) and a read-only dry run operation (when `dryRun: true`): + +[source,text] +-- + POST /package_policies/upgrade + { + packagePolicyIds: [...], + dryRun: false + } +-- + +For more information, refer to {kibana-pull}118854[#118854]. + +*Impact* + +The endpoint is now split into two separate endpoints: + +[source,text] +-- + POST /package_policies/upgrade + { + packagePolicyIds: [...] + } + + POST /package_policies/upgrade/dry_run + { + packagePolicyIds: [...] + } +-- +==== + +// General settings + +[discrete] +[[breaking-111535]] +.[General settings] Removed `CONFIG_PATH` and `DATA_PATH` environment variables. (8.0) +[%collapsible] +==== +*Details* + +The `CONFIG_PATH` and `DATA_PATH` environment variables have been removed. For more information, refer to {kibana-pull}111535[#111535]. + +*Impact* + +Replace the `CONFIG_PATH` environment variable with `KBN_PATH_CONF`, and replace `DATA_PATH` with the `path.data` setting. +==== + +[discrete] +[[breaking-114379]] +.[General settings] Removed support for csp.rules configuration. (8.0) +[%collapsible] +==== +*Details* + +Support for the `csp.rules` configuration property has been removed. For more information, refer to {kibana-pull}114379[#114379]. + +*Impact* + +Configuring the default `csp.script_src`, `csp.workers_src`, and `csp.style_src` values is not required. +==== + +[discrete] +[[breaking-113653]] +.[General settings] Changed and removed deprecated core settings and deprecated settings from core plugins. (8.0) +[%collapsible] +==== +*Details* + +The deprecation notice for `server.cors` has changed from `level:critical` to `level:warning`. + +The following settings have changed: + +* The `xpack.banners.placement` value of `header` has been renamed to `top` + +Support for the following configuration settings has been removed: + +* `newsfeed.defaultLanguage` +* `cpu.cgroup.path.override` +* `cpuacct.cgroup.path.override` +* `server.xsrf.whitelist` +* `xpack.xpack_main.xpack_api_polling_frequency_millis` +* `KIBANA_PATH_CONF` + +For more information, refer to {kibana-pull}113653[#113653]. + +*Impact* + +* The `header` value provided to the `xpack.banners.placement` configuration has been renamed to 'top' +* The `newsfeed.defaultLanguage` newsfeed items are retrieved based on the browser locale and default to English +* Replace `cpu.cgroup.path.override` with `ops.cGroupOverrides.cpuPath` +* Replace `cpuacct.cgroup.path.override` with `ops.cGroupOverrides.cpuAcctPath` +* Replace `server.xsrf.whitelist` with `server.xsrf.allowlist` +* Replace `xpack.xpack_main.xpack_api_polling_frequency_millis` with `xpack.licensing.api_polling_frequency` +* Replace `KIBANA_PATH_CONF` path to the {kib} configuration file using the `KBN_PATH_CONF` environment variable +==== + +[discrete] +[[breaking-113495]] +.[General settings] Removed `enabled` settings from plugins. (8.0) +[%collapsible] +==== +*Details* + +Using `{plugin_name}.enabled` to disable plugins has been removed. Some plugins, such as `telemetry`, `newsfeed`, `reporting`, and the various `vis_type` plugins will continue to support this setting. All other {kib} plugins will not support this setting. Any new plugin will support this setting only when specified in the `configSchema`. For more information, refer to {kibana-pull}113495[#113495]. + +The `xpack.security.enabled` setting has been removed. For more information, refer to {kibana-pull}111681[#111681]. + +*Impact* + +Before you upgrade to 8.0.0: + +* Remove `{plugin_name}.enabled` from kibana.yml. If you use the setting to control user access to {kib} applications, use <> instead. +* Replace `xpack.security.enabled` with {ref}/security-settings.html#general-security-settings[`xpack.security.enabled`] in elasticsearch.yml. +==== + +[discrete] +[[breaking-113367]] +.[General settings] Removed `--plugin-dir` cli option. (8.0) +[%collapsible] +==== +*Details* + +The `plugins.scanDirs` setting and `--plugin-dir` cli option have been removed. For more information, refer to {kibana-pull}113367[#113367]. + +*Impact* + +Before you upgrade to 8.0.0, remove `plugins.scanDirs` from kibana.yml. +==== + +[discrete] +[[breaking-113296]] +.[General settings] Removed support for `optimize.*` settings. (8.0) +[%collapsible] +==== +*Details* + +The legacy `optimize.*` settings have been removed. If your configuration uses the following legacy `optimize.*` settings, {kib} fails to start: + +* `optimize.lazy` +* `optimize.lazyPort` +* `optimize.lazyHost` +* `optimize.lazyPrebuild` +* `optimize.lazyProxyTimeout` +* `optimize.enabled` +* `optimize.bundleFilter` +* `optimize.bundleDir` +* `optimize.viewCaching` +* `optimize.watch` +* `optimize.watchPort` +* `optimize.watchHost` +* `optimize.watchPrebuild` +* `optimize.watchProxyTimeout` +* `optimize.useBundleCache` +* `optimize.sourceMaps` +* `optimize.workers` +* `optimize.profile` +* `optimize.validateSyntaxOfNodeModules` + +For more information, refer to {kibana-pull}113296[#113296]. + +*Impact* + +To run the `@kbn/optimizer` separately in development, pass `--no-optimizer` to `yarn start`. For more details, refer to {kibana-pull}73154[#73154]. +==== + +[discrete] +[[breaking-113173]] +.[General settings] Removed `so/server/es` settings. (8.0) +[%collapsible] +==== +*Details* + +Some of the `savedObjects`, `server`, and `elasticsearch` settings have been removed. If your configuration uses the following settings, {kib} fails to start: + +* `savedObjects.indexCheckTimeout` +* `server.xsrf.token` +* `elasticsearch.preserveHost` +* `elasticsearch.startupTimeout` + +For more information, refer to {kibana-pull}113173[#113173]. + +*Impact* + +Before you upgrade to 8.0.0., remove these settings from kibana.yml. +==== + +[discrete] +[[breaking-113068]] +.[General settings] Added requirement for inline scripting. (8.0) +[%collapsible] +==== +*Details* + +To start {kib}, you must enable inline scripting in {es}. For more information, refer to {kibana-pull}113068[#113068]. + +*Impact* + +Enable {ref}/modules-scripting-security.html[inline scripting]. +==== + +[discrete] +[[breaking-112773]] +.[General settings] Removed `kibana.index` settings. (8.0) +[%collapsible] +==== +*Details* + +The `kibana.index`, `xpack.reporting.index`, and `xpack.task_manager.index` settings have been removed. For more information, refer to {kibana-pull}112773[#112773]. + +*Impact* + +Use spaces, cross-cluster replication, or cross-cluster search. To migrate to <>, export your <> from a tenant into the default space. For more details, refer to link:https://github.com/elastic/kibana/issues/82020[#82020]. +==== + +[discrete] +[[breaking-112305]] +.[General settings] Removed legacy logging. (8.0) +[%collapsible] +==== +*Details* + +The logging configuration and log output format has changed. For more information, refer to {kibana-pull}112305[#112305]. + +*Impact* + +Use the new <>. +==== + +[discrete] +[[breaking-109798]] +.[General settings] Removed `kibana.defaultAppId` setting. (8.0) +[%collapsible] +==== +*Details* + +The deprecated `kibana.defaultAppId` setting in kibana.yml, which is also available as `kibana_legacy.defaultAppId`, has been removed. For more information, refer to {kibana-pull}109798[#109798]. + +*Impact* + +When you upgrade, remove `kibana.defaultAppId` from your kibana.yml file. To configure the default route for users when they enter a space, use the <> in *Advanced Settings*. +==== + +[discrete] +[[breaking-109350]] +.[General settings] Removed `courier:batchSearches` setting. (8.0) +[%collapsible] +==== +*Details* + +The deprecated `courier:batchSearches` setting in *Advanced Settings* has been removed. For more information, refer to {kibana-pull}109350[#109350]. + +*Impact* + +When you upgrade, the `courier:batchSearches` setting will no longer be available. +==== + + +[discrete] +[[breaking-106061]] +.[General settings] New session timeout defaults. (8.0) +[%collapsible] +==== +*Details* + +The default values for the session timeout `xpack.security.session.{lifespan|idleTimeout}` settings have changed. For more information, refer to {kibana-pull}106061[#106061] + +*Impact* + +The new default values are as follows: + +* `xpack.security.session.idleTimeout: 3d` +* `xpack.security.session.lifespan: 30d` +==== + +[discrete] +[[breaking-87114]] +.[General settings] Removed support for setting `server.host` to '0'. (8.0) +[%collapsible] +==== +*Details* + +Support for configuring {kib} with `0` as the `server.host` has been removed. Please use `0.0.0.0` instead. For more information, refer to {kibana-pull}87114[#87114] + +*Impact* + +You are now unable to use `0` as the `server.host`. +==== + +[discrete] +[[breaking-38657]] +.[General settings] Removed `xpack.security.public` and `xpack.security.authProviders` settings. (8.0) +[%collapsible] +==== +*Details* + +The `xpack.security.public` and `xpack.security.authProviders` settings have been removed. For more information, refer to {kibana-pull}38657[#38657] + +*Impact* + +Use the `xpack.security.authc.saml.realm` and `xpack.security.authc.providers` settings. +==== + +[discrete] +[[breaking-22696]] +.[General settings] Removed `logging.useUTC` setting. (8.0) +[%collapsible] +==== +*Details* + +The `logging.useUTC` setting has been removed. For more information, refer to {kibana-pull}22696[#22696] + +*Impact* + +The default timezone is UTC. To change the timezone, set `logging.timezone: false` in kibana.yml. Change the timezone when the system, such as a docker container, is configured for a nonlocal timezone. +==== + +// Index management + +[discrete] +[[breaking-35173]] +.[Index management] Removed support for time-based interval index patterns. (8.0) +[%collapsible] +==== +*Details* + +Time-based interval index patterns were deprecated in 5.x. In 6.x, you could no longer create time-based interval index patterns, but they continued to function as expected. Support for these index patterns has been removed in 8.0. For more information, refer to {kibana-pull}35173[#35173] + +*Impact* + +You must migrate your time_based index patterns to a wildcard pattern. For example, logstash-*. +==== + +// Logs + +[discrete] +[[breaking-115974]] +.[Logs] Removed deprecated alias config entries. (8.0) +[%collapsible] +==== +*Details* + +The deprecated `xpack.infra.sources.default.logAlias` and `xpack.infra.sources.default.logAlias` settings have been removed. For more information, refer to {kibana-pull}115974[#115974]. + +*Impact* + +Before you upgrade, remove the settings from kibana.yml, then configure the settings in <>. +==== + +[discrete] +[[breaking-61302]] +.[Logs] Removed configurable fields in settings. (8.0) +[%collapsible] +==== +*Details* + +The *Logs* and *Metrics* configurable fields settings have been removed. For more information, refer to {kibana-pull}61302[#61302]. + +*Impact* + +Configure the settings in https://www.elastic.co/guide/en/ecs/current/ecs-reference.html[ECS]. +==== + +// Machine Learning + +[discrete] +[[breaking-119945]] +.[Machine learning] Removed APM jobs from Machine Learning. (8.0) +[%collapsible] +==== +*Details* + +APM Node.js and RUM JavaScript anomaly detection job modules have been removed. For more information, refer to {kibana-pull}119945[#119945]. + +*Impact* + +When you upgrade to 8.0.0, you are unable to create and view the APM Node.js and RUM JavaScript jobs in Machine Learning. +==== + +[discrete] +[[breaking-115444]] +.[Machine learning] Granted access to machine learning features when base privileges are used. (8.0) +[%collapsible] +==== +*Details* + +Machine learning features are included as base privileges. For more information, refer to {kibana-pull}115444[#115444]. + +*Impact* + +If you do not want to grant users privileges to machine learning features, update <>. +==== + +// Osquery + +[discrete] +[[breaking-134855]] +.[Osquery] "All" base privilege option now also applies to Osquery. (8.3) +[%collapsible] +==== +*Details* + +The Osquery {kib} privilege has been updated, so that when the *Privileges for all features level* is set to *All*, this now applies *All* to Osquery privileges as well. Previously, users had to choose the *Customize* option to grant any access to Osquery. For more information, refer to {kibana-pull}130523[#130523]. + +*Impact* + +This impacts user roles that have *Privileges for all features* set to *All*. After this update, users with this role will have access to the Osquery page in {kib}. However, to use the Osquery feature fully, these requirements remain the same: users also need Read access to the logs-osquery_manager.result* index and the Osquery Manager integration must be deployed to Elastic Agents. +==== + +// Saved objects + +[discrete] +[[breaking-118300]] +.[Saved objects] Fail migrations for saved objects with unknown types. (8.0) +[%collapsible] +==== +*Details* + +Unknown saved object types now cause {kib} migrations to fail. For more information, refer to {kibana-issue}107678[#107678]. + +*Impact* + +To complete the migration, re-enable plugins or delete documents from the index in the previous version. +==== + +[discrete] +[[breaking-110738]] +.[Saved objects] Removed support for legacy exports. (8.0) +[%collapsible] +==== +*Details* + +In {kib} 8.0.0 and later, the legacy format from {kib} 6.x is unsupported. For more information, refer to {kibana-pull}110738[#110738] + +*Impact* + +Using the user interface to import saved objects is restricted to `.ndjson` format imports. +==== + +// Security + +[discrete] +[[breaking-116191]] +.[Security] Removed legacy audit logger. (8.0) +[%collapsible] +==== +*Details* + +The legacy audit logger has been removed. For more information, refer to {kibana-pull}116191[#116191]. + +*Impact* + +Audit logs will be written to the default location in the new ECS format. To change the output file, filter events, and more, use the <>. +==== + +[discrete] +[[breaking-47929]] +.[Security] Removed `/api/security/v1/saml` route. (8.0) +[%collapsible] +==== +*Details* + +The `/api/security/v1/saml` route has been removed and is reflected in the kibana.yml `server.xsrf.whitelist` setting, {es}, and the Identity Provider SAML settings. For more information, refer to {kibana-pull}47929[#47929] + +*Impact* + +Use the `/api/security/saml/callback` route, or wait to upgrade to 8.0.0-alpha2 when the `/api/security/saml/callback` route breaking change is reverted. +==== + +[discrete] +[[breaking-41700]] +.[Security] Legacy browsers rejected by default. (8.0) +[%collapsible] +==== +*Details* + +To provide the maximum level of protection for most installations, the csp.strict config is now enabled by default. Legacy browsers not supported by Kibana, such as Internet Explorer 11, are unable to access {kib} unless explicitly enabled. All browsers officially supported by Kibana do not have this issue. For more information, refer to {kibana-pull}41700[#41700] + +*Impact* + +To enable support for legacy browsers, set `csp.strict: false` in kibana.yml. To effectively enforce the security protocol, we strongly discourage disabling `csp.strict` unless it is critical that you support Internet Explorer 11. +==== + +// Setup + +[discrete] +[[breaking-93835]] +.[Setup] Removed platform from archive root directory. (8.0) +[%collapsible] +==== +*Details* + +After you extract an archive, the output directory no longer includes the target platform. For example, `kibana-8.0.0-linux-aarch64.tar.gz` produces a `kibana-8.0.0` folder. For more information, refer to {kibana-pull}93835[#93835]. + +*Impact* + +To use the new folder, update the configuration management tools and automation. +==== + +[discrete] +[[breaking-90511]] +.[Setup] Removed default support for TLS v1.0 and v1.1. (8.0) +[%collapsible] +==== +*Details* + +The default support for TLS v1.0 and v1.1 has been removed. For more information, refer to {kibana-pull}90511[#90511]. + +*Impact* + +To enable support, set `--tls-min-1.0` in the `node.options` configuration file. To locate the configuration file, go to the kibana/config folder or any other configuration with the `KBN_PATH_CONF` environment variable. For example, if you are using a Debian-based system, the configuration file is located in /etc/kibana. +==== + +[discrete] +[[breaking-74424]] +.[Setup] Removed support for sysv init. (8.0) +[%collapsible] +==== +*Details* + +All supported operating systems use systemd service files. Any system that doesn’t have `service` aliased to use kibana.service should use `systemctl start kibana.service` instead of `service start kibana`. For more information, refer to {kibana-pull}74424[#74424]. + +*Impact* + +If your installation uses .deb or .rpm packages with SysV, migrate to systemd. +==== + +[discrete] +[[breaking-42353]] +.[Setup] Disabled response logging as a default. (8.0) +[%collapsible] +==== +*Details* + +In previous versions, all events are logged in `json` when `logging.json:true`. With the new logging configuration, you can choose the `json` and pattern output formats with layouts. For more information, refer to {kibana-pull}42353[#42353]. + +*Impact* + +To restore the previous behavior, configure the logging format for each custom appender with the `appender.layout property` in kibana.yml. There is no default for custom appenders, and each appender must be configured explicitly. +//// +[source,yaml] +---- +logging: + appenders: + custom_console: + type: console + layout: + type: pattern + custom_json: + type: console + layout: + type: json + loggers: + - name: plugins.myPlugin + appenders: [custom_console] + root: + appenders: [default, custom_json] + level: warn +---- +//// +==== + +// Sharing and reporting + +[discrete] +[[breaking-162288]] +.[Sharing & Reporting] The Download CSV endpoint has changed. (8.10) +[%collapsible] +==== +*Details* + +The API endpoint for downloading a CSV file from a saved search in the Dashboard application has changed to reflect the fact that this is an internal API. The previous API path of +`/api/reporting/v1/generate/immediate/csv_searchsource` has been changed to `/internal/reporting/generate/immediate/csv_searchsource`. For more information, refer to {kibana-pull}162288[#162288]. +==== + +[discrete] +[[breaking-158338]] +.[Sharing & Reporting] CSV reports now use PIT instead of Scroll. (8.6) +[%collapsible] +==== +*Details* + +CSV reports now use PIT instead of Scroll. Previously generated CSV reports that used an index alias with alias-only privileges, but without privileges on the alias referenced-indices will no longer generate. For more information, refer to {kibana-pull}158338[#158338]. + +*Impact* + +To generate CSV reports, grant `read` privileges to the underlying indices. +==== + +[discrete] +[[breaking-121435]] +.[Sharing & Reporting] Removed legacy CSV export type. (8.1) +[%collapsible] +==== +*Details* + +The `/api/reporting/generate/csv` endpoint has been removed. For more information, refer to {kibana-pull}121435[#121435]. + +*Impact* + +If you are using 7.13.0 and earlier, {kibana-ref-all}/8.1/automating-report-generation.html[regenerate the POST URLs] that you use to automatically generate CSV reports. +==== + +[discrete] +[[breaking-121369]] +.[Sharing & Reporting]Removed legacy PDF shim. (8.1) +[%collapsible] +==== +*Details* + +The POST URLs that you generated in {kib} 6.2.0 no longer work. For more information, refer to {kibana-pull}121369[#121369]. + +*Impact* + +{kibana-ref-all}/8.1/automating-report-generation.html[Regenerate the POST URLs] that you use to automatatically generate PDF reports. +==== + +[discrete] +[[breaking-114216]] +.[Sharing & Reporting] Removed reporting settings. (8.0) +[%collapsible] +==== +*Details* + +The following settings have been removed: + +* `xpack.reporting.capture.concurrency` + +* `xpack.reporting.capture.settleTime` + +* `xpack.reporting.capture.timeout` + +* `xpack.reporting.kibanaApp` + +For more information, refer to {kibana-pull}114216[#114216]. + +*Impact* + +Before you upgrade to 8.0.0, remove the settings from kibana.yml. +==== + +[discrete] +[[breaking-52539]] +.[Sharing & Reporting] Legacy job parameters are no longer supported. (8.0) +[%collapsible] +==== +*Details* + +*Reporting* is no longer compatible with POST URL snippets generated with {kib} 6.2.0 and earlier. For more information, refer to {kibana-pull}52539[#52539] + +*Impact* + +If you use POST URL snippets to automatically generate PDF reports, regenerate the POST URL strings. +==== + +// User management + +[discrete] +[[breaking-122722]] +.[User management] Removed the ability to use `elasticsearch.username: elastic` in production. (8.0) +[%collapsible] +==== +*Details* + +In production, you are no longer able to use the `elastic` superuser to authenticate to {es}. For more information, refer to {kibana-pull}122722[#122722]. + +*Impact* + +When you configure `elasticsearch.username: elastic`, {kib} fails. +==== + +// Visualizations and dashboards + +[discrete] +[[breaking-149482]] +.[Visualizations] Removed the fields list sampling setting from Lens. (8.7) +[%collapsible] +==== +*Details* + +`lens:useFieldExistenceSampling` has been removed from *Advanced Settings*. The setting allowed you to enable document sampling to determine the fields that are displayed in *Lens*. For more information, refer to {kibana-pull}149482[#149482]. + +*Impact* + +In 8.1.0 and later, {kib} uses the field caps API, by default, to determine the fields that are displayed in *Lens*. +==== + +[discrete] +[[breaking-146990]] +.[Visualizations] Removed legacy pie chart visualization setting. (8.7) +[%collapsible] +==== +*Details* + +`visualization:visualize:legacyPieChartsLibrary` has been removed from *Advanced Settings*. The setting allowed you to create aggregation-based pie chart visualizations using the legacy charts library. For more information, refer to {kibana-pull}146990[#146990]. + +*Impact* + +In 7.14.0 and later, the new aggregation-based pie chart visualization is available by default. For more information, check link:https://www.elastic.co/guide/en/kibana/current/add-aggregation-based-visualization-panels.html[Aggregation-based]. +==== + +[discrete] +[[breaking-143081]] +.[Visualizations] Changed the `histogram:maxBars` default setting. (8.6) +[%collapsible] +==== +*Details* + +To configure higher resolution data histogram aggregations without changing the *Advanced Settings*, the default histogram:maxBars setting is now 1000 instead of 100. For more information, refer to {kibana-pull}143081[#143081]. + +*Impact* + +For each {kibana-ref}/xpack-spaces.html[space], complete the following to change *histogram:maxBars* to the previous default setting: + +. Open the main menu, then click *Stack Management > Advanced Settings*. +. Scroll or search for *histogram:maxBars*. +. Enter `100`, then click *Save changes*. +==== + +[discrete] +[[breaking-134336]] +.[Visualizations] Removed the legacy Timelion charts library. (8.4) +[%collapsible] +==== +*Details* + +The legacy implementation of the *Timelion* visualization charts library has been removed. All *Timelion* visualizations now use the elastic-charts library, which was introduced in 7.15.0. + +For more information, refer to {kibana-pull}134336[#134336]. + +*Impact* + +In 8.4.0 and later, you are unable to configure the *Timelion* legacy charts library advanced setting. For information about visualization Advanced Settings, check link:https://www.elastic.co/guide/en/kibana/8.4/advanced-options.html#kibana-visualization-settings[Visualization]. +==== + +[discrete] +[[breaking-129581]] +.[Visualizations] Removed Quandl and Graphite integrations. (8.3) +[%collapsible] +==== +*Details* + +The experimental `.quandl` and `.graphite` functions and advanced settings are removed from *Timelion*. For more information, check {kibana-pull}129581[#129581]. + +*Impact* + +When you use the `vis_type_timelion.graphiteUrls` kibana.yml setting, {kib} successfully starts, but logs a `[WARN ][config.deprecation] You no longer need to configure "vis_type_timelion.graphiteUrls".` warning. + +To leave your feedback about the removal of `.quandl` and `.graphite`, go to the link:https://discuss.elastic.co/c/elastic-stack/kibana/7[discuss forum]. +==== + +[discrete] +[[breaking-113516]] +.[Visualizations] Removed display options from legacy gauge visualizations. (8.0) +[%collapsible] +==== +*Details* + +The *Display warnings* option has been removed from the aggregation-based gauge visualization. For more information, refer to {kibana-pull}113516[#113516]. + +*Impact* + +When you create aggregation-based gauge visualizations, the *Display warnings* option is no longer available in *Options > Labels*. +==== + +[discrete] +[[breaking-112643]] +.[Visualizations] Removed settings from visEditors plugins. (8.0) +[%collapsible] +==== +*Details* + +The following deprecated visEditors plugin settings have been removed: + +* `metric_vis.enabled` +* `table_vis.enabled` +* `tagcloud.enabled` +* `metrics.enabled` +* `metrics.chartResolution` +* `chartResolution` +* `metrics.minimumBucketSize` +* `minimumBucketSize` +* `vega.enabled` +* `vega.enableExternalUrls` +* `vis_type_table.legacyVisEnabled` +* `timelion_vis.enabled` +* `timelion.enabled` +* `timelion.graphiteUrls` +* `timelion.ui.enabled` + +For more information, refer to {kibana-pull}112643[#112643]. + +*Impact* + +Before you upgrade, make the following changes in kibana.yml: + +* Replace `metric_vis.enabled` with `vis_type_metric.enabled` +* Replace `table_vis.enabled` with `vis_type_table.enabled` +* Replace `tagcloud.enabled` with `vis_type_tagcloud.enabled` +* Replace `metrics.enabled` with `vis_type_timeseries.enabled` +* Replace `metrics.chartResolution` and `chartResolution` with `vis_type_timeseries.chartResolution` +* Replace `metrics.minimumBucketSize` and `minimumBucketSize` with `vis_type_timeseries.minimumBucketSize` +* Replace `vega.enabled` with `vis_type_vega.enabled` +* Replace `vega.enableExternalUrls` with `vis_type_vega.enableExternalUrls` +* Remove `vis_type_table.legacyVisEnabled` +* Replace `timelion_vis.enabled` with `vis_type_timelion.enabled` +* Replace `timelion.enabled` with `vis_type_timelion.enabled` +* Replace `timelion.graphiteUrls` with `vis_type_timelion.graphiteUrls` +* Remove `timelion.ui.enabled` + +==== + +[discrete] +[[breaking-111704]] +.[Visualizations] Removed dimming opacity setting. (8.0) +[%collapsible] +==== +*Details* + +The *Dimming opacity* setting in *Advanced Settings* has been removed. For more information, refer to {kibana-pull}111704[#111704]. + +*Impact* + +When you upgrade to 8.0.0, you are no longer able to configure the dimming opactiy for visualizations. +==== + +[discrete] +[[breaking-110985]] +.[Visualizations] Removes Less stylesheet support in TSVB. (8.0) +[%collapsible] +==== +*Details* + +In *TSVB*, custom Less stylesheets have been removed. For more information, refer to {kibana-pull}110985[#110985]. + +*Impact* + +Existing less stylesheets are automatically converted to CSS stylesheets. +==== + +[discrete] +[[breaking-110571]] +.[Visualizations] Disabled the input string mode in TSVB. (8.0) +[%collapsible] +==== +*Details* + +In *TSVB*, the *Index pattern selection mode* option has been removed. For more information, refer to {kibana-pull}110571[#110571]. + +*Impact* + +To use index patterns and {es} indices in *TSVB* visualizations: + +. Open the main menu, then click *Stack Management > Advanced Settings*. + +. Select *Allow string indices in TSVB*. + +. Click *Save changes*. +==== + +[discrete] +[[breaking-116184]] +.[Visualizations] Removed proxyElasticMapsServiceInMaps Maps setting. (8.0) +[%collapsible] +==== +*Details* + +The `map.proxyElasticMapsServiceInMaps` setting has been removed. For more information, refer to {kibana-pull}116184[#116184]. + +*Impact* + +Install the on-prem version of the <>, which is a Docker service that resides in the Elastic Docker registry, in an accessible location on your internal network. When you complete the installation, update kibana.yml to point to the service. +==== + +[discrete] +[[breaking-109896]] +.[Visualizations] Removed `map.regionmap.*`. (8.0) +[%collapsible] +==== +*Details* + +The deprecated `map.regionmap.*` setting in kibana.yml has been removed. For more information, refer to {kibana-pull}109896[#109896]. + +*Impact* + +If you have maps that use `map.regionmap` layers: + +. Remove the `map.regionmap` layer. + +. To recreate the choropleth layer, use <> to index your static vector data into {es}. + +. Create a choropleth layer from the indexed vector data. +==== + + +[discrete] +[[breaking-108103]] +.[Visualizations] Removed dashboard-only mode. (8.0) +[%collapsible] +==== +*Details* + +The legacy dashboard-only mode has been removed. For more information, refer to {kibana-pull}108103[#108103]. + +*Impact* + +To grant users access to only dashboards, create a new role, then assign only the *Dashboard* feature privilege. For more information, refer to <>. +==== + +[discrete] +[[breaking-105979]] +.[Visualizations] Removed `xpack.maps.showMapVisualizationTypes` setting. (8.0) +[%collapsible] +==== +*Details* + +The deprecated `xpack.maps.showMapVisualizationTypes` setting in kibana.yml has been removed. For more information, refer to {kibana-pull}105979[#105979] + +*Impact* + +When you upgrade, remove `xpack.maps.showMapVisualizationTypes` from your kibana.yml file. +==== + +[float] +==== Elastic Observability solution + +[discrete] +[[kibana-132790]] +.[APM] Removed `apm_user`. (8.3) +[%collapsible] +==== +*Details* + +Removes the `apm_user` role. For more information, check {kibana-pull}132790[#132790]. + +*Impact* + +The `apm_user` role is replaced with the `viewer` and `editor` built-in roles. +==== + +[discrete] +[[breaking-172224]] +.[SLOs]New SLO architecture. (8.12) +[%collapsible] +==== +*Details* + +We introduced a breaking change in the SLO features that will break any SLOs created before 8.12. These SLOs have to be manually reset through an API until we provide a UI for it. The data aggregated over time (rollup) is still available in the SLI v2 index, but won't be used for summary calculation when reset. + +The previous summary transforms summarizing every SLOs won't be used anymore and can be stopped and deleted: + +* slo-summary-occurrences-7d-rolling +* slo-summary-occurrences-30d-rolling +* slo-summary-occurrences-90d-rolling +* slo-summary-occurrences-monthly-aligned +* slo-summary-occurrences-weekly-aligned +* slo-summary-timeslices-7d-rolling +* slo-summary-timeslices-30d-rolling +* slo-summary-timeslices-90d-rolling +* slo-summary-timeslices-monthly-aligned +* slo-summary-timeslices-weekly-aligned + +Be aware that when installing a new SLO (or after resetting an SLO), we install two transforms (one for the rollup data and one that summarize the rollup data). Do not delete the new `slo-summary-{slo_id}-{slo_revision}` transforms. For more information, refer to ({kibana-pull}172224[#172224]). +==== + +[discrete] +[[breaking-162665]] +.[SLO] Introduced new summary search capabilities that will cause SLOs created before 8.10 to stop working. (8.10) +[%collapsible] +==== +*Details* + + +* 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 transforms have been updated, but existing SLO with their transforms won't be updated. + +If some SLOs have been installed in a prior version at 8.10, they won't work after migrating to 8.10. There are two approaches to handle this breaking change. The recommended route is to delete all SLOs before migrating to 8.10. The alternative is to migrate to 8.10 and manually remove the SLOs. + +*Removing SLOs before migrating to 8.10* + +Use the SLO UI or the SLO delete API to delete all existing SLOs. This takes care of the saved object, transform and rollup data. When all SLOs have been deleted, then delete the residual rollup indices: `.slo-observability.sli-v1*`. Note that this is v1. + +*Removing SLOs after migrating to 8.10* + +After migrating to 8.10, the previously created SLOs won’t appear in the UI because the API is using a new index. The previously created SLOs still exist, and associated transforms are still rolling up data into the previous index `.slo-observability.sli-v1*`. The SLO delete API can't be used now, so remove the resources resources manually: + +. Find all existing transforms +All SLO related transforms start with the `slo-` prefix, this request returns them all: ++ +[source, bash] +---- +GET _transform/slo-* +---- ++ +Make a note of all the transforms IDs for later. + +. Stop all transforms ++ +[source, bash] +---- +POST _transform/slo-*/_stop?force=true +---- + +. Remove all transforms ++ +From the list of transforms returned during the first step, now delete them one by one: ++ +[source, bash] +---- +DELETE _transform/{transform_id}?force=true +---- + +. Find the SLO saved objects ++ +This request lists all the SLO saved objects. The SLO IDs and the saved object IDs are not the same. ++ +[source, bash] +---- +GET kbn:/api/saved_objects/_find?type=slo +---- ++ +Make a note of all the saved object IDs from the response. + +. Remove the SLO saved objects ++ +For each saved object ID, run the following: ++ +[source, bash] +---- +DELETE kbn:/api/saved_objects/slo/{Saved_Object_Id} +---- + +. Delete the rollup indices v1 ++ +Note that this is v1. ++ +[source, bash] +---- +DELETE .slo-observability.sli-v1* +---- +==== + +[discrete] +[[breaking-159118]] +.[Uptime] Uptime app now hidden when no data is available. (8.9) +[%collapsible] +==== +*Details* + +The Uptime app now gets hidden from the interface when it doesn't have any data for more than a week. If you have a standalone Heartbeat pushing data to Elasticsearch, the Uptime app is considered active. You can disable this automatic behavior from the advanced settings in Kibana using the **Always show legacy Uptime app** option. +For synthetic monitoring, we now recommend to use the new Synthetics app. For more information, refer to {kibana-pull}159118[#159118] +==== + +[discrete] +[[breaking-159012]] +.[Uptime] Removed synthetics pattern from Uptime settings. (8.9) +[%collapsible] +==== +*Details* + +Data from browser monitors and monitors of all types created within the Synthetics App or via the Elastic Synthetics Fleet Integration will no longer appear in Uptime. For more information, refer to {kibana-pull}159012[#159012] +==== + + + +[float] +==== Elastic Search solution + +[discrete] +[[breaking-106307]] +.Required security plugin. (8.0) +[%collapsible] +==== +*Details* + +Enterprise Search now requires that you enable X-Pack Security. For more information, refer to {kibana-pull}106307[#106307] + +*Impact* + +Enable X-Pack Security. +==== + + +[float] +==== Elastic Security solution + +NOTE: For the complete Elastic Security solution release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. + +[discrete] +[[breaking-161806]] +.[Elastic Defend] Converted filterQuery to KQL.(8.11) +[%collapsible] +==== +*Details* + +Converts `filterQuery` to a KQL query string. For more information, refer to ({kibana-pull}161806[#161806]). +==== + + + +[float] +=== Deprecation notices + +The following functionality is deprecated and will be removed at a future date. Deprecated functionality +does not have an immediate impact on your application, but we strongly recommend you make the necessary +updates to avoid use of deprecated features. + +Use the **Kibana Upgrade Assistant** to prepare for your upgrade to the next version of the Elastic Stack. +The assistant identifies deprecated settings in your configuration and guides you through the process of +resolving issues if any deprecated features are enabled. +To access the assistant, go to **Stack Management** > **Upgrade Assistant**. + + +[float] +==== Kibana APIs + +[discrete] +[[kibana-152236]] +.Deprecated Agent reassign API PUT endpoint. (8.8) +[%collapsible] +==== +*Details* + +The PUT endpoint for the agent reassign API is deprecated. For more information, refer to {kibana-pull}152236[#152236]. + +*Impact* + +Use the POST endpoint for the agent reassign API. +==== + +[discrete] +[[kibana-151564]] +.Deprecated `total` in `/agent_status` Fleet API. (8.8) +[%collapsible] +==== +*Details* + +The `total` field in `/agent_status` Fleet API responses is deprecated. For more information, refer to {kibana-pull}151564[#151564]. + +*Impact* + +The `/agent_status` Fleet API now returns the following statuses: + +* `all` — All active and inactive +* `active` — All active +==== + +[discrete] +[[deprecation-119494]] +.Updates Fleet API to improve consistency. (8.0) +[%collapsible] +==== +*Details* + +The Fleet API has been updated to improve consistency: + +* Hyphens are changed to underscores in some names. +* The `pkgkey` path parameter in the packages endpoint is split. +* The `response` and `list` properties are renamed to `items` or `item` in some +responses. + +For more information, refer to {kibana-pull}119494[#119494]. + +*Impact* + +When you upgrade to 8.0.0, use the following API changes: + +* Use `enrollment_api_keys` instead of `enrollment-api-keys`. + +* Use `agent_status` instead of `agent-status`. + +* Use `service_tokens` instead of `service-tokens`. + +* Use `/epm/packages/{packageName}/{version}` instead of `/epm/packages/{pkgkey}`. + +* Use `items[]` instead of `response[]` in: ++ +[source,text] +-- +/api/fleet/enrollment_api_keys +/api/fleet/agents +/epm/packages/ +/epm/categories +/epm/packages/_bulk +/epm/packages/limited +/epm/packages/{packageName}/{version} <1> +-- +<1> Use `items[]` when the verb is `POST` or `DELETE`. Use `item` when the verb +is `GET` or `PUT`. + +For more information, refer to {fleet-guide}/fleet-api-docs.html[Fleet APIs]. + +==== + +[float] +==== Kibana platform + +// Alerting + +[discrete] +[[kibana-161136]] +.[Alerting] Action variables in the UI and in tests that were no longer used have been replaced. (8.10) +[%collapsible] +==== +*Details* + +The following rule action variables have been deprecated. Use the recommended variables (in parentheses) instead: + +* alertActionGroup (alert.actionGroup) +* alertActionGroupName (alert.actionGroupName) +* alertActionSubgroup (alert.actionSubgroup) +* alertId (rule.id) +* alertInstanceId (alert.id) +* alertName (rule.name) +* params (rule.params) +* spaceId (rule.spaceId) +* tags (rule.tags) + +For more information, refer to ({kibana-pull}161136[#161136]). +==== + +// General settings + +[discrete] +[[kibana-154275]] +.[General settings] Deprecated ephemeral Task Manager settings (8.8) +[%collapsible] +==== +*Details* + +The following Task Manager settings are deprecated: + +* `xpack.task_manager.ephemeral_tasks.enabled` +* `xpack.task_manager.ephemeral_tasks.request_capacity` +* `xpack.alerting.maxEphemeralActionsPerAlert` + +For more information, refer to {kibana-pull}154275[#154275]. + +*Impact* + +To improve task execution resiliency, remove the deprecated settings from the `kibana.yml` file. For detailed information, check link:https://www.elastic.co/guide/en/kibana/current/task-manager-settings-kb.html[Task Manager settings in {kib}]. +==== + +[discrete] +[[kibana-122075]] +.[General settings] Deprecated `xpack.data_enhanced.*` setting. (8.3) +[%collapsible] +==== +*Details* + +In kibana.yml, the `xpack.data_enhanced.*` setting is deprecated. For more information, check {kibana-pull}122075[#122075]. + +*Impact* + +Use the `data.*` configuration parameters instead. +==== + +[discrete] +[[deprecation-33603]] +.[General settings] Removed `xpack:defaultAdminEmail` setting. (8.0) +[%collapsible] +==== +*Details* + +The `xpack:default_admin_email` setting for monitoring use has been removed. For more information, refer to {kibana-pull}33603[#33603] + +*Impact* + +Use the `xpack.monitoring.clusterAlertsEmail` in kibana.yml. +==== + +// Security + +[discrete] +[[kibana-136422]] +.[Security] Deprecated ApiKey authentication for interactive users. (8.4) +[%collapsible] +==== +*Details* + +The ability to authenticate interactive users with ApiKey via a web browser has been deprecated, and will be removed in a future version. + +For more information, refer to {kibana-pull}136422[#136422]. + +*Impact* + +To authenticate interactive users via a web browser, use <>. Use API keys only for programmatic access to {kib} and {es}. +==== + +[discrete] +[[kibana-131636]] +.[Security] Deprecated anonymous authentication credentials. (8.3) +[%collapsible] +==== +*Details* + +The apiKey, including key and ID/key pair, and `elasticsearch_anonymous_user` credential types for anonymous authentication providers are deprecated. For more information, check {kibana-pull}131636[#131636]. + +*Impact* + +If you have anonymous authentication provider configured with apiKey or `elasticsearch_anonymous_user` credential types, a deprecation warning appears, even when the provider is not enabled. +==== + +[discrete] +[[kibana-131166]] +.[Security] Deprecated v1 and v2 security_linux and security_windows jobs. (8.3) +[%collapsible] +==== +*Details* + +The v1 and v2 job configurations for security_linux and security_windows are deprecated. For more information, check {kibana-pull}131166[#131166]. + +*Impact* + +The following security_linux and security_windows job configurations are updated to v3: + +* security_linux: + +** v3_linux_anomalous_network_activity +** v3_linux_anomalous_network_port_activity_ecs +** v3_linux_anomalous_process_all_hosts_ecs +** v3_linux_anomalous_user_name_ecs +** v3_linux_network_configuration_discovery +** v3_linux_network_connection_discovery +** v3_linux_rare_metadata_process +** v3_linux_rare_metadata_user +** v3_linux_rare_sudo_user +** v3_linux_rare_user_compiler +** v3_linux_system_information_discovery +** v3_linux_system_process_discovery +** v3_linux_system_user_discovery +** v3_rare_process_by_host_linux_ecs + +* security_windows: + +** v3_rare_process_by_host_windows_ecs +** v3_windows_anomalous_network_activity_ecs +** v3_windows_anomalous_path_activity_ecs +** v3_windows_anomalous_process_all_hosts_ecs +** v3_windows_anomalous_process_creation +** v3_windows_anomalous_script +** v3_windows_anomalous_service +** v3_windows_anomalous_user_name_ecs +** v3_windows_rare_metadata_process +** v3_windows_rare_metadata_user +** v3_windows_rare_user_runas_event +** v3_windows_rare_user_type10_remote_login +==== + + +// Sharing & Reporting + +[discrete] +[[kibana-178159]] +.[Sharing & Reporting] Downloading a CSV file from a saved search panel in a dashboard has become deprecated in favor of generating a CSV report. (8.14) +[%collapsible] +==== +*Details* + +The mechanism of exporting CSV data from a saved search panel in a dashboard has been changed to generate a CSV report, rather than allowing the CSV data to be downloaded +without creating a report. To preserve the original behavior, it is necessary to update `kibana.yml` with the setting of `xpack.reporting.csv.enablePanelActionDownload: +true`. The scope of this breaking change is limited to downloading CSV files from saved search panels only; downloading CSV files from other types of dashboard panels is +unchanged. For more information, refer to {kibana-pull}178159[#178159]. +==== + + + +// Visualizations + +[discrete] +[[kibana-156455]] +.[Visualizations] The ability to create legacy input controls was hidden. (8.9) +[%collapsible] +==== +*Details* + +The option to create legacy input controls when creating a new visualization is hidden. For more information, refer to {kibana-pull}156455[#156455] +==== + +[discrete] +[[kibana-155503]] +.[Visualizations] Removed legacy field stats. (8.9) +[%collapsible] +==== +*Details* + +Legacy felid stats that were previously shown within a popover have been removed. For more information, refer to {kibana-pull}155503[#155503] +==== + +[discrete] +.[Visualizations] Deprecated input control panels in dashboards. (8.3) +[%collapsible] +==== +*Details* + +The input control panels, which allow you to add interactive filters to dashboards, are deprecated. For more information, check {kibana-pull}132562[#132562]. + +*Impact* + +To add interactive filters to your dashboards, use the link:https://www.elastic.co/guide/en/kibana/8.3/add-controls.html[new controls]. +==== + +[discrete] +[[kibana-130336]] +.[Visualizations] Deprecated the `Auto` default legend size in Lens. (8.3) +[%collapsible] +==== +*Details* + +In the *Lens* visualization editor, the *Auto* default for *Legend width* has been deprecated. For more information, check {kibana-pull}130336[#130336]. + +*Impact* + +When you create *Lens* visualization, the default for the *Legend width* is now *Medium*. +==== + +[float] +==== Elastic Observability solution + + +[discrete] +[[deprecation-120689]] +.[APM] Renamed the `autocreate` data view APM setting. (8.0) +[%collapsible] +==== +*Details* + +The `xpack.apm.autocreateApmIndexPattern` APM setting has been removed. For more information, refer to {kibana-pull}120689[#120689]. + +*Impact* + +To automatically create data views in APM, use `xpack.apm.autoCreateApmDataView`. +==== + +[discrete] +[[kibana-uptime-deprecation]] +.[Uptime] Uptime is deprecated in 8.15.0. (8.15) +[%collapsible] +==== +*Details* + +The Uptime app is already hidden from Kibana when there is no recent Heartbeat data. Migrate to Synthetics as an alternative. For more details, refer to the {observability-guide}/uptime-intro.html[Uptime documentation]. +==== + +[discrete] +[[kibana-154010]] +.[Uptime] Deprecated Synthetics and Uptime monitor schedules (8.8) +[%collapsible] +==== +*Details* + +Synthetics and Uptime monitor schedules and zip URL fields are deprecated. For more information, refer to {kibana-pull}154010[#154010] and {kibana-pull}154952[#154952]. + +*Impact* + +When you create monitors in Uptime Monitor Management and the Synthetics app, unsupported schedules are automatically transferred to the nearest supported schedule. To use zip URLs, use project monitors. +==== + +[discrete] +[[kibana-149506]] +.[Uptime] Deprecated Elastic Synthetics integration. (8.8) +[%collapsible] +==== +*Details* + +The Elastic Synthetics integration is deprecated. For more information, refer to {kibana-pull}149506[#149506]. + +*Impact* + +To monitor endpoints, pages, and user journeys, go to **{observability}** -> **Synthetics (beta)**. +==== + +[float] +==== Elastic Security solution + +NOTE: For the complete Elastic Security solution release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. + + + + From 78bd739920abf50e28c97c86e28d7f328ba24b1c Mon Sep 17 00:00:00 2001 From: Cristina Amico Date: Mon, 7 Oct 2024 12:32:59 +0200 Subject: [PATCH 03/62] [Fleet] Remove body from sendRemovePackage to fix broken uninstall assets button (#195101) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary The "uninstall assets" button in the integrations UI got recently broken. Trying to uninstall assets fails with 400. The reason is that the [UI request](https://github.com/elastic/kibana/blob/6001786d04388f5f79cea74b674e510fc7a60d3a/x-pack/plugins/fleet/public/hooks/use_request/epm.ts#L273-L282) is using and old (and deprecated) endpoint, that sends `body` in the payload. However the [schema validation](https://github.com/elastic/kibana/blob/ccd0e17c0955163f82e15c464d82df45f391cf62/x-pack/plugins/fleet/server/types/rest_spec/epm.ts#L617-L631) of the [delete endpoint](https://github.com/elastic/kibana/blob/1a54aabd6d1806fbdd5309da9b06fefdd4fe0689/x-pack/plugins/fleet/server/routes/epm/index.ts#L540-L568) doesn't accept it. ![Screenshot 2024-10-04 at 10 01 47 AM](https://github.com/user-attachments/assets/0f88fd52-eb1d-489f-9ad4-49e104f40430) Here I'm updating the UI request to use the correct schema. The only other place where this request was used with `body` was in the debug page, so we should be fine. ### Testing - Install any integration - Try to uninstall the assets from the UI: ![Screenshot 2024-10-04 at 17 13 28](https://github.com/user-attachments/assets/f95b5c96-ca8f-4319-8d95-3a76ed588c17) ![Screenshot 2024-10-04 at 17 14 25](https://github.com/user-attachments/assets/aea994bd-2d35-4ca7-ab92-db80a1c5546c) ### Checklist - [ ] [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 --------- Co-authored-by: Elastic Machine --- .../plugins/fleet/common/types/rest_spec/epm.ts | 3 +++ .../debug/components/integration_debugger.tsx | 16 ++++++++++++++-- .../integrations/hooks/use_package_install.tsx | 2 +- .../fleet/public/hooks/use_request/epm.ts | 12 +++++++----- x-pack/plugins/fleet/public/types/index.ts | 1 + 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/fleet/common/types/rest_spec/epm.ts b/x-pack/plugins/fleet/common/types/rest_spec/epm.ts index 4af01c1b14c92..e8dee14e40b30 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/epm.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/epm.ts @@ -196,6 +196,9 @@ export interface DeletePackageRequest { pkgName: string; pkgVersion: string; }; + query: { + force?: boolean; + }; } export interface DeletePackageResponse { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/debug/components/integration_debugger.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/debug/components/integration_debugger.tsx index 30fc1b84964f3..3e8a4e758fe8a 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/debug/components/integration_debugger.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/debug/components/integration_debugger.tsx @@ -61,7 +61,13 @@ export const IntegrationDebugger: React.FunctionComponent = () => { const integrations = useQuery(['debug-integrations'], fetchInstalledIntegrations); const uninstallMutation = useMutation(async (integration: PackageListItem) => { - const response = await sendRemovePackage(integration.name, integration.version, true); + const response = await sendRemovePackage( + { + pkgName: integration.name, + pkgVersion: integration.version, + }, + { force: true } + ); if (response.error) { notifications.toasts.addError(response.error, { @@ -92,7 +98,13 @@ export const IntegrationDebugger: React.FunctionComponent = () => { }); const reinstallMutation = useMutation(async (integration: PackageListItem) => { - const uninstallResponse = await sendRemovePackage(integration.name, integration.version, true); + const uninstallResponse = await sendRemovePackage( + { + pkgName: integration.name, + pkgVersion: integration.version, + }, + { force: true } + ); if (uninstallResponse.error) { notifications.toasts.addError(uninstallResponse.error, { diff --git a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx b/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx index f60e887e25fbb..579a711a36398 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/hooks/use_package_install.tsx @@ -199,7 +199,7 @@ function usePackageInstall({ startServices }: { startServices: StartServices }) }: Pick & { redirectToVersion: string }) => { setPackageInstallStatus({ name, status: InstallStatus.uninstalling, version }); - const res = await sendRemovePackage(name, version); + const res = await sendRemovePackage({ pkgName: name, pkgVersion: version }); if (res.error) { setPackageInstallStatus({ name, status: InstallStatus.installed, version }); notifications.toasts.addWarning({ diff --git a/x-pack/plugins/fleet/public/hooks/use_request/epm.ts b/x-pack/plugins/fleet/public/hooks/use_request/epm.ts index c7d40e84abdd0..d339463beaf17 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/epm.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/epm.ts @@ -20,6 +20,7 @@ import type { GetLimitedPackagesResponse, GetInfoResponse, InstallPackageResponse, + DeletePackageRequest, DeletePackageResponse, UpdatePackageRequest, UpdatePackageResponse, @@ -270,16 +271,17 @@ export const sendBulkInstallPackages = ( }); }; -export const sendRemovePackage = (pkgName: string, pkgVersion: string, force: boolean = false) => { +export function sendRemovePackage( + { pkgName, pkgVersion }: DeletePackageRequest['params'], + query?: DeletePackageRequest['query'] +) { return sendRequest({ path: epmRouteService.getRemovePath(pkgName, pkgVersion), method: 'delete', version: API_VERSIONS.public.v1, - body: { - force, - }, + query, }); -}; +} export const sendRequestReauthorizeTransforms = ( pkgName: string, diff --git a/x-pack/plugins/fleet/public/types/index.ts b/x-pack/plugins/fleet/public/types/index.ts index a340b7311fdbe..099df2ce5a34f 100644 --- a/x-pack/plugins/fleet/public/types/index.ts +++ b/x-pack/plugins/fleet/public/types/index.ts @@ -120,6 +120,7 @@ export type { GetLimitedPackagesResponse, GetInfoResponse, InstallPackageResponse, + DeletePackageRequest, DeletePackageResponse, InstallationStatus, Installable, From 0adba9f7214a77db23c4aafdfd2b623f20ca0dc2 Mon Sep 17 00:00:00 2001 From: Ersin Erdal <92688503+ersin-erdal@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:39:40 +0200 Subject: [PATCH 04/62] Prepare the connector HTTP APIs for versioning - Connector Update (#194547) Towards: https://github.com/elastic/response-ops-team/issues/125 Prepares connector update API for versioning. ## To verify: Create some rules and try to update them via UI --- .../routes/connector/apis/update/index.ts | 19 +++ .../connector/apis/update/schemas/latest.ts | 8 ++ .../connector/apis/update/schemas/v1.ts | 28 ++++ .../connector/apis/update/types/latest.ts | 8 ++ .../routes/connector/apis/update/types/v1.ts | 12 ++ .../validate_empty_strings.test.ts | 0 .../lib => common}/validate_empty_strings.ts | 0 .../server/actions_client/actions_client.ts | 135 ++---------------- .../connector/methods/get_all/index.ts | 2 +- .../connector/methods/update/index.ts | 8 ++ .../connector/methods/update/types/index.ts | 8 ++ .../connector/methods/update/types/types.ts | 21 +++ .../connector/methods/update/update.ts | 125 ++++++++++++++++ x-pack/plugins/actions/server/lib/index.ts | 1 - .../server/routes/connector/update/index.ts | 8 ++ .../connector/update/transforms/index.ts | 10 ++ .../latest.ts | 8 ++ .../transform_update_connector_response/v1.ts | 25 ++++ .../{ => connector/update}/update.test.ts | 23 +-- .../server/routes/connector/update/update.ts | 64 +++++++++ .../plugins/actions/server/routes/create.ts | 3 +- x-pack/plugins/actions/server/routes/index.ts | 4 +- .../plugins/actions/server/routes/update.ts | 93 ------------ 23 files changed, 382 insertions(+), 231 deletions(-) create mode 100644 x-pack/plugins/actions/common/routes/connector/apis/update/index.ts create mode 100644 x-pack/plugins/actions/common/routes/connector/apis/update/schemas/latest.ts create mode 100644 x-pack/plugins/actions/common/routes/connector/apis/update/schemas/v1.ts create mode 100644 x-pack/plugins/actions/common/routes/connector/apis/update/types/latest.ts create mode 100644 x-pack/plugins/actions/common/routes/connector/apis/update/types/v1.ts rename x-pack/plugins/actions/{server/lib => common}/validate_empty_strings.test.ts (100%) rename x-pack/plugins/actions/{server/lib => common}/validate_empty_strings.ts (100%) create mode 100644 x-pack/plugins/actions/server/application/connector/methods/update/index.ts create mode 100644 x-pack/plugins/actions/server/application/connector/methods/update/types/index.ts create mode 100644 x-pack/plugins/actions/server/application/connector/methods/update/types/types.ts create mode 100644 x-pack/plugins/actions/server/application/connector/methods/update/update.ts create mode 100644 x-pack/plugins/actions/server/routes/connector/update/index.ts create mode 100644 x-pack/plugins/actions/server/routes/connector/update/transforms/index.ts create mode 100644 x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/latest.ts create mode 100644 x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/v1.ts rename x-pack/plugins/actions/server/routes/{ => connector/update}/update.test.ts (85%) create mode 100644 x-pack/plugins/actions/server/routes/connector/update/update.ts delete mode 100644 x-pack/plugins/actions/server/routes/update.ts diff --git a/x-pack/plugins/actions/common/routes/connector/apis/update/index.ts b/x-pack/plugins/actions/common/routes/connector/apis/update/index.ts new file mode 100644 index 0000000000000..b1538e224ae7b --- /dev/null +++ b/x-pack/plugins/actions/common/routes/connector/apis/update/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { updateConnectorParamsSchema, updateConnectorBodySchema } from './schemas/latest'; +export type { UpdateConnectorBody, UpdateConnectorParams } from './types/latest'; + +export { + updateConnectorParamsSchema as updateConnectorParamsSchemaV1, + updateConnectorBodySchema as updateConnectorBodySchemaV1, +} from './schemas/v1'; + +export type { + UpdateConnectorBody as UpdateConnectorBodyV1, + UpdateConnectorParams as UpdateConnectorParamsV1, +} from './types/v1'; diff --git a/x-pack/plugins/actions/common/routes/connector/apis/update/schemas/latest.ts b/x-pack/plugins/actions/common/routes/connector/apis/update/schemas/latest.ts new file mode 100644 index 0000000000000..25300c97a6d2e --- /dev/null +++ b/x-pack/plugins/actions/common/routes/connector/apis/update/schemas/latest.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './v1'; diff --git a/x-pack/plugins/actions/common/routes/connector/apis/update/schemas/v1.ts b/x-pack/plugins/actions/common/routes/connector/apis/update/schemas/v1.ts new file mode 100644 index 0000000000000..c07fff89574db --- /dev/null +++ b/x-pack/plugins/actions/common/routes/connector/apis/update/schemas/v1.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; +import { validateEmptyStrings } from '../../../../../validate_empty_strings'; + +export const updateConnectorParamsSchema = schema.object({ + id: schema.string({ + meta: { description: 'An identifier for the connector.' }, + }), +}); + +export const updateConnectorBodySchema = schema.object({ + name: schema.string({ + validate: validateEmptyStrings, + meta: { description: 'The display name for the connector.' }, + }), + config: schema.recordOf(schema.string(), schema.any({ validate: validateEmptyStrings }), { + defaultValue: {}, + }), + secrets: schema.recordOf(schema.string(), schema.any({ validate: validateEmptyStrings }), { + defaultValue: {}, + }), +}); diff --git a/x-pack/plugins/actions/common/routes/connector/apis/update/types/latest.ts b/x-pack/plugins/actions/common/routes/connector/apis/update/types/latest.ts new file mode 100644 index 0000000000000..25300c97a6d2e --- /dev/null +++ b/x-pack/plugins/actions/common/routes/connector/apis/update/types/latest.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './v1'; diff --git a/x-pack/plugins/actions/common/routes/connector/apis/update/types/v1.ts b/x-pack/plugins/actions/common/routes/connector/apis/update/types/v1.ts new file mode 100644 index 0000000000000..57279f6db4fbe --- /dev/null +++ b/x-pack/plugins/actions/common/routes/connector/apis/update/types/v1.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { TypeOf } from '@kbn/config-schema'; +import { updateConnectorBodySchemaV1, updateConnectorParamsSchemaV1 } from '..'; + +export type UpdateConnectorParams = TypeOf; +export type UpdateConnectorBody = TypeOf; diff --git a/x-pack/plugins/actions/server/lib/validate_empty_strings.test.ts b/x-pack/plugins/actions/common/validate_empty_strings.test.ts similarity index 100% rename from x-pack/plugins/actions/server/lib/validate_empty_strings.test.ts rename to x-pack/plugins/actions/common/validate_empty_strings.test.ts diff --git a/x-pack/plugins/actions/server/lib/validate_empty_strings.ts b/x-pack/plugins/actions/common/validate_empty_strings.ts similarity index 100% rename from x-pack/plugins/actions/server/lib/validate_empty_strings.ts rename to x-pack/plugins/actions/common/validate_empty_strings.ts diff --git a/x-pack/plugins/actions/server/actions_client/actions_client.ts b/x-pack/plugins/actions/server/actions_client/actions_client.ts index 10c47731ef004..7e4d72faedaed 100644 --- a/x-pack/plugins/actions/server/actions_client/actions_client.ts +++ b/x-pack/plugins/actions/server/actions_client/actions_client.ts @@ -11,7 +11,7 @@ import url from 'url'; import { UsageCounter } from '@kbn/usage-collection-plugin/server'; import { i18n } from '@kbn/i18n'; -import { omitBy, isUndefined, compact, uniq } from 'lodash'; +import { compact, uniq } from 'lodash'; import { IScopedClusterClient, SavedObjectsClientContract, @@ -24,10 +24,11 @@ import { AuditLogger } from '@kbn/security-plugin/server'; import { RunNowResult } from '@kbn/task-manager-plugin/server'; import { IEventLogClient } from '@kbn/event-log-plugin/server'; import { KueryNode } from '@kbn/es-query'; -import { ConnectorWithExtraFindData } from '../application/connector/types'; +import { Connector, ConnectorWithExtraFindData } from '../application/connector/types'; import { ConnectorType } from '../application/connector/types'; import { get } from '../application/connector/methods/get'; -import { getAll } from '../application/connector/methods/get_all'; +import { getAll, getAllSystemConnectors } from '../application/connector/methods/get_all'; +import { update } from '../application/connector/methods/update'; import { listTypes } from '../application/connector/methods/list_types'; import { GetGlobalExecutionKPIParams, @@ -91,15 +92,10 @@ import { } from '../lib/get_execution_log_aggregation'; import { connectorFromSavedObject, isConnectorDeprecated } from '../application/connector/lib'; import { ListTypesParams } from '../application/connector/methods/list_types/types'; -import { getAllSystemConnectors } from '../application/connector/methods/get_all/get_all'; +import { ConnectorUpdateParams } from '../application/connector/methods/update/types'; +import { ConnectorUpdate } from '../application/connector/methods/update/types/types'; -interface ActionUpdate { - name: string; - config: SavedObjectAttributes; - secrets: SavedObjectAttributes; -} - -interface Action extends ActionUpdate { +interface Action extends ConnectorUpdate { actionTypeId: string; } @@ -126,11 +122,6 @@ export interface ConstructorOptions { getEventLogClient: () => Promise; } -export interface UpdateOptions { - id: string; - action: ActionUpdate; -} - export interface ActionsClientContext { logger: Logger; kibanaIndices: string[]; @@ -288,113 +279,13 @@ export class ActionsClient { } /** - * Update action + * Update connector */ - public async update({ id, action }: UpdateOptions): Promise { - try { - await this.context.authorization.ensureAuthorized({ operation: 'update' }); - - const foundInMemoryConnector = this.context.inMemoryConnectors.find( - (connector) => connector.id === id - ); - - if (foundInMemoryConnector?.isSystemAction) { - throw Boom.badRequest( - i18n.translate('xpack.actions.serverSideErrors.systemActionUpdateForbidden', { - defaultMessage: 'System action {id} can not be updated.', - values: { - id, - }, - }) - ); - } - - if (foundInMemoryConnector?.isPreconfigured) { - throw new PreconfiguredActionDisabledModificationError( - i18n.translate('xpack.actions.serverSideErrors.predefinedActionUpdateDisabled', { - defaultMessage: 'Preconfigured action {id} can not be updated.', - values: { - id, - }, - }), - 'update' - ); - } - } catch (error) { - this.context.auditLogger?.log( - connectorAuditEvent({ - action: ConnectorAuditAction.UPDATE, - savedObject: { type: 'action', id }, - error, - }) - ); - throw error; - } - const { attributes, references, version } = - await this.context.unsecuredSavedObjectsClient.get('action', id); - const { actionTypeId } = attributes; - const { name, config, secrets } = action; - const actionType = this.context.actionTypeRegistry.get(actionTypeId); - const configurationUtilities = this.context.actionTypeRegistry.getUtils(); - const validatedActionTypeConfig = validateConfig(actionType, config, { - configurationUtilities, - }); - const validatedActionTypeSecrets = validateSecrets(actionType, secrets, { - configurationUtilities, - }); - if (actionType.validate?.connector) { - validateConnector(actionType, { config, secrets }); - } - - this.context.actionTypeRegistry.ensureActionTypeEnabled(actionTypeId); - - this.context.auditLogger?.log( - connectorAuditEvent({ - action: ConnectorAuditAction.UPDATE, - savedObject: { type: 'action', id }, - outcome: 'unknown', - }) - ); - - const result = await this.context.unsecuredSavedObjectsClient.create( - 'action', - { - ...attributes, - actionTypeId, - name, - isMissingSecrets: false, - config: validatedActionTypeConfig as SavedObjectAttributes, - secrets: validatedActionTypeSecrets as SavedObjectAttributes, - }, - omitBy( - { - id, - overwrite: true, - references, - version, - }, - isUndefined - ) - ); - - try { - await this.context.connectorTokenClient.deleteConnectorTokens({ connectorId: id }); - } catch (e) { - this.context.logger.error( - `Failed to delete auth tokens for connector "${id}" after update: ${e.message}` - ); - } - - return { - id, - actionTypeId: result.attributes.actionTypeId as string, - isMissingSecrets: result.attributes.isMissingSecrets as boolean, - name: result.attributes.name as string, - config: result.attributes.config as Record, - isPreconfigured: false, - isSystemAction: false, - isDeprecated: isConnectorDeprecated(result.attributes), - }; + public async update({ + id, + action, + }: Pick): Promise { + return update({ context: this.context, id, action }); } /** diff --git a/x-pack/plugins/actions/server/application/connector/methods/get_all/index.ts b/x-pack/plugins/actions/server/application/connector/methods/get_all/index.ts index 5b3da65578d65..62630487ebec1 100644 --- a/x-pack/plugins/actions/server/application/connector/methods/get_all/index.ts +++ b/x-pack/plugins/actions/server/application/connector/methods/get_all/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export { getAll, getAllUnsecured } from './get_all'; +export { getAll, getAllUnsecured, getAllSystemConnectors } from './get_all'; diff --git a/x-pack/plugins/actions/server/application/connector/methods/update/index.ts b/x-pack/plugins/actions/server/application/connector/methods/update/index.ts new file mode 100644 index 0000000000000..380394da71e4e --- /dev/null +++ b/x-pack/plugins/actions/server/application/connector/methods/update/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { update } from './update'; diff --git a/x-pack/plugins/actions/server/application/connector/methods/update/types/index.ts b/x-pack/plugins/actions/server/application/connector/methods/update/types/index.ts new file mode 100644 index 0000000000000..a20346331952a --- /dev/null +++ b/x-pack/plugins/actions/server/application/connector/methods/update/types/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export type { ConnectorUpdateParams } from './types'; diff --git a/x-pack/plugins/actions/server/application/connector/methods/update/types/types.ts b/x-pack/plugins/actions/server/application/connector/methods/update/types/types.ts new file mode 100644 index 0000000000000..dfe760d19e91e --- /dev/null +++ b/x-pack/plugins/actions/server/application/connector/methods/update/types/types.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { SavedObjectAttributes } from '@kbn/core/server'; +import { ActionsClientContext } from '../../../../../actions_client'; + +export interface ConnectorUpdate { + name: string; + config: SavedObjectAttributes; + secrets: SavedObjectAttributes; +} + +export interface ConnectorUpdateParams { + context: ActionsClientContext; + id: string; + action: ConnectorUpdate; +} diff --git a/x-pack/plugins/actions/server/application/connector/methods/update/update.ts b/x-pack/plugins/actions/server/application/connector/methods/update/update.ts new file mode 100644 index 0000000000000..7baa099a29029 --- /dev/null +++ b/x-pack/plugins/actions/server/application/connector/methods/update/update.ts @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Boom from '@hapi/boom'; +import { i18n } from '@kbn/i18n'; +import { SavedObjectAttributes } from '@kbn/core/server'; +import { isUndefined, omitBy } from 'lodash'; +import { Connector } from '../../types'; +import { ConnectorUpdateParams } from './types'; +import { PreconfiguredActionDisabledModificationError } from '../../../../lib/errors/preconfigured_action_disabled_modification'; +import { ConnectorAuditAction, connectorAuditEvent } from '../../../../lib/audit_events'; +import { validateConfig, validateConnector, validateSecrets } from '../../../../lib'; +import { isConnectorDeprecated } from '../../lib'; +import { RawAction } from '../../../../types'; + +export async function update({ context, id, action }: ConnectorUpdateParams): Promise { + try { + await context.authorization.ensureAuthorized({ operation: 'update' }); + + const foundInMemoryConnector = context.inMemoryConnectors.find( + (connector) => connector.id === id + ); + + if (foundInMemoryConnector?.isSystemAction) { + throw Boom.badRequest( + i18n.translate('xpack.actions.serverSideErrors.systemActionUpdateForbidden', { + defaultMessage: 'System action {id} can not be updated.', + values: { + id, + }, + }) + ); + } + + if (foundInMemoryConnector?.isPreconfigured) { + throw new PreconfiguredActionDisabledModificationError( + i18n.translate('xpack.actions.serverSideErrors.predefinedActionUpdateDisabled', { + defaultMessage: 'Preconfigured action {id} can not be updated.', + values: { + id, + }, + }), + 'update' + ); + } + } catch (error) { + context.auditLogger?.log( + connectorAuditEvent({ + action: ConnectorAuditAction.UPDATE, + savedObject: { type: 'action', id }, + error, + }) + ); + throw error; + } + const { attributes, references, version } = + await context.unsecuredSavedObjectsClient.get('action', id); + const { actionTypeId } = attributes; + const { name, config, secrets } = action; + const actionType = context.actionTypeRegistry.get(actionTypeId); + const configurationUtilities = context.actionTypeRegistry.getUtils(); + const validatedActionTypeConfig = validateConfig(actionType, config, { + configurationUtilities, + }); + const validatedActionTypeSecrets = validateSecrets(actionType, secrets, { + configurationUtilities, + }); + if (actionType.validate?.connector) { + validateConnector(actionType, { config, secrets }); + } + + context.actionTypeRegistry.ensureActionTypeEnabled(actionTypeId); + + context.auditLogger?.log( + connectorAuditEvent({ + action: ConnectorAuditAction.UPDATE, + savedObject: { type: 'action', id }, + outcome: 'unknown', + }) + ); + + const result = await context.unsecuredSavedObjectsClient.create( + 'action', + { + ...attributes, + actionTypeId, + name, + isMissingSecrets: false, + config: validatedActionTypeConfig as SavedObjectAttributes, + secrets: validatedActionTypeSecrets as SavedObjectAttributes, + }, + omitBy( + { + id, + overwrite: true, + references, + version, + }, + isUndefined + ) + ); + + try { + await context.connectorTokenClient.deleteConnectorTokens({ connectorId: id }); + } catch (e) { + context.logger.error( + `Failed to delete auth tokens for connector "${id}" after update: ${e.message}` + ); + } + + return { + id, + actionTypeId: result.attributes.actionTypeId as string, + isMissingSecrets: result.attributes.isMissingSecrets as boolean, + name: result.attributes.name as string, + config: result.attributes.config as Record, + isPreconfigured: false, + isSystemAction: false, + isDeprecated: isConnectorDeprecated(result.attributes), + }; +} diff --git a/x-pack/plugins/actions/server/lib/index.ts b/x-pack/plugins/actions/server/lib/index.ts index 2737d83abfff6..9b8d452f446a9 100644 --- a/x-pack/plugins/actions/server/lib/index.ts +++ b/x-pack/plugins/actions/server/lib/index.ts @@ -35,7 +35,6 @@ export { isNotificationExecutionSource, ActionExecutionSourceType, } from './action_execution_source'; -export { validateEmptyStrings } from './validate_empty_strings'; export { parseDate } from './parse_date'; export type { RelatedSavedObjects } from './related_saved_objects'; export { getBasicAuthHeader, combineHeadersWithBasicAuthHeader } from './get_basic_auth_header'; diff --git a/x-pack/plugins/actions/server/routes/connector/update/index.ts b/x-pack/plugins/actions/server/routes/connector/update/index.ts new file mode 100644 index 0000000000000..ccad70f1b3033 --- /dev/null +++ b/x-pack/plugins/actions/server/routes/connector/update/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { updateConnectorRoute } from './update'; diff --git a/x-pack/plugins/actions/server/routes/connector/update/transforms/index.ts b/x-pack/plugins/actions/server/routes/connector/update/transforms/index.ts new file mode 100644 index 0000000000000..3eac74b1b676a --- /dev/null +++ b/x-pack/plugins/actions/server/routes/connector/update/transforms/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { transformUpdateConnectorResponse } from './transform_update_connector_response/latest'; + +export { transformUpdateConnectorResponse as transformUpdateConnectorResponseV1 } from './transform_update_connector_response/v1'; diff --git a/x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/latest.ts b/x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/latest.ts new file mode 100644 index 0000000000000..b1e19bcde42d0 --- /dev/null +++ b/x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/latest.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { transformUpdateConnectorResponse } from './v1'; diff --git a/x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/v1.ts b/x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/v1.ts new file mode 100644 index 0000000000000..abb26f8012caf --- /dev/null +++ b/x-pack/plugins/actions/server/routes/connector/update/transforms/transform_update_connector_response/v1.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ConnectorResponseV1 } from '../../../../../../common/routes/connector/response'; +import { Connector } from '../../../../../application/connector/types'; + +export const transformUpdateConnectorResponse = ({ + actionTypeId, + isPreconfigured, + isMissingSecrets, + isDeprecated, + isSystemAction, + ...res +}: Connector): ConnectorResponseV1 => ({ + ...res, + connector_type_id: actionTypeId, + is_preconfigured: isPreconfigured, + is_deprecated: isDeprecated, + is_missing_secrets: isMissingSecrets, + is_system_action: isSystemAction, +}); diff --git a/x-pack/plugins/actions/server/routes/update.test.ts b/x-pack/plugins/actions/server/routes/connector/update/update.test.ts similarity index 85% rename from x-pack/plugins/actions/server/routes/update.test.ts rename to x-pack/plugins/actions/server/routes/connector/update/update.test.ts index 9fdac7740129d..f48c87fca43c2 100644 --- a/x-pack/plugins/actions/server/routes/update.test.ts +++ b/x-pack/plugins/actions/server/routes/connector/update/update.test.ts @@ -5,14 +5,15 @@ * 2.0. */ -import { bodySchema, updateActionRoute } from './update'; +import { updateConnectorRoute } from './update'; import { httpServiceMock } from '@kbn/core/server/mocks'; -import { licenseStateMock } from '../lib/license_state.mock'; -import { mockHandlerArguments } from './legacy/_mock_handler_arguments'; -import { actionsClientMock } from '../actions_client/actions_client.mock'; -import { verifyAccessAndContext } from './verify_access_and_context'; +import { licenseStateMock } from '../../../lib/license_state.mock'; +import { mockHandlerArguments } from '../../legacy/_mock_handler_arguments'; +import { actionsClientMock } from '../../../actions_client/actions_client.mock'; +import { verifyAccessAndContext } from '../../verify_access_and_context'; +import { updateConnectorBodySchema } from '../../../../common/routes/connector/apis/update'; -jest.mock('./verify_access_and_context', () => ({ +jest.mock('../../verify_access_and_context', () => ({ verifyAccessAndContext: jest.fn(), })); @@ -21,12 +22,12 @@ beforeEach(() => { (verifyAccessAndContext as jest.Mock).mockImplementation((license, handler) => handler); }); -describe('updateActionRoute', () => { +describe('updateConnectorRoute', () => { it('updates an action with proper parameters', async () => { const licenseState = licenseStateMock.create(); const router = httpServiceMock.createRouter(); - updateActionRoute(router, licenseState); + updateConnectorRoute(router, licenseState); const [config, handler] = router.put.mock.calls[0]; @@ -97,7 +98,7 @@ describe('updateActionRoute', () => { const licenseState = licenseStateMock.create(); const router = httpServiceMock.createRouter(); - updateActionRoute(router, licenseState); + updateConnectorRoute(router, licenseState); const [, handler] = router.put.mock.calls[0]; @@ -142,7 +143,7 @@ describe('updateActionRoute', () => { throw new Error('OMG'); }); - updateActionRoute(router, licenseState); + updateConnectorRoute(router, licenseState); const [, handler] = router.put.mock.calls[0]; @@ -185,7 +186,7 @@ describe('updateActionRoute', () => { config: { foo: true }, secrets: { key: 'i8oh34yf9783y39' }, }; - expect(() => bodySchema.validate(body)).toThrowErrorMatchingInlineSnapshot( + expect(() => updateConnectorBodySchema.validate(body)).toThrowErrorMatchingInlineSnapshot( `"[name]: value '' is not valid"` ); }); diff --git a/x-pack/plugins/actions/server/routes/connector/update/update.ts b/x-pack/plugins/actions/server/routes/connector/update/update.ts new file mode 100644 index 0000000000000..888cdee9b0e3a --- /dev/null +++ b/x-pack/plugins/actions/server/routes/connector/update/update.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IRouter } from '@kbn/core/server'; +import { ILicenseState } from '../../../lib'; +import { BASE_ACTION_API_PATH } from '../../../../common'; +import { ActionsRequestHandlerContext } from '../../../types'; +import { verifyAccessAndContext } from '../../verify_access_and_context'; +import { connectorResponseSchemaV1 } from '../../../../common/routes/connector/response'; +import { + UpdateConnectorBodyV1, + UpdateConnectorParamsV1, + updateConnectorBodySchemaV1, + updateConnectorParamsSchemaV1, +} from '../../../../common/routes/connector/apis/update'; +import { transformUpdateConnectorResponseV1 } from './transforms'; + +export const updateConnectorRoute = ( + router: IRouter, + licenseState: ILicenseState +) => { + router.put( + { + path: `${BASE_ACTION_API_PATH}/connector/{id}`, + options: { + access: 'public', + summary: `Update a connector`, + tags: ['oas-tag:connectors'], + }, + validate: { + request: { + body: updateConnectorBodySchemaV1, + params: updateConnectorParamsSchemaV1, + }, + response: { + 200: { + description: 'Indicates a successful call.', + body: () => connectorResponseSchemaV1, + }, + }, + }, + }, + router.handleLegacyErrors( + verifyAccessAndContext(licenseState, async function (context, req, res) { + const actionsClient = (await context.actions).getActionsClient(); + const { id }: UpdateConnectorParamsV1 = req.params; + const { name, config, secrets }: UpdateConnectorBodyV1 = req.body; + + return res.ok({ + body: transformUpdateConnectorResponseV1( + await actionsClient.update({ + id, + action: { name, config, secrets }, + }) + ), + }); + }) + ) + ); +}; diff --git a/x-pack/plugins/actions/server/routes/create.ts b/x-pack/plugins/actions/server/routes/create.ts index 7c651fd67290c..25962701918a5 100644 --- a/x-pack/plugins/actions/server/routes/create.ts +++ b/x-pack/plugins/actions/server/routes/create.ts @@ -8,11 +8,12 @@ import { schema } from '@kbn/config-schema'; import { IRouter } from '@kbn/core/server'; import { ActionResult, ActionsRequestHandlerContext } from '../types'; -import { ILicenseState, validateEmptyStrings } from '../lib'; +import { ILicenseState } from '../lib'; import { BASE_ACTION_API_PATH, RewriteRequestCase, RewriteResponseCase } from '../../common'; import { verifyAccessAndContext } from './verify_access_and_context'; import { CreateOptions } from '../actions_client'; import { connectorResponseSchemaV1 } from '../../common/routes/connector/response'; +import { validateEmptyStrings } from '../../common/validate_empty_strings'; export const bodySchema = schema.object({ name: schema.string({ diff --git a/x-pack/plugins/actions/server/routes/index.ts b/x-pack/plugins/actions/server/routes/index.ts index 975eb662be415..cccca87d849e2 100644 --- a/x-pack/plugins/actions/server/routes/index.ts +++ b/x-pack/plugins/actions/server/routes/index.ts @@ -17,7 +17,7 @@ import { createActionRoute } from './create'; import { deleteConnectorRoute } from './connector/delete'; import { executeActionRoute } from './execute'; import { getConnectorRoute } from './connector/get'; -import { updateActionRoute } from './update'; +import { updateConnectorRoute } from './connector/update'; import { getOAuthAccessToken } from './get_oauth_access_token'; import { defineLegacyRoutes } from './legacy'; import { ActionsConfigurationUtilities } from '../actions_config'; @@ -40,7 +40,7 @@ export function defineRoutes(opts: RouteOptions) { deleteConnectorRoute(router, licenseState); getConnectorRoute(router, licenseState); getAllConnectorsRoute(router, licenseState); - updateActionRoute(router, licenseState); + updateConnectorRoute(router, licenseState); listTypesRoute(router, licenseState); executeActionRoute(router, licenseState); getGlobalExecutionLogRoute(router, licenseState); diff --git a/x-pack/plugins/actions/server/routes/update.ts b/x-pack/plugins/actions/server/routes/update.ts deleted file mode 100644 index 8e1ffcb2b3230..0000000000000 --- a/x-pack/plugins/actions/server/routes/update.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { schema } from '@kbn/config-schema'; -import { IRouter } from '@kbn/core/server'; -import { ILicenseState, validateEmptyStrings } from '../lib'; -import { BASE_ACTION_API_PATH, RewriteResponseCase } from '../../common'; -import { ActionResult, ActionsRequestHandlerContext } from '../types'; -import { verifyAccessAndContext } from './verify_access_and_context'; -import { connectorResponseSchemaV1 } from '../../common/routes/connector/response'; - -const paramSchema = schema.object({ - id: schema.string({ - meta: { description: 'An identifier for the connector.' }, - }), -}); - -export const bodySchema = schema.object({ - name: schema.string({ - validate: validateEmptyStrings, - meta: { description: 'The display name for the connector.' }, - }), - config: schema.recordOf(schema.string(), schema.any({ validate: validateEmptyStrings }), { - defaultValue: {}, - }), - secrets: schema.recordOf(schema.string(), schema.any({ validate: validateEmptyStrings }), { - defaultValue: {}, - }), -}); - -const rewriteBodyRes: RewriteResponseCase = ({ - actionTypeId, - isPreconfigured, - isMissingSecrets, - isDeprecated, - isSystemAction, - ...res -}) => ({ - ...res, - connector_type_id: actionTypeId, - is_preconfigured: isPreconfigured, - is_deprecated: isDeprecated, - is_missing_secrets: isMissingSecrets, - is_system_action: isSystemAction, -}); - -export const updateActionRoute = ( - router: IRouter, - licenseState: ILicenseState -) => { - router.put( - { - path: `${BASE_ACTION_API_PATH}/connector/{id}`, - options: { - access: 'public', - summary: `Update a connector`, - tags: ['oas-tag:connectors'], - }, - validate: { - request: { - body: bodySchema, - params: paramSchema, - }, - response: { - 200: { - description: 'Indicates a successful call.', - body: () => connectorResponseSchemaV1, - }, - }, - }, - }, - router.handleLegacyErrors( - verifyAccessAndContext(licenseState, async function (context, req, res) { - const actionsClient = (await context.actions).getActionsClient(); - const { id } = req.params; - const { name, config, secrets } = req.body; - - return res.ok({ - body: rewriteBodyRes( - await actionsClient.update({ - id, - action: { name, config, secrets }, - }) - ), - }); - }) - ) - ); -}; From c44b7de7a23fbd5b11b31cc8d39c5baffb6c8d6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:46:47 +0100 Subject: [PATCH 05/62] [APM][ECO] Removing Entities inventory from APM (#195116) closes https://github.com/elastic/kibana/issues/194114 We will no longer show the entity inventory page on the APM UI. So, I'm removing all its code. --- .../observability_solution/apm/kibana.jsonc | 3 +- ...ter_service_inventory_view_type_context.ts | 36 -- .../entities/entity_link/entity_link.test.tsx | 56 +-- .../app/entities/entity_link/index.tsx | 13 +- .../app/entities/logs/add_apm_callout.tsx | 117 ------- .../service_groups_list/index.tsx | 6 +- .../apm_signal_inventory/index.tsx | 322 ------------------ .../app/service_inventory/index.tsx | 313 ++++++++++++++++- .../multi_signal_inventory/index.tsx | 218 ------------ .../table/column_header.tsx | 39 --- .../table/get_service_columns.tsx | 268 --------------- .../table/multi_signal_services_table.tsx | 82 ----- .../table/no_entities_empty_state.tsx | 144 -------- .../service_inventory.stories.tsx | 16 +- .../__fixtures__/service_api_mock_data.ts | 2 +- .../service_list/apm_services_table.tsx | 41 ++- .../column_header_with_tooltip.tsx | 0 .../service_list/health_badge.tsx | 4 +- .../service_list/order_service_items.test.ts | 4 +- .../service_list/order_service_items.ts | 4 +- .../service_list/service_list.stories.tsx | 12 +- .../service_list/service_list.test.tsx | 8 +- .../components/app/service_overview/index.tsx | 7 +- .../service_overview/logs_overview/index.tsx | 4 +- .../add_data_context_menu.tsx | 13 +- .../app_root/apm_header_action_menu/index.tsx | 8 +- .../components/routing/app_root/index.tsx | 21 +- .../templates/apm_main_template/index.tsx | 6 +- .../log_rates}/log_error_rate_chart.tsx | 15 +- .../charts/log_rates}/log_rate_chart.tsx | 15 +- .../charts/log_rates}/popover.tsx | 0 .../charts/log_rates}/tooltip_content.tsx | 2 +- .../entity_enablement/service_eco_tour.tsx | 49 --- .../use_service_entity_summary_fetcher.ts | 8 +- .../entity_manager_context.tsx | 94 ----- .../use_entity_manager.ts | 55 --- .../use_entity_manager_enablement_context.ts | 13 - .../use_entity_centric_experience_setting.tsx | 20 ++ .../apm/public/plugin.ts | 8 - .../services/telemetry/telemetry_client.ts | 10 - .../services/telemetry/telemetry_events.ts | 26 -- .../apm/public/services/telemetry/types.ts | 14 - .../observability_solution/apm/tsconfig.json | 1 - .../translations/translations/fr-FR.json | 6 - .../translations/translations/ja-JP.json | 6 - .../translations/translations/zh-CN.json | 6 - 46 files changed, 431 insertions(+), 1684 deletions(-) delete mode 100644 x-pack/plugins/observability_solution/apm/public/analytics/register_service_inventory_view_type_context.ts delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/entities/logs/add_apm_callout.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/index.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/index.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/column_header.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/multi_signal_services_table.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/no_entities_empty_state.tsx rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_inventory.stories.tsx (74%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/__fixtures__/service_api_mock_data.ts (94%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/apm_services_table.tsx (91%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/column_header_with_tooltip.tsx (100%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/health_badge.tsx (85%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/order_service_items.test.ts (97%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/order_service_items.ts (94%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/service_list.stories.tsx (83%) rename x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/{apm_signal_inventory => }/service_list/service_list.test.tsx (96%) rename x-pack/plugins/observability_solution/apm/public/components/{app/entities/charts => shared/charts/log_rates}/log_error_rate_chart.tsx (89%) rename x-pack/plugins/observability_solution/apm/public/components/{app/entities/charts => shared/charts/log_rates}/log_rate_chart.tsx (87%) rename x-pack/plugins/observability_solution/apm/public/components/{app/service_inventory/multi_signal_inventory/table => shared/charts/log_rates}/popover.tsx (100%) rename x-pack/plugins/observability_solution/apm/public/components/{app/service_inventory/multi_signal_inventory/table => shared/charts/log_rates}/tooltip_content.tsx (93%) delete mode 100644 x-pack/plugins/observability_solution/apm/public/components/shared/entity_enablement/service_eco_tour.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx delete mode 100644 x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager.ts delete mode 100644 x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager_enablement_context.ts create mode 100644 x-pack/plugins/observability_solution/apm/public/hooks/use_entity_centric_experience_setting.tsx diff --git a/x-pack/plugins/observability_solution/apm/kibana.jsonc b/x-pack/plugins/observability_solution/apm/kibana.jsonc index 0e305bc449c0e..e12b22a43d60a 100644 --- a/x-pack/plugins/observability_solution/apm/kibana.jsonc +++ b/x-pack/plugins/observability_solution/apm/kibana.jsonc @@ -30,8 +30,7 @@ "lens", "maps", "uiActions", - "logsDataAccess", - "entityManager" + "logsDataAccess" ], "optionalPlugins": [ "actions", diff --git a/x-pack/plugins/observability_solution/apm/public/analytics/register_service_inventory_view_type_context.ts b/x-pack/plugins/observability_solution/apm/public/analytics/register_service_inventory_view_type_context.ts deleted file mode 100644 index c26a84bb07b6c..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/analytics/register_service_inventory_view_type_context.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { AnalyticsServiceSetup } from '@kbn/core/public'; -import { BehaviorSubject } from 'rxjs'; -import { ServiceInventoryView } from '../context/entity_manager_context/entity_manager_context'; - -export const SERVICE_INVENTORY_STORAGE_KEY = 'apm.service.inventory.view'; - -export let serviceInventoryViewType$: BehaviorSubject<{ serviceInventoryViewType: string }>; - -export function registerServiceInventoryViewTypeContext(analytics: AnalyticsServiceSetup) { - const serviceInventoryLocalStorageValue = window.localStorage.getItem( - SERVICE_INVENTORY_STORAGE_KEY - ); - serviceInventoryViewType$ = new BehaviorSubject({ - serviceInventoryViewType: - serviceInventoryLocalStorageValue === null - ? ServiceInventoryView.classic - : JSON.parse(serviceInventoryLocalStorageValue), - }); - analytics.registerContextProvider({ - name: 'serviceInventoryViewType', - context$: serviceInventoryViewType$, - schema: { - serviceInventoryViewType: { - type: 'keyword', - _meta: { description: 'The APM service inventory view type' }, - }, - }, - }); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/entity_link.test.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/entity_link.test.tsx index 4054614838954..cdf6f23eb53d9 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/entity_link.test.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/entity_link.test.tsx @@ -11,8 +11,6 @@ import { EntityLink } from '.'; import { MockApmPluginContextWrapper } from '../../../../context/apm_plugin/mock_apm_plugin_context'; import type { ServiceEntitySummary } from '../../../../context/apm_service/use_service_entity_summary_fetcher'; import * as useServiceEntitySummary from '../../../../context/apm_service/use_service_entity_summary_fetcher'; -import type { EntityManagerEnablementContextValue } from '../../../../context/entity_manager_context/entity_manager_context'; -import * as useEntityManagerEnablementContext from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; import * as useFetcher from '../../../../hooks/use_fetcher'; import { FETCH_STATUS } from '../../../../hooks/use_fetcher'; import { fromQuery } from '../../../shared/links/url_helpers'; @@ -20,6 +18,7 @@ import { APIReturnType } from '../../../../services/rest/create_call_apm_api'; import { Redirect } from 'react-router-dom'; import { ApmPluginContextValue } from '../../../../context/apm_plugin/apm_plugin_context'; import { ApmThemeProvider } from '../../../routing/app_root'; +import * as useEntityCentricExperienceSetting from '../../../../hooks/use_entity_centric_experience_setting'; jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), // Keep other functionality intact @@ -29,12 +28,12 @@ jest.mock('react-router-dom', () => ({ export type HasApmData = APIReturnType<'GET /internal/apm/has_data'>; const renderEntityLink = ({ - entityManagerMockReturnValue, + isEntityCentricExperienceEnabled = true, serviceEntitySummaryMockReturnValue, hasApmDataFetcherMockReturnValue, query = {}, }: { - entityManagerMockReturnValue: Partial; + isEntityCentricExperienceEnabled?: boolean; serviceEntitySummaryMockReturnValue: ReturnType< typeof useServiceEntitySummary.useServiceEntitySummaryFetcher >; @@ -45,10 +44,8 @@ const renderEntityLink = ({ }; }) => { jest - .spyOn(useEntityManagerEnablementContext, 'useEntityManagerEnablementContext') - .mockReturnValue( - entityManagerMockReturnValue as unknown as EntityManagerEnablementContextValue - ); + .spyOn(useEntityCentricExperienceSetting, 'useEntityCentricExperienceSetting') + .mockReturnValue({ isEntityCentricExperienceEnabled }); jest .spyOn(useServiceEntitySummary, 'useServiceEntitySummaryFetcher') @@ -101,30 +98,9 @@ describe('Entity link', () => { jest.clearAllMocks(); }); - it('renders a loading spinner while fetching data', () => { - renderEntityLink({ - entityManagerMockReturnValue: { - isEntityCentricExperienceViewEnabled: undefined, - isEnablementPending: true, - }, - serviceEntitySummaryMockReturnValue: { - serviceEntitySummary: undefined, - serviceEntitySummaryStatus: FETCH_STATUS.LOADING, - }, - hasApmDataFetcherMockReturnValue: { - data: undefined, - status: FETCH_STATUS.LOADING, - }, - }); - expect(screen.queryByTestId('apmEntityLinkLoadingSpinner')).toBeInTheDocument(); - }); - it('renders EEM callout when EEM is enabled but service is not found on EEM indices', () => { renderEntityLink({ - entityManagerMockReturnValue: { - isEntityCentricExperienceViewEnabled: true, - isEnablementPending: false, - }, + isEntityCentricExperienceEnabled: true, serviceEntitySummaryMockReturnValue: { serviceEntitySummary: undefined, serviceEntitySummaryStatus: FETCH_STATUS.SUCCESS, @@ -141,10 +117,7 @@ describe('Entity link', () => { it('renders Service Overview page when EEM is disabled', () => { renderEntityLink({ - entityManagerMockReturnValue: { - isEntityCentricExperienceViewEnabled: false, - isEnablementPending: false, - }, + isEntityCentricExperienceEnabled: false, serviceEntitySummaryMockReturnValue: { serviceEntitySummary: undefined, serviceEntitySummaryStatus: FETCH_STATUS.SUCCESS, @@ -171,10 +144,7 @@ describe('Entity link', () => { it('renders Service Overview page when EEM is enabled but Service is not found on EEM but it has raw APM data', () => { renderEntityLink({ - entityManagerMockReturnValue: { - isEntityCentricExperienceViewEnabled: true, - isEnablementPending: false, - }, + isEntityCentricExperienceEnabled: true, serviceEntitySummaryMockReturnValue: { serviceEntitySummary: undefined, serviceEntitySummaryStatus: FETCH_STATUS.SUCCESS, @@ -201,10 +171,7 @@ describe('Entity link', () => { it('renders Service Overview page when EEM is enabled and Service is found on EEM', () => { renderEntityLink({ - entityManagerMockReturnValue: { - isEntityCentricExperienceViewEnabled: true, - isEnablementPending: false, - }, + isEntityCentricExperienceEnabled: true, serviceEntitySummaryMockReturnValue: { serviceEntitySummary: { dataStreamTypes: ['metrics'] } as unknown as ServiceEntitySummary, serviceEntitySummaryStatus: FETCH_STATUS.SUCCESS, @@ -231,10 +198,7 @@ describe('Entity link', () => { it('renders Service Overview page setting time range from data plugin', () => { renderEntityLink({ - entityManagerMockReturnValue: { - isEntityCentricExperienceViewEnabled: true, - isEnablementPending: false, - }, + isEntityCentricExperienceEnabled: true, serviceEntitySummaryMockReturnValue: { serviceEntitySummary: { dataStreamTypes: ['metrics'] } as unknown as ServiceEntitySummary, serviceEntitySummaryStatus: FETCH_STATUS.SUCCESS, diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/index.tsx index 5fdbcc9399258..2ea10868957b5 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/entities/entity_link/index.tsx @@ -14,9 +14,9 @@ import React from 'react'; import { Redirect } from 'react-router-dom'; import { ENVIRONMENT_ALL_VALUE } from '../../../../../common/environment_filter_values'; import { useServiceEntitySummaryFetcher } from '../../../../context/apm_service/use_service_entity_summary_fetcher'; -import { useEntityManagerEnablementContext } from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; import { useApmParams } from '../../../../hooks/use_apm_params'; import { useApmRouter } from '../../../../hooks/use_apm_router'; +import { useEntityCentricExperienceSetting } from '../../../../hooks/use_entity_centric_experience_setting'; import { FETCH_STATUS, isPending, useFetcher } from '../../../../hooks/use_fetcher'; import { useTheme } from '../../../../hooks/use_theme'; import { ApmPluginStartDeps } from '../../../../plugin'; @@ -36,8 +36,7 @@ export function EntityLink() { path: { serviceName }, query: { rangeFrom = timeRange.from, rangeTo = timeRange.to }, } = useApmParams('/link-to/entity/{serviceName}'); - const { isEntityCentricExperienceViewEnabled, isEnablementPending } = - useEntityManagerEnablementContext(); + const { isEntityCentricExperienceEnabled } = useEntityCentricExperienceSetting(); const { serviceEntitySummary, serviceEntitySummaryStatus } = useServiceEntitySummaryFetcher({ serviceName, @@ -48,17 +47,13 @@ export function EntityLink() { return callApmApi('GET /internal/apm/has_data'); }, []); - if ( - isEnablementPending || - serviceEntitySummaryStatus === FETCH_STATUS.LOADING || - isPending(hasApmDataStatus) - ) { + if (serviceEntitySummaryStatus === FETCH_STATUS.LOADING || isPending(hasApmDataStatus)) { return ; } if ( // When EEM is enabled and the service is not found on the EEM indices and there's no APM data, display a callout guiding on the limitations of EEM - isEntityCentricExperienceViewEnabled === true && + isEntityCentricExperienceEnabled === true && (serviceEntitySummary?.dataStreamTypes === undefined || serviceEntitySummary.dataStreamTypes.length === 0) && hasApmData?.hasData !== true diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/entities/logs/add_apm_callout.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/entities/logs/add_apm_callout.tsx deleted file mode 100644 index 49856327dd703..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/app/entities/logs/add_apm_callout.tsx +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import React from 'react'; -import { i18n } from '@kbn/i18n'; -import { - EuiFlexGroup, - EuiFlexItem, - EuiImage, - EuiPanel, - EuiSpacer, - EuiText, - EuiTitle, - EuiButtonEmpty, - useEuiTheme, - EuiButtonIcon, -} from '@elastic/eui'; -import { apmLight } from '@kbn/shared-svg'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { useKibana } from '../../../../context/kibana_context/use_kibana'; -import { ApmPluginStartDeps, ApmServices } from '../../../../plugin'; -import { AddApmData } from '../../../shared/add_data_buttons/buttons'; - -interface Props { - onClose: () => void; -} - -export function AddAPMCallOut({ onClose }: Props) { - const { euiTheme } = useEuiTheme(); - const { services } = useKibana(); - - function handleClick() { - services.telemetry.reportEntityInventoryAddData({ - view: 'add_apm_cta', - }); - } - - return ( - - - - - - - - - -

- -

-
- - - - -

- -

-
- -
-
-
- - - - - - - -
- - -
- -
-
- - - {i18n.translate('xpack.apm.addAPMCallOut.linkToElasticcoButtonEmptyLabel', { - defaultMessage: 'Learn more', - })} - - -
-
- ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_groups_list/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_groups_list/index.tsx index 4381523417b25..27749d9c96b28 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_groups_list/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_groups_list/index.tsx @@ -24,14 +24,14 @@ import { Sort } from './sort'; import { RefreshServiceGroupsSubscriber } from '../refresh_service_groups_subscriber'; import { ServiceGroupSaveButton } from '../service_group_save'; import { BetaBadge } from '../../../shared/beta_badge'; -import { useEntityManagerEnablementContext } from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; +import { useEntityCentricExperienceSetting } from '../../../../hooks/use_entity_centric_experience_setting'; export type ServiceGroupsSortType = 'recently_added' | 'alphabetical'; const GET_STARTED_URL = 'https://www.elastic.co/guide/en/apm/get-started/current/index.html'; export function ServiceGroupsList() { - const { isEntityCentricExperienceViewEnabled } = useEntityManagerEnablementContext(); + const { isEntityCentricExperienceEnabled } = useEntityCentricExperienceSetting(); const [filter, setFilter] = useState(''); @@ -137,7 +137,7 @@ export function ServiceGroupsList() { {i18n.translate('xpack.apm.serviceGroups.listDescription', { defaultMessage: 'Displayed service counts reflect the last 24 hours.', })} - {isEntityCentricExperienceViewEnabled && ( + {isEntityCentricExperienceEnabled && ( ; - -const INITIAL_PAGE_SIZE = 25; -const INITIAL_DATA: MainStatisticsApiResponse & { requestId: string } = { - requestId: '', - items: [], - serviceOverflowCount: 0, - maxCountExceeded: false, -}; - -function useServicesMainStatisticsFetcher(searchQuery: string | undefined) { - const { - query: { - rangeFrom, - rangeTo, - environment, - kuery, - serviceGroup, - page = 0, - pageSize = INITIAL_PAGE_SIZE, - sortDirection, - sortField, - }, - } = useApmParams('/services'); - - const { start, end } = useTimeRange({ rangeFrom, rangeTo }); - - const preferred = usePreferredDataSourceAndBucketSize({ - start, - end, - kuery, - type: ApmDocumentType.ServiceTransactionMetric, - numBuckets: 20, - }); - - const shouldUseDurationSummary = !!preferred?.source?.hasDurationSummaryField; - - const { data = INITIAL_DATA, status } = useProgressiveFetcher( - (callApmApi) => { - if (preferred) { - return callApmApi('GET /internal/apm/services', { - params: { - query: { - environment, - kuery, - start, - end, - serviceGroup, - useDurationSummary: shouldUseDurationSummary, - documentType: preferred.source.documentType, - rollupInterval: preferred.source.rollupInterval, - searchQuery, - }, - }, - }).then((mainStatisticsData) => { - return { - requestId: uuidv4(), - ...mainStatisticsData, - }; - }); - } - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [ - environment, - kuery, - start, - end, - serviceGroup, - preferred, - searchQuery, - // not used, but needed to update the requestId to call the details statistics API when table options are updated - page, - pageSize, - sortField, - sortDirection, - ] - ); - - return { mainStatisticsData: data, mainStatisticsStatus: status }; -} - -function useServicesDetailedStatisticsFetcher({ - mainStatisticsFetch, - renderedItems, -}: { - mainStatisticsFetch: ReturnType; - renderedItems: ServiceListItem[]; -}) { - const { - query: { rangeFrom, rangeTo, environment, kuery, offset, comparisonEnabled }, - } = useApmParams('/services'); - - const { start, end } = useTimeRange({ rangeFrom, rangeTo }); - - const dataSourceOptions = usePreferredDataSourceAndBucketSize({ - start, - end, - kuery, - type: ApmDocumentType.ServiceTransactionMetric, - numBuckets: 20, - }); - - const { mainStatisticsData, mainStatisticsStatus } = mainStatisticsFetch; - - const comparisonFetch = useProgressiveFetcher( - (callApmApi) => { - const serviceNames = renderedItems.map(({ serviceName }) => serviceName); - - if ( - start && - end && - serviceNames.length > 0 && - mainStatisticsStatus === FETCH_STATUS.SUCCESS && - dataSourceOptions - ) { - return callApmApi('POST /internal/apm/services/detailed_statistics', { - params: { - query: { - environment, - kuery, - start, - end, - offset: comparisonEnabled && isTimeComparison(offset) ? offset : undefined, - documentType: dataSourceOptions.source.documentType, - rollupInterval: dataSourceOptions.source.rollupInterval, - bucketSizeInSeconds: dataSourceOptions.bucketSizeInSeconds, - }, - body: { - // Service name is sorted to guarantee the same order every time this API is called so the result can be cached. - serviceNames: JSON.stringify(serviceNames.sort()), - }, - }, - }); - } - }, - // only fetches detailed statistics when requestId is invalidated by main statistics api call or offset is changed - // eslint-disable-next-line react-hooks/exhaustive-deps - [mainStatisticsData.requestId, renderedItems, offset, comparisonEnabled], - { preservePreviousData: false } - ); - - return { comparisonFetch }; -} - -export function ApmServiceInventory() { - const [debouncedSearchQuery, setDebouncedSearchQuery] = useStateDebounced(''); - const { onPageReady } = usePerformanceContext(); - const [renderedItems, setRenderedItems] = useState([]); - const mainStatisticsFetch = useServicesMainStatisticsFetcher(debouncedSearchQuery); - const { mainStatisticsData, mainStatisticsStatus } = mainStatisticsFetch; - - const displayHealthStatus = mainStatisticsData.items.some((item) => 'healthStatus' in item); - - const serviceOverflowCount = mainStatisticsData?.serviceOverflowCount ?? 0; - - const displayAlerts = mainStatisticsData.items.some( - (item) => ServiceInventoryFieldName.AlertsCount in item - ); - - const tiebreakerField = ServiceInventoryFieldName.Throughput; - - const initialSortField = displayHealthStatus - ? ServiceInventoryFieldName.HealthStatus - : tiebreakerField; - - const initialSortDirection = 'desc'; - - const { comparisonFetch } = useServicesDetailedStatisticsFetcher({ - mainStatisticsFetch, - renderedItems, - }); - - const { anomalyDetectionSetupState } = useAnomalyDetectionJobsContext(); - - const [userHasDismissedCallout, setUserHasDismissedCallout] = useLocalStorage( - `apm.userHasDismissedServiceInventoryMlCallout.${anomalyDetectionSetupState}`, - false - ); - - const displayMlCallout = - !userHasDismissedCallout && shouldDisplayMlCallout(anomalyDetectionSetupState); - - const noItemsMessage = useMemo(() => { - return ( - - {i18n.translate('xpack.apm.servicesTable.notFoundLabel', { - defaultMessage: 'No services found', - })} - - } - titleSize="s" - /> - ); - }, []); - - const mlCallout = ( - - setUserHasDismissedCallout(true)} - /> - - ); - - const sortFn: SortFunction = useCallback( - (itemsToSort, sortField, sortDirection) => { - return orderServiceItems({ - items: itemsToSort, - primarySortField: sortField, - sortDirection, - tiebreakerField, - }); - }, - [tiebreakerField] - ); - - // TODO verify this with AI team - const setScreenContext = useApmPluginContext().observabilityAIAssistant?.service.setScreenContext; - - useEffect(() => { - if (!setScreenContext) { - return; - } - - if (isFailure(mainStatisticsStatus)) { - return setScreenContext({ - screenDescription: 'The services have failed to load', - }); - } - - if (isPending(mainStatisticsStatus)) { - return setScreenContext({ - screenDescription: 'The services are still loading', - }); - } - - return setScreenContext({ - data: [ - { - name: 'services', - description: 'The list of services that the user is looking at', - value: mainStatisticsData.items, - }, - ], - }); - }, [mainStatisticsStatus, mainStatisticsData.items, setScreenContext]); - - useEffect(() => { - if ( - mainStatisticsStatus === FETCH_STATUS.SUCCESS && - comparisonFetch.status === FETCH_STATUS.SUCCESS - ) { - onPageReady(); - } - }, [mainStatisticsStatus, comparisonFetch.status, onPageReady]); - - return ( - <> - - - {displayMlCallout && mlCallout} - - - - - - ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/index.tsx index 55f72d21f48d7..e3e9601c72978 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/index.tsx @@ -4,9 +4,316 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React from 'react'; -import { ApmServiceInventory } from './apm_signal_inventory'; + +import { EuiEmptyPrompt, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { usePerformanceContext } from '@kbn/ebt-tools'; +import { i18n } from '@kbn/i18n'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import { v4 as uuidv4 } from 'uuid'; +import { ApmDocumentType } from '../../../../common/document_type'; +import { ServiceInventoryFieldName, ServiceListItem } from '../../../../common/service_inventory'; +import { useAnomalyDetectionJobsContext } from '../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context'; +import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; +import { useApmParams } from '../../../hooks/use_apm_params'; +import { useStateDebounced } from '../../../hooks/use_debounce'; +import { FETCH_STATUS, isFailure, isPending } from '../../../hooks/use_fetcher'; +import { useLocalStorage } from '../../../hooks/use_local_storage'; +import { usePreferredDataSourceAndBucketSize } from '../../../hooks/use_preferred_data_source_and_bucket_size'; +import { useProgressiveFetcher } from '../../../hooks/use_progressive_fetcher'; +import { useTimeRange } from '../../../hooks/use_time_range'; +import { APIReturnType } from '../../../services/rest/create_call_apm_api'; +import { SortFunction } from '../../shared/managed_table'; +import { MLCallout, shouldDisplayMlCallout } from '../../shared/ml_callout'; +import { SearchBar } from '../../shared/search_bar/search_bar'; +import { isTimeComparison } from '../../shared/time_comparison/get_comparison_options'; +import { ApmServicesTable } from './service_list/apm_services_table'; +import { orderServiceItems } from './service_list/order_service_items'; + +type MainStatisticsApiResponse = APIReturnType<'GET /internal/apm/services'>; + +const INITIAL_PAGE_SIZE = 25; +const INITIAL_DATA: MainStatisticsApiResponse & { requestId: string } = { + requestId: '', + items: [], + serviceOverflowCount: 0, + maxCountExceeded: false, +}; + +function useServicesMainStatisticsFetcher(searchQuery: string | undefined) { + const { + query: { + rangeFrom, + rangeTo, + environment, + kuery, + serviceGroup, + page = 0, + pageSize = INITIAL_PAGE_SIZE, + sortDirection, + sortField, + }, + } = useApmParams('/services'); + + const { start, end } = useTimeRange({ rangeFrom, rangeTo }); + + const preferred = usePreferredDataSourceAndBucketSize({ + start, + end, + kuery, + type: ApmDocumentType.ServiceTransactionMetric, + numBuckets: 20, + }); + + const shouldUseDurationSummary = !!preferred?.source?.hasDurationSummaryField; + + const { data = INITIAL_DATA, status } = useProgressiveFetcher( + (callApmApi) => { + if (preferred) { + return callApmApi('GET /internal/apm/services', { + params: { + query: { + environment, + kuery, + start, + end, + serviceGroup, + useDurationSummary: shouldUseDurationSummary, + documentType: preferred.source.documentType, + rollupInterval: preferred.source.rollupInterval, + searchQuery, + }, + }, + }).then((mainStatisticsData) => { + return { + requestId: uuidv4(), + ...mainStatisticsData, + }; + }); + } + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [ + environment, + kuery, + start, + end, + serviceGroup, + preferred, + searchQuery, + // not used, but needed to update the requestId to call the details statistics API when table options are updated + page, + pageSize, + sortField, + sortDirection, + ] + ); + + return { mainStatisticsData: data, mainStatisticsStatus: status }; +} + +function useServicesDetailedStatisticsFetcher({ + mainStatisticsFetch, + renderedItems, +}: { + mainStatisticsFetch: ReturnType; + renderedItems: ServiceListItem[]; +}) { + const { + query: { rangeFrom, rangeTo, environment, kuery, offset, comparisonEnabled }, + } = useApmParams('/services'); + + const { start, end } = useTimeRange({ rangeFrom, rangeTo }); + + const dataSourceOptions = usePreferredDataSourceAndBucketSize({ + start, + end, + kuery, + type: ApmDocumentType.ServiceTransactionMetric, + numBuckets: 20, + }); + + const { mainStatisticsData, mainStatisticsStatus } = mainStatisticsFetch; + + const comparisonFetch = useProgressiveFetcher( + (callApmApi) => { + const serviceNames = renderedItems.map(({ serviceName }) => serviceName); + + if ( + start && + end && + serviceNames.length > 0 && + mainStatisticsStatus === FETCH_STATUS.SUCCESS && + dataSourceOptions + ) { + return callApmApi('POST /internal/apm/services/detailed_statistics', { + params: { + query: { + environment, + kuery, + start, + end, + offset: comparisonEnabled && isTimeComparison(offset) ? offset : undefined, + documentType: dataSourceOptions.source.documentType, + rollupInterval: dataSourceOptions.source.rollupInterval, + bucketSizeInSeconds: dataSourceOptions.bucketSizeInSeconds, + }, + body: { + // Service name is sorted to guarantee the same order every time this API is called so the result can be cached. + serviceNames: JSON.stringify(serviceNames.sort()), + }, + }, + }); + } + }, + // only fetches detailed statistics when requestId is invalidated by main statistics api call or offset is changed + // eslint-disable-next-line react-hooks/exhaustive-deps + [mainStatisticsData.requestId, renderedItems, offset, comparisonEnabled], + { preservePreviousData: false } + ); + + return { comparisonFetch }; +} export function ServiceInventory() { - return ; + const [debouncedSearchQuery, setDebouncedSearchQuery] = useStateDebounced(''); + const { onPageReady } = usePerformanceContext(); + const [renderedItems, setRenderedItems] = useState([]); + const mainStatisticsFetch = useServicesMainStatisticsFetcher(debouncedSearchQuery); + const { mainStatisticsData, mainStatisticsStatus } = mainStatisticsFetch; + + const displayHealthStatus = mainStatisticsData.items.some((item) => 'healthStatus' in item); + + const serviceOverflowCount = mainStatisticsData?.serviceOverflowCount ?? 0; + + const displayAlerts = mainStatisticsData.items.some( + (item) => ServiceInventoryFieldName.AlertsCount in item + ); + + const tiebreakerField = ServiceInventoryFieldName.Throughput; + + const initialSortField = displayHealthStatus + ? ServiceInventoryFieldName.HealthStatus + : tiebreakerField; + + const initialSortDirection = 'desc'; + + const { comparisonFetch } = useServicesDetailedStatisticsFetcher({ + mainStatisticsFetch, + renderedItems, + }); + + const { anomalyDetectionSetupState } = useAnomalyDetectionJobsContext(); + + const [userHasDismissedCallout, setUserHasDismissedCallout] = useLocalStorage( + `apm.userHasDismissedServiceInventoryMlCallout.${anomalyDetectionSetupState}`, + false + ); + + const displayMlCallout = + !userHasDismissedCallout && shouldDisplayMlCallout(anomalyDetectionSetupState); + + const noItemsMessage = useMemo(() => { + return ( + + {i18n.translate('xpack.apm.servicesTable.notFoundLabel', { + defaultMessage: 'No services found', + })} + + } + titleSize="s" + /> + ); + }, []); + + const mlCallout = ( + + setUserHasDismissedCallout(true)} + /> + + ); + + const sortFn: SortFunction = useCallback( + (itemsToSort, sortField, sortDirection) => { + return orderServiceItems({ + items: itemsToSort, + primarySortField: sortField, + sortDirection, + tiebreakerField, + }); + }, + [tiebreakerField] + ); + + // TODO verify this with AI team + const setScreenContext = useApmPluginContext().observabilityAIAssistant?.service.setScreenContext; + + useEffect(() => { + if (!setScreenContext) { + return; + } + + if (isFailure(mainStatisticsStatus)) { + return setScreenContext({ + screenDescription: 'The services have failed to load', + }); + } + + if (isPending(mainStatisticsStatus)) { + return setScreenContext({ + screenDescription: 'The services are still loading', + }); + } + + return setScreenContext({ + data: [ + { + name: 'services', + description: 'The list of services that the user is looking at', + value: mainStatisticsData.items, + }, + ], + }); + }, [mainStatisticsStatus, mainStatisticsData.items, setScreenContext]); + + useEffect(() => { + if ( + mainStatisticsStatus === FETCH_STATUS.SUCCESS && + comparisonFetch.status === FETCH_STATUS.SUCCESS + ) { + onPageReady(); + } + }, [mainStatisticsStatus, comparisonFetch.status, onPageReady]); + + return ( + <> + + + {displayMlCallout && mlCallout} + + + + + + ); } diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/index.tsx deleted file mode 100644 index e915ce01e24f6..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/index.tsx +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { EuiFlexItem, EuiFlexGroup } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import React, { useEffect } from 'react'; -import { v4 as uuidv4 } from 'uuid'; -import { APIReturnType } from '../../../../services/rest/create_call_apm_api'; -import { useApmParams } from '../../../../hooks/use_apm_params'; -import { FETCH_STATUS, useFetcher } from '../../../../hooks/use_fetcher'; -import { useTimeRange } from '../../../../hooks/use_time_range'; -import { EmptyMessage } from '../../../shared/empty_message'; -import { SearchBar } from '../../../shared/search_bar/search_bar'; -import { - getItemsFilteredBySearchQuery, - TableSearchBar, -} from '../../../shared/table_search_bar/table_search_bar'; -import { - MultiSignalServicesTable, - ServiceInventoryFieldName, -} from './table/multi_signal_services_table'; -import { ServiceListItem } from '../../../../../common/service_inventory'; -import { NoEntitiesEmptyState } from './table/no_entities_empty_state'; -import { Welcome } from '../../../shared/entity_enablement/welcome_modal'; -import { useKibana } from '../../../../context/kibana_context/use_kibana'; -import { ApmPluginStartDeps, ApmServices } from '../../../../plugin'; -import { useEntityManagerEnablementContext } from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; - -type MainStatisticsApiResponse = APIReturnType<'GET /internal/apm/entities/services'>; - -const INITIAL_PAGE_SIZE = 25; -const INITIAL_SORT_DIRECTION = 'desc'; - -type MainStatisticsApiResponseWithRequestId = MainStatisticsApiResponse & { requestId: string }; - -const INITIAL_DATA: MainStatisticsApiResponseWithRequestId = { - services: [], - requestId: '', -}; - -function useServicesEntitiesMainStatisticsFetcher() { - const { - query: { - rangeFrom, - rangeTo, - environment, - kuery, - page = 0, - pageSize = INITIAL_PAGE_SIZE, - sortDirection, - sortField, - }, - } = useApmParams('/services'); - - const { start, end } = useTimeRange({ rangeFrom, rangeTo }); - - const { data = INITIAL_DATA, status } = useFetcher( - (callApmApi) => { - return callApmApi('GET /internal/apm/entities/services', { - params: { - query: { - environment, - kuery, - start, - end, - }, - }, - }).then((mainStatisticsData) => { - return { - requestId: uuidv4(), - ...mainStatisticsData, - }; - }); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [environment, kuery, start, end, page, pageSize, sortField, sortDirection] - ); - - return { mainStatisticsData: data, mainStatisticsStatus: status }; -} - -function useServicesEntitiesDetailedStatisticsFetcher({ - mainStatisticsData, - mainStatisticsStatus, - services, -}: { - mainStatisticsData: MainStatisticsApiResponseWithRequestId; - mainStatisticsStatus: FETCH_STATUS; - services: ServiceListItem[]; -}) { - const { - query: { rangeFrom, rangeTo, environment, kuery }, - } = useApmParams('/services'); - - const { start, end } = useTimeRange({ rangeFrom, rangeTo }); - - const timeseriesDataFetch = useFetcher( - (callApmApi) => { - const serviceNames = services.map(({ serviceName }) => serviceName); - - if ( - start && - end && - serviceNames.length > 0 && - mainStatisticsStatus === FETCH_STATUS.SUCCESS - ) { - return callApmApi('POST /internal/apm/entities/services/detailed_statistics', { - params: { - query: { - environment, - kuery, - start, - end, - }, - body: { - // Service name is sorted to guarantee the same order every time this API is called so the result can be cached. - serviceNames: JSON.stringify(serviceNames.sort()), - }, - }, - }); - } - }, - // only fetches detailed statistics when requestId is invalidated by main statistics api call or offset is changed - // eslint-disable-next-line react-hooks/exhaustive-deps - [mainStatisticsData.requestId, services], - { preservePreviousData: false } - ); - - return { timeseriesDataFetch }; -} - -export function MultiSignalInventory() { - const [searchQuery, setSearchQuery] = React.useState(''); - const { services } = useKibana(); - const { mainStatisticsData, mainStatisticsStatus } = useServicesEntitiesMainStatisticsFetcher(); - const { tourState, updateTourState } = useEntityManagerEnablementContext(); - - const initialSortField = ServiceInventoryFieldName.Throughput; - - const filteredData = getItemsFilteredBySearchQuery({ - items: mainStatisticsData.services, - searchQuery, - fieldsToSearch: [ServiceInventoryFieldName.ServiceName], - }); - - const { timeseriesDataFetch } = useServicesEntitiesDetailedStatisticsFetcher({ - mainStatisticsData, - mainStatisticsStatus, - services: mainStatisticsData.services, - }); - - const { data, status } = useFetcher((callApmApi) => { - return callApmApi('GET /internal/apm/has_entities'); - }, []); - - useEffect(() => { - if (data?.hasData) { - services.telemetry.reportEntityInventoryPageState({ state: 'available' }); - } - }, [services.telemetry, data?.hasData]); - - function handleModalClose() { - updateTourState({ isModalVisible: false, isTourActive: true }); - } - - return ( - <> - {!data?.hasData && status === FETCH_STATUS.SUCCESS ? ( - - ) : ( - <> - - - - - - - - - - - - } - /> - - - - )} - - - ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/column_header.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/column_header.tsx deleted file mode 100644 index 9dcdaf1da2598..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/column_header.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import React, { ReactElement } from 'react'; -import { EuiFlexGroup } from '@elastic/eui'; -import { css } from '@emotion/react'; -import { TooltipContent } from './tooltip_content'; -import { Popover } from './popover'; - -interface Props { - label: string; - toolTip?: ReactElement | string; - formula?: string; -} - -export const ColumnHeader = React.memo(({ label, toolTip, formula }: Props) => ( - -
- {label} -
- - {toolTip && ( - - - - )} -
-)); diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx deleted file mode 100644 index ec6385b37dee3..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiFlexGroup, EuiFlexItem, RIGHT_ALIGNMENT } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import { TypeOf } from '@kbn/typed-react-router-config'; -import React from 'react'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { css } from '@emotion/react'; -import { - asDecimalOrInteger, - asMillisecondDuration, - asPercent, - asTransactionRate, -} from '../../../../../../common/utils/formatters'; -import { Breakpoints } from '../../../../../hooks/use_breakpoints'; -import { unit } from '../../../../../utils/style'; -import { ApmRoutes } from '../../../../routing/apm_route_config'; -import { - getTimeSeriesColor, - ChartType, -} from '../../../../shared/charts/helper/get_timeseries_color'; -import { - getMetricsFormula, - ChartMetricType, -} from '../../../../shared/charts/helper/get_metrics_formulas'; -import { EnvironmentBadge } from '../../../../shared/environment_badge'; -import { ServiceLink } from '../../../../shared/links/apm/service_link'; -import { ListMetric } from '../../../../shared/list_metric'; -import { ITableColumn } from '../../../../shared/managed_table'; -import { NotAvailableApmMetrics } from '../../../../shared/not_available_popover/not_available_apm_metrics'; -import { TruncateWithTooltip } from '../../../../shared/truncate_with_tooltip'; -import { ServiceInventoryFieldName } from './multi_signal_services_table'; -import { EntityDataStreamType } from '../../../../../../common/entities/types'; -import { isApmSignal } from '../../../../../utils/get_signal_type'; -import { ColumnHeader } from './column_header'; -import { APIReturnType } from '../../../../../services/rest/create_call_apm_api'; - -type ServicesDetailedStatisticsAPIResponse = - APIReturnType<'POST /internal/apm/entities/services/detailed_statistics'>; - -type EntityServiceListItem = APIReturnType<'GET /internal/apm/entities/services'>['services'][0]; - -export function getServiceColumns({ - query, - breakpoints, - timeseriesDataLoading, - timeseriesData, -}: { - query: TypeOf['query']; - breakpoints: Breakpoints; - timeseriesDataLoading: boolean; - timeseriesData?: ServicesDetailedStatisticsAPIResponse; -}): Array> { - const { isSmall, isLarge } = breakpoints; - const showWhenSmallOrGreaterThanLarge = isSmall || !isLarge; - return [ - { - field: ServiceInventoryFieldName.ServiceName, - name: i18n.translate('xpack.apm.multiSignal.servicesTable.nameColumnLabel', { - defaultMessage: 'Name', - }), - sortable: true, - render: (_, { serviceName, agentName, dataStreamTypes }) => ( - - - - -
- } - /> - ), - }, - { - field: ServiceInventoryFieldName.Environments, - name: i18n.translate('xpack.apm.multiSignal.servicesTable.environmentColumnLabel', { - defaultMessage: 'Environment', - }), - sortable: true, - width: `${unit * 9}px`, - dataType: 'number', - render: (_, { environments, dataStreamTypes }) => ( - - ), - align: RIGHT_ALIGNMENT, - }, - { - field: ServiceInventoryFieldName.Latency, - name: i18n.translate('xpack.apm.multiSignal.servicesTable.latencyAvgColumnLabel', { - defaultMessage: 'Latency (avg.)', - }), - sortable: true, - dataType: 'number', - align: RIGHT_ALIGNMENT, - render: (_, { metrics, serviceName, dataStreamTypes }) => { - const { currentPeriodColor } = getTimeSeriesColor(ChartType.LATENCY_AVG); - - return !isApmSignal(dataStreamTypes) ? ( - - ) : ( - - ); - }, - }, - { - field: ServiceInventoryFieldName.Throughput, - name: i18n.translate('xpack.apm.multiSignal.servicesTable.throughputColumnLabel', { - defaultMessage: 'Throughput', - }), - sortable: true, - dataType: 'number', - align: RIGHT_ALIGNMENT, - render: (_, { metrics, serviceName, dataStreamTypes }) => { - const { currentPeriodColor } = getTimeSeriesColor(ChartType.THROUGHPUT); - - return !isApmSignal(dataStreamTypes) ? ( - - ) : ( - - ); - }, - }, - { - field: ServiceInventoryFieldName.FailedTransactionRate, - name: i18n.translate('xpack.apm.multiSignal.servicesTable.transactionErrorRate', { - defaultMessage: 'Failed transaction rate', - }), - sortable: true, - dataType: 'number', - align: RIGHT_ALIGNMENT, - render: (_, { metrics, serviceName, dataStreamTypes }) => { - const { currentPeriodColor } = getTimeSeriesColor(ChartType.FAILED_TRANSACTION_RATE); - - return !isApmSignal(dataStreamTypes) ? ( - - ) : ( - - ); - }, - }, - { - field: ServiceInventoryFieldName.logRate, - name: ( - - {i18n.translate( - 'xpack.apm.multiSignal.servicesTable.logRate.tooltip.serviceNameLabel', - { - defaultMessage: 'service.name', - } - )} - - ), - }} - /> - } - /> - ), - sortable: true, - dataType: 'number', - align: RIGHT_ALIGNMENT, - render: (_, { metrics, serviceName, dataStreamTypes, hasLogMetrics }) => { - const { currentPeriodColor } = getTimeSeriesColor(ChartType.LOG_RATE); - return ( - - ); - }, - }, - { - field: ServiceInventoryFieldName.LogErrorRate, - name: ( - - {i18n.translate( - 'xpack.apm.multiSignal.servicesTable.logErrorRate.tooltip.serviceNameLabel', - { - defaultMessage: 'service.name', - } - )} - - ), - }} - /> - } - /> - ), - sortable: true, - dataType: 'number', - align: RIGHT_ALIGNMENT, - render: (_, { metrics, serviceName, dataStreamTypes, hasLogMetrics }) => { - const { currentPeriodColor } = getTimeSeriesColor(ChartType.LOG_ERROR_RATE); - - return ( - - ); - }, - }, - ]; -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/multi_signal_services_table.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/multi_signal_services_table.tsx deleted file mode 100644 index eede4b2ef346c..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/multi_signal_services_table.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import { omit } from 'lodash'; -import React, { useMemo } from 'react'; -import { useApmParams } from '../../../../../hooks/use_apm_params'; -import { useBreakpoints } from '../../../../../hooks/use_breakpoints'; -import { FETCH_STATUS, isFailure, isPending } from '../../../../../hooks/use_fetcher'; -import { APIReturnType } from '../../../../../services/rest/create_call_apm_api'; -import { ManagedTable } from '../../../../shared/managed_table'; -import { getServiceColumns } from './get_service_columns'; - -type MainStatisticsApiResponse = APIReturnType<'GET /internal/apm/entities/services'>; -type ServicesDetailedStatisticsAPIResponse = - APIReturnType<'POST /internal/apm/entities/services/detailed_statistics'>; - -export enum ServiceInventoryFieldName { - ServiceName = 'serviceName', - Environments = 'environments', - Throughput = 'metrics.throughput', - Latency = 'metrics.latency', - FailedTransactionRate = 'metrics.failedTransactionRate', - logRate = 'metrics.logRate', - LogErrorRate = 'metrics.logErrorRate', -} - -interface Props { - status: FETCH_STATUS; - initialSortField: ServiceInventoryFieldName; - initialPageSize: number; - initialSortDirection: 'asc' | 'desc'; - noItemsMessage: React.ReactNode; - data: MainStatisticsApiResponse['services']; - timeseriesDataLoading: boolean; - timeseriesData?: ServicesDetailedStatisticsAPIResponse; -} - -export function MultiSignalServicesTable({ - status, - data, - initialSortField, - initialPageSize, - initialSortDirection, - noItemsMessage, - timeseriesDataLoading, - timeseriesData, -}: Props) { - const breakpoints = useBreakpoints(); - const { query } = useApmParams('/services'); - - const serviceColumns = useMemo(() => { - return getServiceColumns({ - // removes pagination and sort instructions from the query so it won't be passed down to next route - query: omit(query, 'page', 'pageSize', 'sortDirection', 'sortField'), - breakpoints, - timeseriesDataLoading, - timeseriesData, - }); - }, [query, breakpoints, timeseriesDataLoading, timeseriesData]); - - return ( - - - - - - ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/no_entities_empty_state.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/no_entities_empty_state.tsx deleted file mode 100644 index 45e8b2ab8a0c9..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/no_entities_empty_state.tsx +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - EuiCallOut, - EuiEmptyPrompt, - EuiFlexGroup, - EuiFlexItem, - EuiHorizontalRule, - EuiImage, - EuiLink, - EuiText, - EuiTextColor, -} from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import React from 'react'; -import { dashboardsLight } from '@kbn/shared-svg'; -import useEffectOnce from 'react-use/lib/useEffectOnce'; -import { useKibana } from '../../../../../context/kibana_context/use_kibana'; -import { useLocalStorage } from '../../../../../hooks/use_local_storage'; -import { ApmPluginStartDeps, ApmServices } from '../../../../../plugin'; -import { EntityInventoryAddDataParams } from '../../../../../services/telemetry'; -import { - AddApmData, - AssociateServiceLogs, - CollectServiceLogs, -} from '../../../../shared/add_data_buttons/buttons'; -import { useBreakpoints } from '../../../../../hooks/use_breakpoints'; - -export function NoEntitiesEmptyState() { - const { isLarge } = useBreakpoints(); - const { services } = useKibana(); - const [userHasDismissedCallout, setUserHasDismissedCallout] = useLocalStorage( - 'apm.uiNewExperienceCallout', - false - ); - - useEffectOnce(() => { - services.telemetry.reportEntityInventoryPageState({ state: 'empty_state' }); - }); - - function reportButtonClick(journey: EntityInventoryAddDataParams['journey']) { - services.telemetry.reportEntityInventoryAddData({ - view: 'empty_state', - journey, - }); - } - - return ( - - {!userHasDismissedCallout && ( - - setUserHasDismissedCallout(true)} - title={i18n.translate('xpack.apm.noEntitiesEmptyState.callout.title', { - defaultMessage: 'Trying for the first time?', - })} - > -

- {i18n.translate('xpack.apm.noEntitiesEmptyState.description', { - defaultMessage: - 'It can take up to a couple of minutes for your services to show. Try refreshing the page in a minute.', - })} -

- - {i18n.translate('xpack.apm.noEntitiesEmptyState.learnMore.link', { - defaultMessage: 'Learn more', - })} - -
-
- )} - - } - title={ -

- {i18n.translate('xpack.apm.noEntitiesEmptyState.title', { - defaultMessage: 'No services available.', - })} -

- } - layout={isLarge ? 'vertical' : 'horizontal'} - color="plain" - body={ - <> -

- {i18n.translate('xpack.apm.noEntitiesEmptyState.body.description', { - defaultMessage: - 'The services inventory provides an overview of the health and general performance of your services. To add data to this page, instrument your services using the APM agent or detect services from your logs.', - })} -

- - -
- - {i18n.translate('xpack.apm.noEntitiesEmptyState.actions.title', { - defaultMessage: 'Start observing your services:', - })} - -
-
- - } - actions={ - - - { - reportButtonClick('add_apm_agent'); - }} - /> - { - reportButtonClick('collect_new_service_logs'); - }} - /> - { - reportButtonClick('associate_existing_service_logs'); - }} - /> - - - } - /> -
-
- ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_inventory.stories.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_inventory.stories.tsx similarity index 74% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_inventory.stories.tsx rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_inventory.stories.tsx index 17848c98af8f6..41b69daf1cdf4 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_inventory.stories.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_inventory.stories.tsx @@ -8,16 +8,16 @@ import { CoreStart } from '@kbn/core/public'; import { Meta, Story } from '@storybook/react'; import React from 'react'; -import { ApmServiceInventory } from '.'; -import { AnomalyDetectionSetupState } from '../../../../../common/anomaly_detection/get_anomaly_detection_setup_state'; -import { AnomalyDetectionJobsContext } from '../../../../context/anomaly_detection_jobs/anomaly_detection_jobs_context'; -import { ApmPluginContextValue } from '../../../../context/apm_plugin/apm_plugin_context'; -import { MockApmPluginStorybook } from '../../../../context/apm_plugin/mock_apm_plugin_storybook'; -import { FETCH_STATUS } from '../../../../hooks/use_fetcher'; +import { ServiceInventory } from '.'; +import { AnomalyDetectionSetupState } from '../../../../common/anomaly_detection/get_anomaly_detection_setup_state'; +import { AnomalyDetectionJobsContext } from '../../../context/anomaly_detection_jobs/anomaly_detection_jobs_context'; +import { ApmPluginContextValue } from '../../../context/apm_plugin/apm_plugin_context'; +import { MockApmPluginStorybook } from '../../../context/apm_plugin/mock_apm_plugin_storybook'; +import { FETCH_STATUS } from '../../../hooks/use_fetcher'; const stories: Meta<{}> = { title: 'app/ServiceInventory', - component: ApmServiceInventory, + component: ServiceInventory, decorators: [ (StoryComponent) => { const coreMock = { @@ -60,5 +60,5 @@ const stories: Meta<{}> = { export default stories; export const Example: Story<{}> = () => { - return ; + return ; }; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/__fixtures__/service_api_mock_data.ts b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/__fixtures__/service_api_mock_data.ts similarity index 94% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/__fixtures__/service_api_mock_data.ts rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/__fixtures__/service_api_mock_data.ts index 7c050a9191283..7c6f3d85c13cb 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/__fixtures__/service_api_mock_data.ts +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/__fixtures__/service_api_mock_data.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { APIReturnType } from '../../../../../../services/rest/create_call_apm_api'; +import { APIReturnType } from '../../../../../services/rest/create_call_apm_api'; type ServiceListAPIResponse = APIReturnType<'GET /internal/apm/services'>; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/apm_services_table.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/apm_services_table.tsx similarity index 91% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/apm_services_table.tsx rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/apm_services_table.tsx index acb0818797d10..930fa2829c424 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/apm_services_table.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/apm_services_table.tsx @@ -20,40 +20,37 @@ import { ALERT_STATUS_ACTIVE } from '@kbn/rule-data-utils'; import { TypeOf } from '@kbn/typed-react-router-config'; import { omit } from 'lodash'; import React, { useMemo } from 'react'; -import { ServiceHealthStatus } from '../../../../../../common/service_health_status'; +import { ServiceHealthStatus } from '../../../../../common/service_health_status'; import { ServiceInventoryFieldName, ServiceListItem, -} from '../../../../../../common/service_inventory'; -import { isDefaultTransactionType } from '../../../../../../common/transaction_types'; +} from '../../../../../common/service_inventory'; +import { isDefaultTransactionType } from '../../../../../common/transaction_types'; import { asMillisecondDuration, asPercent, asTransactionRate, -} from '../../../../../../common/utils/formatters'; -import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context'; -import { useApmParams } from '../../../../../hooks/use_apm_params'; -import { useApmRouter } from '../../../../../hooks/use_apm_router'; -import { Breakpoints, useBreakpoints } from '../../../../../hooks/use_breakpoints'; -import { useFallbackToTransactionsFetcher } from '../../../../../hooks/use_fallback_to_transactions_fetcher'; -import { FETCH_STATUS, isFailure, isPending } from '../../../../../hooks/use_fetcher'; -import { APIReturnType } from '../../../../../services/rest/create_call_apm_api'; -import { unit } from '../../../../../utils/style'; -import { ApmRoutes } from '../../../../routing/apm_route_config'; -import { AggregatedTransactionsBadge } from '../../../../shared/aggregated_transactions_badge'; -import { - ChartType, - getTimeSeriesColor, -} from '../../../../shared/charts/helper/get_timeseries_color'; -import { EnvironmentBadge } from '../../../../shared/environment_badge'; -import { ServiceLink } from '../../../../shared/links/apm/service_link'; -import { ListMetric } from '../../../../shared/list_metric'; +} from '../../../../../common/utils/formatters'; +import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; +import { useApmParams } from '../../../../hooks/use_apm_params'; +import { useApmRouter } from '../../../../hooks/use_apm_router'; +import { Breakpoints, useBreakpoints } from '../../../../hooks/use_breakpoints'; +import { useFallbackToTransactionsFetcher } from '../../../../hooks/use_fallback_to_transactions_fetcher'; +import { FETCH_STATUS, isFailure, isPending } from '../../../../hooks/use_fetcher'; +import { APIReturnType } from '../../../../services/rest/create_call_apm_api'; +import { unit } from '../../../../utils/style'; +import { ApmRoutes } from '../../../routing/apm_route_config'; +import { AggregatedTransactionsBadge } from '../../../shared/aggregated_transactions_badge'; +import { ChartType, getTimeSeriesColor } from '../../../shared/charts/helper/get_timeseries_color'; +import { EnvironmentBadge } from '../../../shared/environment_badge'; +import { ServiceLink } from '../../../shared/links/apm/service_link'; +import { ListMetric } from '../../../shared/list_metric'; import { ITableColumn, ManagedTable, SortFunction, TableSearchBar, -} from '../../../../shared/managed_table'; +} from '../../../shared/managed_table'; import { ColumnHeaderWithTooltip } from './column_header_with_tooltip'; import { HealthBadge } from './health_badge'; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/column_header_with_tooltip.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/column_header_with_tooltip.tsx similarity index 100% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/column_header_with_tooltip.tsx rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/column_header_with_tooltip.tsx diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/health_badge.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/health_badge.tsx similarity index 85% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/health_badge.tsx rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/health_badge.tsx index 0a6d6398866f1..aa4299006cc48 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/health_badge.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/health_badge.tsx @@ -11,8 +11,8 @@ import { getServiceHealthStatusBadgeColor, getServiceHealthStatusLabel, ServiceHealthStatus, -} from '../../../../../../common/service_health_status'; -import { useTheme } from '../../../../../hooks/use_theme'; +} from '../../../../../common/service_health_status'; +import { useTheme } from '../../../../hooks/use_theme'; export function HealthBadge({ healthStatus }: { healthStatus: ServiceHealthStatus }) { const theme = useTheme(); diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/order_service_items.test.ts b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/order_service_items.test.ts similarity index 97% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/order_service_items.test.ts rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/order_service_items.test.ts index 1308c3bf99a0c..1b74d4d897df4 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/order_service_items.test.ts +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/order_service_items.test.ts @@ -4,8 +4,8 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { ServiceHealthStatus } from '../../../../../../common/service_health_status'; -import { ServiceInventoryFieldName } from '../../../../../../common/service_inventory'; +import { ServiceHealthStatus } from '../../../../../common/service_health_status'; +import { ServiceInventoryFieldName } from '../../../../../common/service_inventory'; import { orderServiceItems } from './order_service_items'; describe('orderServiceItems', () => { diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/order_service_items.ts b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/order_service_items.ts similarity index 94% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/order_service_items.ts rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/order_service_items.ts index 4a4e756492d79..85d2b9678f061 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/order_service_items.ts +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/order_service_items.ts @@ -5,11 +5,11 @@ * 2.0. */ import { orderBy } from 'lodash'; -import { ServiceHealthStatus } from '../../../../../../common/service_health_status'; +import { ServiceHealthStatus } from '../../../../../common/service_health_status'; import { ServiceListItem, ServiceInventoryFieldName, -} from '../../../../../../common/service_inventory'; +} from '../../../../../common/service_inventory'; type SortValueGetter = (item: ServiceListItem) => string | number; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/service_list.stories.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/service_list.stories.tsx similarity index 83% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/service_list.stories.tsx rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/service_list.stories.tsx index 9be7faa2f3671..efd00b38b56cc 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/service_list.stories.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/service_list.stories.tsx @@ -8,13 +8,13 @@ import { CoreStart } from '@kbn/core/public'; import { Meta, Story } from '@storybook/react'; import React, { ComponentProps } from 'react'; -import { FETCH_STATUS } from '../../../../../hooks/use_fetcher'; +import { FETCH_STATUS } from '../../../../hooks/use_fetcher'; import { ApmServicesTable } from './apm_services_table'; -import { ServiceHealthStatus } from '../../../../../../common/service_health_status'; -import { ServiceInventoryFieldName } from '../../../../../../common/service_inventory'; -import type { ApmPluginContextValue } from '../../../../../context/apm_plugin/apm_plugin_context'; -import { MockApmPluginStorybook } from '../../../../../context/apm_plugin/mock_apm_plugin_storybook'; -import { mockApmApiCallResponse } from '../../../../../services/rest/call_apm_api_spy'; +import { ServiceHealthStatus } from '../../../../../common/service_health_status'; +import { ServiceInventoryFieldName } from '../../../../../common/service_inventory'; +import type { ApmPluginContextValue } from '../../../../context/apm_plugin/apm_plugin_context'; +import { MockApmPluginStorybook } from '../../../../context/apm_plugin/mock_apm_plugin_storybook'; +import { mockApmApiCallResponse } from '../../../../services/rest/call_apm_api_spy'; import { items, overflowItems } from './__fixtures__/service_api_mock_data'; type Args = ComponentProps; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/service_list.test.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/service_list.test.tsx similarity index 96% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/service_list.test.tsx rename to x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/service_list.test.tsx index ccf028aa25478..e2ac029c79ce3 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/apm_signal_inventory/service_list/service_list.test.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/service_list/service_list.test.tsx @@ -9,10 +9,10 @@ import { composeStories } from '@storybook/testing-react'; import { render, screen } from '@testing-library/react'; import React from 'react'; import { getServiceColumns } from './apm_services_table'; -import { ENVIRONMENT_ALL } from '../../../../../../common/environment_filter_values'; -import { Breakpoints } from '../../../../../hooks/use_breakpoints'; -import { apmRouter } from '../../../../routing/apm_route_config'; -import * as timeSeriesColor from '../../../../shared/charts/helper/get_timeseries_color'; +import { ENVIRONMENT_ALL } from '../../../../../common/environment_filter_values'; +import { Breakpoints } from '../../../../hooks/use_breakpoints'; +import { apmRouter } from '../../../routing/apm_route_config'; +import * as timeSeriesColor from '../../../shared/charts/helper/get_timeseries_color'; import * as stories from './service_list.stories'; const { ServiceListEmptyState, ServiceListWithItems } = composeStories(stories); diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx index 3475f622edebe..0df6e9e1ebae0 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx @@ -11,7 +11,6 @@ import { AnnotationsContextProvider } from '../../../context/annotations/annotat import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context'; import { ChartPointerEventContextProvider } from '../../../context/chart_pointer_event/chart_pointer_event_context'; -import { useEntityManagerEnablementContext } from '../../../context/entity_manager_context/use_entity_manager_enablement_context'; import { useApmParams } from '../../../hooks/use_apm_params'; import { useTimeRange } from '../../../hooks/use_time_range'; import { isApmSignal, isLogsSignal, isLogsOnlySignal } from '../../../utils/get_signal_type'; @@ -21,6 +20,7 @@ import { ServiceTabEmptyState } from '../service_tab_empty_state'; import { useLocalStorage } from '../../../hooks/use_local_storage'; import { SearchBar } from '../../shared/search_bar/search_bar'; import { FETCH_STATUS } from '../../../hooks/use_fetcher'; +import { useEntityCentricExperienceSetting } from '../../../hooks/use_entity_centric_experience_setting'; /** * The height a chart should be if it's next to a table with 5 rows and a title. * Add the height of the pagination row. @@ -28,7 +28,7 @@ import { FETCH_STATUS } from '../../../hooks/use_fetcher'; export const chartHeight = 288; export function ServiceOverview() { - const { isEntityCentricExperienceViewEnabled } = useEntityManagerEnablementContext(); + const { isEntityCentricExperienceEnabled } = useEntityCentricExperienceSetting(); const { serviceName, serviceEntitySummary, serviceEntitySummaryStatus } = useApmServiceContext(); const setScreenContext = useApmPluginContext().observabilityAIAssistant?.service.setScreenContext; @@ -68,8 +68,7 @@ export function ServiceOverview() { const hasApmSignal = hasSignal && isApmSignal(serviceEntitySummary.dataStreamTypes); // Shows APM overview when entity has APM signal or when Entity centric is not enabled or when entity has no signal - const showApmOverview = - isEntityCentricExperienceViewEnabled === false || hasApmSignal || !hasSignal; + const showApmOverview = isEntityCentricExperienceEnabled === false || hasApmSignal || !hasSignal; if (serviceEntitySummaryStatus === FETCH_STATUS.LOADING) { return ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx index b51a95e3ccabc..7c53a77284679 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx @@ -7,9 +7,9 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React from 'react'; -import { LogRateChart } from '../../entities/charts/log_rate_chart'; -import { LogErrorRateChart } from '../../entities/charts/log_error_rate_chart'; import { chartHeight } from '..'; +import { LogRateChart } from '../../../shared/charts/log_rates/log_rate_chart'; +import { LogErrorRateChart } from '../../../shared/charts/log_rates/log_error_rate_chart'; export function LogsOverview() { return ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/add_data_context_menu.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/add_data_context_menu.tsx index d94fc86ecf73b..7f55b112a5a64 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/add_data_context_menu.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/add_data_context_menu.tsx @@ -22,8 +22,6 @@ import { collectServiceLogs, addApmData, } from '../../../shared/add_data_buttons/buttons'; -import { ServiceEcoTour } from '../../../shared/entity_enablement/service_eco_tour'; -import { useEntityManagerEnablementContext } from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; const addData = i18n.translate('xpack.apm.addDataContextMenu.link', { defaultMessage: 'Add data', @@ -31,7 +29,6 @@ const addData = i18n.translate('xpack.apm.addDataContextMenu.link', { export function AddDataContextMenu() { const [popoverOpen, setPopoverOpen] = useState(false); - const { tourState, updateTourState } = useEntityManagerEnablementContext(); const { services } = useKibana(); const { core: { @@ -93,23 +90,17 @@ export function AddDataContextMenu() { }, ]; - const handleTourClose = () => { - updateTourState({ isTourActive: false }); - setPopoverOpen(false); - }; return ( <> setPopoverOpen(false)} panelPaddingSize="none" anchorPosition="downRight" > - - - + ); diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx index bf2c304236246..06d04c94cfddd 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx @@ -17,7 +17,7 @@ import { AnomalyDetectionSetupLink } from './anomaly_detection_setup_link'; import { InspectorHeaderLink } from './inspector_header_link'; import { Labs } from './labs'; import { AddDataContextMenu } from './add_data_context_menu'; -import { useEntityManagerEnablementContext } from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; +import { useEntityCentricExperienceSetting } from '../../../../hooks/use_entity_centric_experience_setting'; export function ApmHeaderActionMenu() { const { core, plugins, config } = useApmPluginContext(); @@ -33,8 +33,7 @@ export function ApmHeaderActionMenu() { capabilities ); const canSaveApmAlerts = capabilities.apm.save && canSaveAlerts; - const { isEntityCentricExperienceViewEnabled, isEnablementPending } = - useEntityManagerEnablementContext(); + const { isEntityCentricExperienceEnabled } = useEntityCentricExperienceSetting(); function apmHref(path: string) { return getLegacyApmHref({ basePath, path, search }); @@ -73,11 +72,10 @@ export function ApmHeaderActionMenu() { canReadMlJobs={canReadMlJobs} /> )} - {isEntityCentricExperienceViewEnabled ? ( + {isEntityCentricExperienceEnabled ? ( ) : ( - - - - - - - - - - - + + + + + + + + + diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template/index.tsx index 8633e206599b6..e536ed9456801 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template/index.tsx @@ -14,7 +14,6 @@ import React, { useContext } from 'react'; import { useLocation } from 'react-router-dom'; import { FeatureFeedbackButton } from '@kbn/observability-shared-plugin/public'; import { useLocalStorage } from '../../../../hooks/use_local_storage'; -import { useEntityManagerEnablementContext } from '../../../../context/entity_manager_context/use_entity_manager_enablement_context'; import { useDefaultAiAssistantStarterPromptsForAPM } from '../../../../hooks/use_default_ai_assistant_starter_prompts_for_apm'; import { KibanaEnvironmentContext } from '../../../../context/kibana_environment_context/kibana_environment_context'; import { getPathForFeedback } from '../../../../utils/get_path_for_feedback'; @@ -27,6 +26,7 @@ import { ApmEnvironmentFilter } from '../../../shared/environment_filter'; import { getNoDataConfig } from '../no_data_config'; import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; import { EntitiesInventoryCallout } from './entities_inventory_callout'; +import { useEntityCentricExperienceSetting } from '../../../../hooks/use_entity_centric_experience_setting'; // Paths that must skip the no data screen const bypassNoDataScreenPaths = ['/settings', '/diagnostics']; @@ -77,7 +77,7 @@ export function ApmMainTemplate({ true ); - const { isEntityCentricExperienceViewEnabled } = useEntityManagerEnablementContext(); + const { isEntityCentricExperienceEnabled } = useEntityCentricExperienceSetting(); const ObservabilityPageTemplate = observabilityShared.navigation.PageTemplate; @@ -146,7 +146,7 @@ export function ApmMainTemplate({ ; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/log_rate_chart.tsx similarity index 87% rename from x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx rename to x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/log_rate_chart.tsx index b27d73004d489..f4d5981da38ef 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/log_rate_chart.tsx @@ -13,16 +13,13 @@ import { useApmParams } from '../../../../hooks/use_apm_params'; import { useFetcher } from '../../../../hooks/use_fetcher'; import { useTimeRange } from '../../../../hooks/use_time_range'; import { APIReturnType } from '../../../../services/rest/create_call_apm_api'; -import { getTimeSeriesColor, ChartType } from '../../../shared/charts/helper/get_timeseries_color'; -import { TimeseriesChartWithContext } from '../../../shared/charts/timeseries_chart_with_context'; import { asInteger } from '../../../../../common/utils/formatters'; -import { TooltipContent } from '../../service_inventory/multi_signal_inventory/table/tooltip_content'; -import { Popover } from '../../service_inventory/multi_signal_inventory/table/popover'; -import { - getMetricsFormula, - ChartMetricType, -} from '../../../shared/charts/helper/get_metrics_formulas'; -import { ExploreLogsButton } from '../../../shared/explore_logs_button/explore_logs_button'; +import { TooltipContent } from './tooltip_content'; +import { Popover } from './popover'; +import { ChartType, getTimeSeriesColor } from '../helper/get_timeseries_color'; +import { ChartMetricType, getMetricsFormula } from '../helper/get_metrics_formulas'; +import { ExploreLogsButton } from '../../explore_logs_button/explore_logs_button'; +import { TimeseriesChartWithContext } from '../timeseries_chart_with_context'; type LogRateReturnType = APIReturnType<'GET /internal/apm/entities/services/{serviceName}/logs_rate_timeseries'>; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/popover.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/popover.tsx similarity index 100% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/popover.tsx rename to x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/popover.tsx diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/tooltip_content.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/tooltip_content.tsx similarity index 93% rename from x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/tooltip_content.tsx rename to x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/tooltip_content.tsx index 8551c56ef6961..9fbcdec335a73 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/tooltip_content.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/log_rates/tooltip_content.tsx @@ -10,7 +10,7 @@ import { EuiText } from '@elastic/eui'; import { css } from '@emotion/react'; import { FormattedMessage } from '@kbn/i18n-react'; -export interface TooltipContentProps extends Pick, 'style'> { +interface TooltipContentProps extends Pick, 'style'> { description: ReactElement | string; formula?: string; } diff --git a/x-pack/plugins/observability_solution/apm/public/components/shared/entity_enablement/service_eco_tour.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/entity_enablement/service_eco_tour.tsx deleted file mode 100644 index 3a8a7272af46b..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/shared/entity_enablement/service_eco_tour.tsx +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { i18n } from '@kbn/i18n'; -import { EuiText, EuiTourStep } from '@elastic/eui'; -import { useEntityManagerEnablementContext } from '../../../context/entity_manager_context/use_entity_manager_enablement_context'; - -export function ServiceEcoTour({ - children, - onFinish, -}: { - children: React.ReactElement; - onFinish: () => void; -}) { - const { tourState } = useEntityManagerEnablementContext(); - - return ( - -

- {i18n.translate('xpack.apm.serviceEcoTour.content', { - defaultMessage: 'You can now add services from logs to the service inventory', - })} -

- - } - isStepOpen={tourState.isTourActive} - minWidth={200} - onFinish={onFinish} - step={1} - stepsTotal={1} - title={i18n.translate('xpack.apm.serviceEcoTour.title', { - defaultMessage: 'Add services from logs', - })} - subtitle={i18n.translate('xpack.apm.serviceEcoTour.subtitle', { - defaultMessage: 'New Services Inventory', - })} - anchorPosition="rightUp" - > - {children} -
- ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/context/apm_service/use_service_entity_summary_fetcher.ts b/x-pack/plugins/observability_solution/apm/public/context/apm_service/use_service_entity_summary_fetcher.ts index 2d24d3a7dfca6..1c01b6bd25cb2 100644 --- a/x-pack/plugins/observability_solution/apm/public/context/apm_service/use_service_entity_summary_fetcher.ts +++ b/x-pack/plugins/observability_solution/apm/public/context/apm_service/use_service_entity_summary_fetcher.ts @@ -5,9 +5,9 @@ * 2.0. */ +import { useEntityCentricExperienceSetting } from '../../hooks/use_entity_centric_experience_setting'; import { useFetcher } from '../../hooks/use_fetcher'; import { APIReturnType } from '../../services/rest/create_call_apm_api'; -import { useEntityManagerEnablementContext } from '../entity_manager_context/use_entity_manager_enablement_context'; export type ServiceEntitySummary = APIReturnType<'GET /internal/apm/entities/services/{serviceName}/summary'>; @@ -21,17 +21,17 @@ export function useServiceEntitySummaryFetcher({ end?: string; environment?: string; }) { - const { isEntityCentricExperienceViewEnabled } = useEntityManagerEnablementContext(); + const { isEntityCentricExperienceEnabled } = useEntityCentricExperienceSetting(); const { data, status } = useFetcher( (callAPI) => { - if (isEntityCentricExperienceViewEnabled && serviceName && environment) { + if (isEntityCentricExperienceEnabled && serviceName && environment) { return callAPI('GET /internal/apm/entities/services/{serviceName}/summary', { params: { path: { serviceName }, query: { environment } }, }); } }, - [environment, isEntityCentricExperienceViewEnabled, serviceName] + [environment, isEntityCentricExperienceEnabled, serviceName] ); return { serviceEntitySummary: data, serviceEntitySummaryStatus: status }; diff --git a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx b/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx deleted file mode 100644 index 95a246ddce566..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/entity_manager_context.tsx +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { entityCentricExperience } from '@kbn/observability-plugin/common'; -import React, { createContext } from 'react'; -import { - SERVICE_INVENTORY_STORAGE_KEY, - serviceInventoryViewType$, -} from '../../analytics/register_service_inventory_view_type_context'; -import { useLocalStorage } from '../../hooks/use_local_storage'; -import { ApmPluginStartDeps, ApmServices } from '../../plugin'; -import { useApmPluginContext } from '../apm_plugin/use_apm_plugin_context'; -import { useKibana } from '../kibana_context/use_kibana'; -import { ENTITY_FETCH_STATUS, useEntityManager } from './use_entity_manager'; - -export interface EntityManagerEnablementContextValue { - isEntityManagerEnabled: boolean; - isEnablementPending: boolean; - refetch: () => void; - serviceInventoryViewLocalStorageSetting: ServiceInventoryView; - setServiceInventoryViewLocalStorageSetting: (view: ServiceInventoryView) => void; - isEntityCentricExperienceViewEnabled: boolean; - tourState: TourState; - updateTourState: (newState: Partial) => void; -} - -export enum ServiceInventoryView { - classic = 'classic', - entity = 'entity', -} - -export const EntityManagerEnablementContext = createContext( - {} as EntityManagerEnablementContextValue -); - -interface TourState { - isModalVisible?: boolean; - isTourActive: boolean; -} -const TOUR_INITIAL_STATE: TourState = { - isModalVisible: undefined, - isTourActive: false, -}; - -export function EntityManagerEnablementContextProvider({ - children, -}: { - children: React.ReactChild; -}) { - const { core } = useApmPluginContext(); - const { services } = useKibana(); - const { isEnabled: isEntityManagerEnabled, status, refetch } = useEntityManager(); - const [tourState, setTourState] = useLocalStorage('apm.serviceEcoTour', TOUR_INITIAL_STATE); - const [serviceInventoryViewLocalStorageSetting, setServiceInventoryViewLocalStorageSetting] = - useLocalStorage(SERVICE_INVENTORY_STORAGE_KEY, ServiceInventoryView.classic); - - const isEntityCentricExperienceSettingEnabled = core.uiSettings.get( - entityCentricExperience, - true - ); - - function handleServiceInventoryViewChange(nextView: ServiceInventoryView) { - setServiceInventoryViewLocalStorageSetting(nextView); - // Updates the telemetry context variable every time the user switches views - serviceInventoryViewType$.next({ serviceInventoryViewType: nextView }); - services.telemetry.reportEntityExperienceStatusChange({ - status: nextView === ServiceInventoryView.entity ? 'enabled' : 'disabled', - }); - } - - function handleTourStateUpdate(newTourState: Partial) { - setTourState({ ...tourState, ...newTourState }); - } - - return ( - - {children} - - ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager.ts b/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager.ts deleted file mode 100644 index 0fe465beb19ef..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useKibana } from '@kbn/kibana-react-plugin/public'; -import { useEffect, useMemo, useState } from 'react'; -import { ApmPluginStartDeps } from '../../plugin'; - -export enum ENTITY_FETCH_STATUS { - LOADING = 'loading', - SUCCESS = 'success', - FAILURE = 'failure', - NOT_INITIATED = 'not_initiated', -} - -export function useEntityManager() { - const { - services: { entityManager }, - } = useKibana(); - const [counter, setCounter] = useState(0); - const [result, setResult] = useState({ - isEnabled: false, - status: ENTITY_FETCH_STATUS.NOT_INITIATED, - }); - - useEffect(() => { - async function isManagedEntityDiscoveryEnabled() { - setResult({ isEnabled: false, status: ENTITY_FETCH_STATUS.LOADING }); - - try { - const response = await entityManager.entityClient.isManagedEntityDiscoveryEnabled(); - setResult({ isEnabled: response?.enabled, status: ENTITY_FETCH_STATUS.SUCCESS }); - } catch (err) { - setResult({ isEnabled: false, status: ENTITY_FETCH_STATUS.FAILURE }); - - console.error(err); - } - } - - isManagedEntityDiscoveryEnabled(); - }, [entityManager, counter]); - - return useMemo(() => { - return { - ...result, - refetch: () => { - // this will invalidate the deps to `useEffect` and will result in a new request - setCounter((count) => count + 1); - }, - }; - }, [result]); -} diff --git a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager_enablement_context.ts b/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager_enablement_context.ts deleted file mode 100644 index 83942af2e7715..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/context/entity_manager_context/use_entity_manager_enablement_context.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useContext } from 'react'; -import { EntityManagerEnablementContext } from './entity_manager_context'; - -export function useEntityManagerEnablementContext() { - return useContext(EntityManagerEnablementContext); -} diff --git a/x-pack/plugins/observability_solution/apm/public/hooks/use_entity_centric_experience_setting.tsx b/x-pack/plugins/observability_solution/apm/public/hooks/use_entity_centric_experience_setting.tsx new file mode 100644 index 0000000000000..32e68c40788fc --- /dev/null +++ b/x-pack/plugins/observability_solution/apm/public/hooks/use_entity_centric_experience_setting.tsx @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { entityCentricExperience } from '@kbn/observability-plugin/common'; +import { useApmPluginContext } from '../context/apm_plugin/use_apm_plugin_context'; + +export function useEntityCentricExperienceSetting() { + const { core } = useApmPluginContext(); + + const isEntityCentricExperienceEnabled = core.uiSettings.get( + entityCentricExperience, + true + ); + + return { isEntityCentricExperienceEnabled }; +} diff --git a/x-pack/plugins/observability_solution/apm/public/plugin.ts b/x-pack/plugins/observability_solution/apm/public/plugin.ts index 85580d6d866a4..9a9f45f42a39e 100644 --- a/x-pack/plugins/observability_solution/apm/public/plugin.ts +++ b/x-pack/plugins/observability_solution/apm/public/plugin.ts @@ -19,10 +19,6 @@ import { PluginInitializerContext, SecurityServiceStart, } from '@kbn/core/public'; -import { - EntityManagerPublicPluginSetup, - EntityManagerPublicPluginStart, -} from '@kbn/entityManager-plugin/public'; import type { DataPublicPluginSetup, DataPublicPluginStart } from '@kbn/data-plugin/public'; import { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import { DiscoverSetup, DiscoverStart } from '@kbn/discover-plugin/public'; @@ -86,7 +82,6 @@ import { getLazyAPMPolicyEditExtension } from './components/fleet_integration/la import { featureCatalogueEntry } from './feature_catalogue_entry'; import { APMServiceDetailLocator } from './locator/service_detail_locator'; import { ITelemetryClient, TelemetryService } from './services/telemetry'; -import { registerServiceInventoryViewTypeContext } from './analytics/register_service_inventory_view_type_context'; export type ApmPluginSetup = ReturnType; export type ApmPluginStart = void; @@ -111,7 +106,6 @@ export interface ApmPluginSetupDeps { uiActions: UiActionsSetup; profiling?: ProfilingPluginSetup; cloud?: CloudSetup; - entityManager: EntityManagerPublicPluginSetup; } export interface ApmServices { @@ -148,7 +142,6 @@ export interface ApmPluginStartDeps { dashboard: DashboardStart; metricsDataAccess: MetricsDataPluginStart; uiSettings: IUiSettingsClient; - entityManager: EntityManagerPublicPluginStart; } const applicationsTitle = i18n.translate('xpack.apm.navigation.rootTitle', { @@ -279,7 +272,6 @@ export class ApmPlugin implements Plugin { }; this.telemetry.setup({ analytics: core.analytics }); - registerServiceInventoryViewTypeContext(core.analytics); // Registers a status check callback for the tutorial to call and verify if the APM integration is installed on fleet. pluginSetupDeps.home?.tutorials.registerCustomStatusCheck( diff --git a/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_client.ts b/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_client.ts index 87567c82e3454..3f9f870fb3ffe 100644 --- a/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_client.ts +++ b/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_client.ts @@ -9,9 +9,7 @@ import { AnalyticsServiceSetup } from '@kbn/core-analytics-browser'; import { ITelemetryClient, SearchQuerySubmittedParams, - EntityExperienceStatusParams, TelemetryEventTypes, - EntityInventoryPageStateParams, EntityInventoryAddDataParams, EmptyStateClickParams, } from './types'; @@ -31,14 +29,6 @@ export class TelemetryClient implements ITelemetryClient { }); }; - public reportEntityExperienceStatusChange = (params: EntityExperienceStatusParams) => { - this.analytics.reportEvent(TelemetryEventTypes.ENTITY_EXPERIENCE_STATUS, params); - }; - - public reportEntityInventoryPageState = (params: EntityInventoryPageStateParams) => { - this.analytics.reportEvent(TelemetryEventTypes.ENTITY_INVENTORY_PAGE_STATE, params); - }; - public reportEntityInventoryAddData = (params: EntityInventoryAddDataParams) => { this.analytics.reportEvent(TelemetryEventTypes.ENTITY_INVENTORY_ADD_DATA, params); }; diff --git a/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_events.ts b/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_events.ts index 2d00970a2b128..605c326f7cb09 100644 --- a/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_events.ts +++ b/x-pack/plugins/observability_solution/apm/public/services/telemetry/telemetry_events.ts @@ -33,30 +33,6 @@ const searchQuerySubmittedEventType: TelemetryEvent = { }, }; -const entityExperienceStatusEventType: TelemetryEvent = { - eventType: TelemetryEventTypes.ENTITY_EXPERIENCE_STATUS, - schema: { - status: { - type: 'keyword', - _meta: { - description: 'The status of the Entity experience (Enabled or Disabled)', - }, - }, - }, -}; - -const entityInventoryPageStateEventType: TelemetryEvent = { - eventType: TelemetryEventTypes.ENTITY_INVENTORY_PAGE_STATE, - schema: { - state: { - type: 'keyword', - _meta: { - description: 'The current entity inventory page state (empty_state or available)', - }, - }, - }, -}; - const entityInventoryAddDataEventType: TelemetryEvent = { eventType: TelemetryEventTypes.ENTITY_INVENTORY_ADD_DATA, schema: { @@ -106,8 +82,6 @@ const learnMoreClickEventType: TelemetryEvent = { export const apmTelemetryEventBasedTypes = [ searchQuerySubmittedEventType, - entityExperienceStatusEventType, - entityInventoryPageStateEventType, entityInventoryAddDataEventType, tryItClickEventType, learnMoreClickEventType, diff --git a/x-pack/plugins/observability_solution/apm/public/services/telemetry/types.ts b/x-pack/plugins/observability_solution/apm/public/services/telemetry/types.ts index 665f3c59d7612..40f77a02899e4 100644 --- a/x-pack/plugins/observability_solution/apm/public/services/telemetry/types.ts +++ b/x-pack/plugins/observability_solution/apm/public/services/telemetry/types.ts @@ -21,14 +21,6 @@ export interface SearchQuerySubmittedParams { action: SearchQueryActions; } -export interface EntityExperienceStatusParams { - status: 'enabled' | 'disabled'; -} - -export interface EntityInventoryPageStateParams { - state: 'empty_state' | 'available'; -} - export interface EntityInventoryAddDataParams { view: 'empty_state' | 'add_data_button' | 'add_apm_cta' | 'add_apm_n/a'; journey?: 'add_apm_agent' | 'associate_existing_service_logs' | 'collect_new_service_logs'; @@ -40,15 +32,11 @@ export interface EmptyStateClickParams { export type TelemetryEventParams = | SearchQuerySubmittedParams - | EntityExperienceStatusParams - | EntityInventoryPageStateParams | EntityInventoryAddDataParams | EmptyStateClickParams; export interface ITelemetryClient { reportSearchQuerySubmitted(params: SearchQuerySubmittedParams): void; - reportEntityExperienceStatusChange(params: EntityExperienceStatusParams): void; - reportEntityInventoryPageState(params: EntityInventoryPageStateParams): void; reportEntityInventoryAddData(params: EntityInventoryAddDataParams): void; reportTryItClick(params: EmptyStateClickParams): void; reportLearnMoreClick(params: EmptyStateClickParams): void; @@ -56,8 +44,6 @@ export interface ITelemetryClient { export enum TelemetryEventTypes { SEARCH_QUERY_SUBMITTED = 'Search Query Submitted', - ENTITY_EXPERIENCE_STATUS = 'entity_experience_status', - ENTITY_INVENTORY_PAGE_STATE = 'entity_inventory_page_state', ENTITY_INVENTORY_ADD_DATA = 'entity_inventory_add_data', TRY_IT_CLICK = 'try_it_click', LEARN_MORE_CLICK = 'learn_more_click', diff --git a/x-pack/plugins/observability_solution/apm/tsconfig.json b/x-pack/plugins/observability_solution/apm/tsconfig.json index 9f6a5e4f57f40..0f08bf3143cd2 100644 --- a/x-pack/plugins/observability_solution/apm/tsconfig.json +++ b/x-pack/plugins/observability_solution/apm/tsconfig.json @@ -119,7 +119,6 @@ "@kbn/react-kibana-context-theme", "@kbn/test-jest-helpers", "@kbn/security-plugin-types-common", - "@kbn/entityManager-plugin", "@kbn/server-route-repository-utils", "@kbn/core-analytics-browser", "@kbn/apm-types", diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index cb98cb08e47f6..b3e9fce911ab2 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10647,12 +10647,6 @@ "xpack.apm.mobileServiceDetails.serviceMapTabLabel": "Carte des services", "xpack.apm.mobileServiceDetails.transactionsTabLabel": "Transactions", "xpack.apm.mobileServices.breadcrumb.title": "Services", - "xpack.apm.multiSignal.servicesTable.environmentColumnLabel": "Environnement", - "xpack.apm.multiSignal.servicesTable.latencyAvgColumnLabel": "Latence (moy.)", - "xpack.apm.multiSignal.servicesTable.logErrorRate": "Taux d'erreur des logs", - "xpack.apm.multiSignal.servicesTable.nameColumnLabel": "Nom", - "xpack.apm.multiSignal.servicesTable.throughputColumnLabel": "Rendement", - "xpack.apm.multiSignal.servicesTable.transactionErrorRate": "Taux de transactions ayant échoué", "xpack.apm.navigation.apmSettingsTitle": "Paramètres", "xpack.apm.navigation.apmStorageExplorerTitle": "Explorateur de stockage", "xpack.apm.navigation.apmTutorialTitle": "Tutoriel", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 983ed0097e5f0..b6d7a0a2c92c7 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10396,12 +10396,6 @@ "xpack.apm.mobileServiceDetails.serviceMapTabLabel": "サービスマップ", "xpack.apm.mobileServiceDetails.transactionsTabLabel": "トランザクション", "xpack.apm.mobileServices.breadcrumb.title": "サービス", - "xpack.apm.multiSignal.servicesTable.environmentColumnLabel": "環境", - "xpack.apm.multiSignal.servicesTable.latencyAvgColumnLabel": "レイテンシ(平均)", - "xpack.apm.multiSignal.servicesTable.logErrorRate": "ログエラー率", - "xpack.apm.multiSignal.servicesTable.nameColumnLabel": "名前", - "xpack.apm.multiSignal.servicesTable.throughputColumnLabel": "スループット", - "xpack.apm.multiSignal.servicesTable.transactionErrorRate": "失敗したトランザクション率", "xpack.apm.navigation.apmSettingsTitle": "設定", "xpack.apm.navigation.apmStorageExplorerTitle": "ストレージエクスプローラー", "xpack.apm.navigation.apmTutorialTitle": "チュートリアル", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 092a3924977c7..8aa856352f83a 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10418,12 +10418,6 @@ "xpack.apm.mobileServiceDetails.serviceMapTabLabel": "服务地图", "xpack.apm.mobileServiceDetails.transactionsTabLabel": "事务", "xpack.apm.mobileServices.breadcrumb.title": "服务", - "xpack.apm.multiSignal.servicesTable.environmentColumnLabel": "环境", - "xpack.apm.multiSignal.servicesTable.latencyAvgColumnLabel": "延迟(平均值)", - "xpack.apm.multiSignal.servicesTable.logErrorRate": "日志错误率", - "xpack.apm.multiSignal.servicesTable.nameColumnLabel": "名称", - "xpack.apm.multiSignal.servicesTable.throughputColumnLabel": "吞吐量", - "xpack.apm.multiSignal.servicesTable.transactionErrorRate": "失败事务率", "xpack.apm.navigation.apmSettingsTitle": "设置", "xpack.apm.navigation.apmStorageExplorerTitle": "Storage Explorer", "xpack.apm.navigation.apmTutorialTitle": "教程", From 95d01cdfa002cc8dd01e03f6a5eca1770f81cf08 Mon Sep 17 00:00:00 2001 From: Jen Huang Date: Mon, 7 Oct 2024 03:48:48 -0700 Subject: [PATCH 06/62] [UII] Fix skipped test by add logs otel template to index template overlaps (#194764) ## Summary **Do not merge until ES has been promoted** Resolves #194714. Test was skipped due to changes from latest ES build. This PR amends the test and unskips it. --- .../fleet_api_integration/apis/epm/install_overrides.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/x-pack/test/fleet_api_integration/apis/epm/install_overrides.ts b/x-pack/test/fleet_api_integration/apis/epm/install_overrides.ts index c67ef64762d60..50aafabd56d6f 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/install_overrides.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/install_overrides.ts @@ -21,8 +21,7 @@ export default function (providerContext: FtrProviderContext) { const deletePackage = async (pkg: string, version: string) => supertest.delete(`/api/fleet/epm/packages/${pkg}/${version}`).set('kbn-xsrf', 'xxxx'); - // Failing: See https://github.com/elastic/kibana/issues/194714 - describe.skip('installs packages that include settings and mappings overrides', () => { + describe('installs packages that include settings and mappings overrides', () => { skipIfNoDockerRegistry(providerContext); before(async () => { @@ -165,6 +164,10 @@ export default function (providerContext: FtrProviderContext) { name: 'logs', index_patterns: ['logs-*-*'], }, + { + index_patterns: ['logs-*.otel-*'], + name: 'logs-otel@template', + }, ], }); }); From 3c1c64678b142c36535e6db0810d8d02467489cc Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Mon, 7 Oct 2024 12:54:38 +0200 Subject: [PATCH 07/62] [Fleet] Do not enable uninstall command link without Agents:All (#195185) --- .../agent_policy_advanced_fields/index.tsx | 45 ++++++++++++++----- .../components/missing_privileges_tooltip.tsx | 33 ++++++++++++++ 2 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 x-pack/plugins/fleet/public/components/missing_privileges_tooltip.tsx diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx index 841bd756d8687..1497b1bb0589e 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx @@ -28,6 +28,8 @@ import { import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; +import { MissingPrivilegesToolTip } from '../../../../../../components/missing_privileges_tooltip'; + import { LEGACY_AGENT_POLICY_SAVED_OBJECT_TYPE, dataTypes, @@ -42,6 +44,7 @@ import { useUIExtension, useLink, useFleetStatus, + useAuthz, } from '../../../../hooks'; import { AgentPolicyPackageBadge } from '../../../../components'; @@ -59,7 +62,6 @@ import { DEFAULT_SELECT_VALUE, useFleetServerHostsOptions, } from './hooks'; - import { CustomFields } from './custom_fields'; import { SpaceSelector } from './space_selector'; import { AgentPolicyAdvancedMonitoringOptions } from './advanced_monitoring'; @@ -87,6 +89,7 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = 'endpoint-agent-tamper-protection' ); const config = useConfig(); + const authz = useAuthz(); const maxAgentPoliciesWithInactivityTimeout = config.developer?.maxAgentPoliciesWithInactivityTimeout ?? DEFAULT_MAX_AGENT_POLICIES_WITH_INACTIVITY_TIMEOUT; @@ -179,22 +182,40 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = {agentPolicy.id && ( <> - { - setIsUninstallCommandFlyoutOpen(true); - }} - disabled={!agentPolicy.is_protected || !policyHasElasticDefend} - data-test-subj="uninstallCommandLink" + - {i18n.translate('xpack.fleet.agentPolicyForm.tamperingUninstallLink', { - defaultMessage: 'Get uninstall command', - })} - + { + setIsUninstallCommandFlyoutOpen(true); + }} + disabled={ + !agentPolicy.is_protected || !policyHasElasticDefend || !authz.fleet.allAgents + } + data-test-subj="uninstallCommandLink" + > + {i18n.translate('xpack.fleet.agentPolicyForm.tamperingUninstallLink', { + defaultMessage: 'Get uninstall command', + })} + + )} ), - [agentPolicy.id, agentPolicy.is_protected, policyHasElasticDefend, updateAgentPolicy, disabled] + [ + agentPolicy.id, + agentPolicy.is_protected, + policyHasElasticDefend, + updateAgentPolicy, + disabled, + authz.fleet.allAgents, + ] ); const AgentTamperProtectionSection = useMemo(() => { diff --git a/x-pack/plugins/fleet/public/components/missing_privileges_tooltip.tsx b/x-pack/plugins/fleet/public/components/missing_privileges_tooltip.tsx new file mode 100644 index 0000000000000..bf93a5defa9c7 --- /dev/null +++ b/x-pack/plugins/fleet/public/components/missing_privileges_tooltip.tsx @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { EuiToolTip, type EuiToolTipProps } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +export const MissingPrivilegesToolTip: React.FC<{ + children: React.ReactElement; + missingPrivilege?: string; + position?: EuiToolTipProps['position']; +}> = ({ children, missingPrivilege, position }) => { + if (!missingPrivilege) { + return children; + } + return ( + + {children} + + ); +}; From 20dcf5f7211c6e8ed166fc7bb9a61a733384a529 Mon Sep 17 00:00:00 2001 From: "Eyo O. Eyo" <7893459+eokoneyo@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:57:20 +0100 Subject: [PATCH 08/62] [Reporting] Improvements to reporting diagnostics (#191790) ## Summary Closes https://github.com/elastic/kibana/issues/186434 This PR adds a search within the output log whilst attempting to start the browser (i.e chromium) bundled with Kibana to ascertain if it includes a font config error log message as signal in reporting diagnostics for potential issues with generating a report. This work is informed from couple of support tickets with customers running the diagnostics tool, getting a confirmation that the reporting system is functionality whilst missing font issues was actually preventing reports from being generated on the linux platform. Also fixes an issue that prevented visual feedback for when an error is detected during diagnosis. #### Visuals ![ScreenRecording2024-09-26at15 04 19-ezgif com-video-to-gif-converter](https://github.com/user-attachments/assets/c0320f2a-6802-435b-bae7-535f878113b3) --------- Co-authored-by: Elastic Machine --- .../components/report_diagnostic.test.tsx | 118 ++++++++++++++++++ .../components/report_diagnostic.tsx | 14 ++- .../routes/internal/diagnostic/browser.ts | 8 ++ .../integration_tests/browser.test.ts | 24 ++++ 4 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 x-pack/plugins/reporting/public/management/components/report_diagnostic.test.tsx diff --git a/x-pack/plugins/reporting/public/management/components/report_diagnostic.test.tsx b/x-pack/plugins/reporting/public/management/components/report_diagnostic.test.tsx new file mode 100644 index 0000000000000..95ede7f2d3444 --- /dev/null +++ b/x-pack/plugins/reporting/public/management/components/report_diagnostic.test.tsx @@ -0,0 +1,118 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { type ComponentProps } from 'react'; +import userEvent from '@testing-library/user-event'; +import { render, screen, waitFor } from '@testing-library/react'; +import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { ReportDiagnostic } from './report_diagnostic'; + +const mockedApiClient: jest.Mocked< + Pick['apiClient'], 'verifyBrowser'> +> = { + verifyBrowser: jest.fn(), +}; + +const defaultProps: Pick, 'apiClient'> = { + // @ts-expect-error we don't need to provide the full apiClient for the test + apiClient: mockedApiClient, +}; + +const renderComponent = (props: Pick, 'clientConfig'>) => { + render( + + + + ); +}; + +describe('ReportDiagnostic', () => { + afterEach(() => { + jest.clearAllMocks(); + }); + + it("does not render the component, if image exports aren't supported", () => { + renderComponent({ + clientConfig: { + export_types: { pdf: { enabled: false }, png: { enabled: false } }, + } as unknown as ComponentProps['clientConfig'], + }); + + expect(screen.queryByTestId('screenshotDiagnosticLink')).not.toBeInTheDocument(); + }); + + it('renders the component if image exports are supported', () => { + renderComponent({ + clientConfig: { + export_types: { + png: { enabled: true }, + pdf: { enabled: true }, + }, + } as unknown as ComponentProps['clientConfig'], + }); + + expect(screen.getByTestId('screenshotDiagnosticLink')).toBeInTheDocument(); + }); + + it('renders a callout with a warning if a problem is detected during diagnosis', async () => { + const user = userEvent.setup(); + + mockedApiClient.verifyBrowser.mockResolvedValue({ + success: false, + help: ['help'], + logs: 'logs', + }); + + renderComponent({ + clientConfig: { + export_types: { + png: { enabled: true }, + pdf: { enabled: true }, + }, + } as unknown as ComponentProps['clientConfig'], + }); + + await user.click(screen.getByTestId('screenshotDiagnosticLink')); + + await waitFor(() => expect(screen.getByTestId('reportDiagnosisFlyout')).toBeInTheDocument()); + + user.click(screen.getByTestId('reportingDiagnosticInitiationButton')); + + await waitFor(() => + expect(screen.getByTestId('reportingDiagnosticFailureCallout')).toBeInTheDocument() + ); + }); + + it('renders a success callout if no problem is detected during diagnosis', async () => { + const user = userEvent.setup(); + + mockedApiClient.verifyBrowser.mockResolvedValue({ + success: true, + help: [], + logs: 'logs', + }); + + renderComponent({ + clientConfig: { + export_types: { + png: { enabled: true }, + pdf: { enabled: true }, + }, + } as unknown as ComponentProps['clientConfig'], + }); + + await user.click(screen.getByTestId('screenshotDiagnosticLink')); + + await waitFor(() => expect(screen.getByTestId('reportDiagnosisFlyout')).toBeInTheDocument()); + + user.click(screen.getByTestId('reportingDiagnosticInitiationButton')); + + await waitFor(() => + expect(screen.getByTestId('reportingDiagnosticSuccessCallout')).toBeInTheDocument() + ); + }); +}); diff --git a/x-pack/plugins/reporting/public/management/components/report_diagnostic.tsx b/x-pack/plugins/reporting/public/management/components/report_diagnostic.tsx index bbaab324a3fd4..90139a56ead28 100644 --- a/x-pack/plugins/reporting/public/management/components/report_diagnostic.tsx +++ b/x-pack/plugins/reporting/public/management/components/report_diagnostic.tsx @@ -100,17 +100,17 @@ export const ReportDiagnostic = ({ apiClient, clientConfig }: Props) => { if (state.success && chromeStatus === 'complete') { outcomeCallout = ( ); - } else if (!state.success && chromeStatus === 'complete') { + } else if (!state.success && chromeStatus === 'danger') { outcomeCallout = ( { } flyout = ( - +

@@ -161,6 +166,7 @@ export const ReportDiagnostic = ({ apiClient, clientConfig }: Props) => { onClick={apiWrapper(() => apiClient.verifyBrowser(), statuses.chromeStatus)} isLoading={isBusy && chromeStatus === 'incomplete'} iconType={chromeStatus === 'complete' ? 'check' : undefined} + data-test-subj="reportingDiagnosticInitiationButton" > ({ defaultMessage: `Unable to use Chromium sandbox. This can be disabled at your own risk with 'xpack.screenshotting.browser.chromium.disableSandbox'. Please see {url}`, values: { url: docLinks.links.reporting.browserSandboxDependencies }, }), + + 'Fontconfig error: Cannot load default config file': i18n.translate( + 'xpack.reporting.diagnostic.fontconfigError', + { + defaultMessage: `The browser couldn't start properly due to missing system font dependencies. Please see {url}`, + values: { url: docLinks.links.reporting.browserSystemDependencies }, + } + ), }); const path = INTERNAL_ROUTES.DIAGNOSE.BROWSER; diff --git a/x-pack/plugins/reporting/server/routes/internal/diagnostic/integration_tests/browser.test.ts b/x-pack/plugins/reporting/server/routes/internal/diagnostic/integration_tests/browser.test.ts index 3f1966d2e78d8..531b357e30bc0 100644 --- a/x-pack/plugins/reporting/server/routes/internal/diagnostic/integration_tests/browser.test.ts +++ b/x-pack/plugins/reporting/server/routes/internal/diagnostic/integration_tests/browser.test.ts @@ -120,6 +120,30 @@ describe(`GET ${INTERNAL_ROUTES.DIAGNOSE.BROWSER}`, () => { }); }); + it('returns a response including log received from the browser + helpful link on font config error', async () => { + const fontErrorLog = `Fontconfig error: Cannot load default config file: No such file: (null)`; + + registerDiagnoseBrowser(core, mockLogger); + + await server.start(); + screenshotting.diagnose.mockReturnValue(Rx.of(fontErrorLog)); + + return supertest(httpSetup.server.listener) + .get(INTERNAL_ROUTES.DIAGNOSE.BROWSER) + .expect(200) + .then(({ body }) => { + expect(body).toMatchInlineSnapshot(` + Object { + "help": Array [ + "The browser couldn't start properly due to missing system font dependencies. Please see https://www.elastic.co/guide/en/kibana/test-branch/secure-reporting.html#install-reporting-packages", + ], + "logs": "${fontErrorLog}", + "success": false, + } + `); + }); + }); + it('logs a message when the browser starts, but then has problems later', async () => { registerDiagnoseBrowser(core, mockLogger); From 02d0c9852f0efb15b67c06e240e1525220a701ec Mon Sep 17 00:00:00 2001 From: Julia Date: Mon, 7 Oct 2024 13:23:25 +0200 Subject: [PATCH 09/62] [ResponseOps][Alerting] Error when submit rule form when using AddFilterPopover in actions (#194600) Resolve: https://github.com/elastic/kibana/issues/192847 When user try to save the rule which has a conditional action with a filter which contains AND or OR, it'll fail. Error raises when a new rule SO object is going to be created. Validation fails because schema is wrong. I fixed it in this PR. ### Checklist - [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 ### How to test 1. Go to Rules and try creating a new rule of any type 2. Add an action to the rule 3. Check the option If alert matches a query 4. Click the + icon to add a filter 5. Create a filter in the popover 6. Click AND or OR 7. Create another filter 8. Click Add filter 9. Try saving the rule 10. Saving should be successful --- .../saved_objects/schemas/raw_rule/v1.ts | 3 +- .../application/lib/value_validators.ts | 2 +- .../alert_create_flyout.ts | 91 +++++++++++++++++++ 3 files changed, 94 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/alerting/server/saved_objects/schemas/raw_rule/v1.ts b/x-pack/plugins/alerting/server/saved_objects/schemas/raw_rule/v1.ts index cc4d9311f8294..efa197ac5f590 100644 --- a/x-pack/plugins/alerting/server/saved_objects/schemas/raw_rule/v1.ts +++ b/x-pack/plugins/alerting/server/saved_objects/schemas/raw_rule/v1.ts @@ -167,9 +167,10 @@ const rawRuleAlertsFilterSchema = schema.object({ isMultiIndex: schema.maybe(schema.boolean()), type: schema.maybe(schema.string()), key: schema.maybe(schema.string()), - params: schema.maybe(schema.recordOf(schema.string(), schema.any())), // better type? + params: schema.maybe(schema.any()), value: schema.maybe(schema.string()), field: schema.maybe(schema.string()), + relation: schema.maybe(schema.oneOf([schema.literal('OR'), schema.literal('AND')])), }), $state: schema.maybe( schema.object({ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.ts index bb98c2664141d..6ad7eb14c8270 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/value_validators.ts @@ -20,7 +20,7 @@ const filterQueryRequiredError = i18n.translate( export const validateActionFilterQuery = (actionItem: RuleUiAction): string | null => { if ('alertsFilter' in actionItem) { const query = actionItem?.alertsFilter?.query; - if (query && !query.kql) { + if (query && !(query.kql || query.filters.length)) { return filterQueryRequiredError; } } diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alert_create_flyout.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alert_create_flyout.ts index c2b301d384a1b..bf4a81ea4772d 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alert_create_flyout.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alert_create_flyout.ts @@ -253,6 +253,97 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await deleteAlerts(alertsToDelete.map((alertItem: { id: string }) => alertItem.id)); }); + it('should create an alert with composite query in filter for conditional action', async () => { + const alertName = generateUniqueKey(); + await rules.common.defineIndexThresholdAlert(alertName); + + // filterKuery validation + await testSubjects.setValue('filterKuery', 'group:'); + const filterKueryInput = await testSubjects.find('filterKuery'); + expect(await filterKueryInput.elementHasClass('euiFieldSearch-isInvalid')).to.eql(true); + await testSubjects.setValue('filterKuery', 'group: group-0'); + expect(await filterKueryInput.elementHasClass('euiFieldSearch-isInvalid')).to.eql(false); + + await testSubjects.click('.slack-alerting-ActionTypeSelectOption'); + await testSubjects.click('addNewActionConnectorButton-.slack'); + const slackConnectorName = generateUniqueKey(); + await testSubjects.setValue('nameInput', slackConnectorName); + await testSubjects.setValue('slackWebhookUrlInput', 'https://test.com'); + await find.clickByCssSelector('[data-test-subj="saveActionButtonModal"]:not(disabled)'); + const createdConnectorToastTitle = await toasts.getTitleAndDismiss(); + expect(createdConnectorToastTitle).to.eql(`Created '${slackConnectorName}'`); + await testSubjects.click('notifyWhenSelect'); + await testSubjects.click('onThrottleInterval'); + await testSubjects.setValue('throttleInput', '10'); + + // Alerts search bar (conditional actions) + await testSubjects.click('alertsFilterQueryToggle'); + + await pageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.click('addFilter'); + // Add first part of query before AND + await testSubjects.click('filterFieldSuggestionList'); + await comboBox.set('filterFieldSuggestionList', '_id'); + await comboBox.set('filterOperatorList', 'is not'); + await testSubjects.setValue('filterParams', 'fake-rule-id'); + await testSubjects.click('add-and-filter'); + // Add second part of query after AND + const firstDropdown = await find.byCssSelector( + '[data-test-subj="filter-0.1"] [data-test-subj="filterFieldSuggestionList"] [data-test-subj="comboBoxSearchInput"]' + ); + await firstDropdown.click(); + await firstDropdown.type('kibana.alert.action_group'); + await find.clickByButtonText('kibana.alert.action_group'); + const secondDropdown = await find.byCssSelector( + '[data-test-subj="filter-0.1"] [data-test-subj="filterOperatorList"] [data-test-subj="comboBoxSearchInput"]' + ); + await secondDropdown.click(); + await secondDropdown.type('exists'); + await find.clickByButtonText('exists'); + await testSubjects.click('saveFilter'); + await testSubjects.setValue('queryInput', '_id: *'); + + const messageTextArea = await find.byCssSelector('[data-test-subj="messageTextArea"]'); + expect(await messageTextArea.getAttribute('value')).to.eql( + `Rule {{rule.name}} is active for group {{context.group}}: + +- Value: {{context.value}} +- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} +- Timestamp: {{context.date}}` + ); + await testSubjects.setValue('messageTextArea', 'test message '); + await testSubjects.click('messageAddVariableButton'); + await testSubjects.click('variableMenuButton-alert.actionGroup'); + expect(await messageTextArea.getAttribute('value')).to.eql( + 'test message {{alert.actionGroup}}' + ); + await messageTextArea.type(' some additional text '); + + await testSubjects.click('messageAddVariableButton'); + await testSubjects.setValue('messageVariablesSelectableSearch', 'rule.id'); + await testSubjects.click('variableMenuButton-rule.id'); + + expect(await messageTextArea.getAttribute('value')).to.eql( + 'test message {{alert.actionGroup}} some additional text {{rule.id}}' + ); + await testSubjects.click('saveRuleButton'); + const toastTitle = await toasts.getTitleAndDismiss(); + expect(toastTitle).to.eql(`Created rule "${alertName}"`); + await pageObjects.triggersActionsUI.searchAlerts(alertName); + const searchResultsAfterSave = await pageObjects.triggersActionsUI.getAlertsList(); + const searchResultAfterSave = searchResultsAfterSave[0]; + expect(omit(searchResultAfterSave, 'duration')).to.eql({ + name: `${alertName}Index threshold`, + tags: '', + interval: '1 min', + }); + expect(searchResultAfterSave.duration).to.match(/\d{2,}:\d{2}/); + + // clean up created alert + const alertsToDelete = await getAlertsByName(alertName); + await deleteAlerts(alertsToDelete.map((alertItem: { id: string }) => alertItem.id)); + }); + it('should create an alert with actions in multiple groups', async () => { const alertName = generateUniqueKey(); await defineAlwaysFiringAlert(alertName); From 76e4ffa0c9628d7b71400043e39c9c5973d34b7d Mon Sep 17 00:00:00 2001 From: Ignacio Rivas Date: Mon, 7 Oct 2024 13:33:14 +0200 Subject: [PATCH 10/62] [Console] Disable export if no content (#195178) --- src/plugins/console/public/application/containers/main/main.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/console/public/application/containers/main/main.tsx b/src/plugins/console/public/application/containers/main/main.tsx index 1b5116b2307a6..9cc1300eea5fb 100644 --- a/src/plugins/console/public/application/containers/main/main.tsx +++ b/src/plugins/console/public/application/containers/main/main.tsx @@ -229,6 +229,7 @@ export function Main({ currentTabProp, isEmbeddable = false }: MainProps) { downloadFileAs(EXPORT_FILE_NAME, { content: inputEditorValue, From 831d29725f541b1ae936c00e2f80b6744fdd4072 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Mon, 7 Oct 2024 13:52:31 +0200 Subject: [PATCH 11/62] [Fleet] Fix last checkin status (#195195) --- .../server/services/agents/helpers.test.ts | 156 ++++++++++++++++++ .../fleet/server/services/agents/helpers.ts | 3 +- 2 files changed, 158 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/services/agents/helpers.test.ts b/x-pack/plugins/fleet/server/services/agents/helpers.test.ts index 8e13c3bfe6a28..da4a343d9e142 100644 --- a/x-pack/plugins/fleet/server/services/agents/helpers.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/helpers.test.ts @@ -164,6 +164,162 @@ describe('searchHitToAgent', () => { }); }); + it('should work with DEGRADED last_checkin_status', () => { + const hit = { + _source: { + access_api_key_id: 'EH_RlIgBn_WkCEINY-qh', + active: true, + enrolled_at: '2023-06-07T07:45:30Z', + local_metadata: { + elastic: { + agent: { + 'build.original': + '8.9.0-SNAPSHOT (build: 953fda060f317c2389ef6fd1cac8806a2bfe92ac at 2023-05-29 14:51:32 +0000 UTC)', + }, + }, + }, + agent: { + id: '504b3006-52df-46a6-b7db-f3dc67aca7ac', + version: '8.9.0', + }, + policy_id: '76c5b020-0486-11ee-97a3-c3856dd800f7', + type: 'PERMANENT', + outputs: { + '68233290-0486-11ee-97a3-c3856dd800f7': { + api_key: 'En_RlIgBn_WkCEINb-pQ:mfeV4ji6RNGyCOBs25gteg', + permissions_hash: '6ac9e595a2f8cba8893f9ea1fbfb6cba4b4d6f16d935c17a6368f11ee0b0a5d8', + type: 'elasticsearch', + api_key_id: 'En_RlIgBn_WkCEINb-pQ', + to_retire_api_key_ids: [ + { + id: '1', + retired_at: '', + }, + ], + }, + }, + policy_revision_idx: 2, + components: [ + { + id: 'system/metrics-68233290-0486-11ee-97a3-c3856dd800f7', + units: [ + { + id: 'system/metrics-68233290-0486-11ee-97a3-c3856dd800f7-system/metrics-system-03ac5d6e-4931-4ace-a034-5e25768db326', + type: 'input', + message: 'Healthy', + status: 'HEALTHY', + payload: { + key: 'val', + }, + }, + ], + type: 'system/metrics', + message: "Healthy: communicating with pid '36'", + status: 'HEALTHY', + }, + ], + last_checkin_message: 'Running', + last_checkin_status: 'DEGRADED', + last_checkin: '2023-06-07T08:39:03Z', + unenrolled_at: '2023-06-07T07:45:30Z', + unenrollment_started_at: '2023-06-07T07:45:30Z', + upgraded_at: '2023-06-07T07:45:30Z', + upgrade_started_at: '2023-06-07T07:45:30Z', + default_api_key_id: 'EH_RlIgBn_WkCEINY-qh', + packages: ['system'], + tags: ['agent'], + user_provided_metadata: { + key: 'val', + }, + default_api_key_history: [ + { + id: '1', + retired_at: '', + }, + ], + }, + sort: [1686123930000, 'beb13bf6a73e'], + fields: { + status: ['online'], + }, + _id: '504b3006-52df-46a6-b7db-f3dc67aca7ac', + }; + const agent = searchHitToAgent(hit as any); + expect(agent).toEqual({ + id: '504b3006-52df-46a6-b7db-f3dc67aca7ac', + type: 'PERMANENT', + active: true, + enrolled_at: '2023-06-07T07:45:30Z', + access_api_key_id: 'EH_RlIgBn_WkCEINY-qh', + policy_id: '76c5b020-0486-11ee-97a3-c3856dd800f7', + last_checkin: '2023-06-07T08:39:03Z', + last_checkin_status: 'degraded', + last_checkin_message: 'Running', + policy_revision: 2, + sort: [1686123930000, 'beb13bf6a73e'], + outputs: { + '68233290-0486-11ee-97a3-c3856dd800f7': { + api_key_id: 'En_RlIgBn_WkCEINb-pQ', + type: 'elasticsearch', + to_retire_api_key_ids: [ + { + id: '1', + retired_at: '', + }, + ], + }, + }, + components: [ + { + id: 'system/metrics-68233290-0486-11ee-97a3-c3856dd800f7', + type: 'system/metrics', + status: 'HEALTHY', + message: "Healthy: communicating with pid '36'", + units: [ + { + id: 'system/metrics-68233290-0486-11ee-97a3-c3856dd800f7-system/metrics-system-03ac5d6e-4931-4ace-a034-5e25768db326', + type: 'input', + status: 'HEALTHY', + message: 'Healthy', + payload: { + key: 'val', + }, + }, + ], + }, + ], + local_metadata: { + elastic: { + agent: { + 'build.original': + '8.9.0-SNAPSHOT (build: 953fda060f317c2389ef6fd1cac8806a2bfe92ac at 2023-05-29 14:51:32 +0000 UTC)', + }, + }, + }, + status: 'online', + unenrolled_at: '2023-06-07T07:45:30Z', + unenrollment_started_at: '2023-06-07T07:45:30Z', + upgraded_at: '2023-06-07T07:45:30Z', + upgrade_started_at: '2023-06-07T07:45:30Z', + default_api_key_id: 'EH_RlIgBn_WkCEINY-qh', + packages: ['system'], + tags: ['agent'], + user_provided_metadata: { + key: 'val', + }, + default_api_key_history: [ + { + id: '1', + retired_at: '', + }, + ], + agent: { + id: '504b3006-52df-46a6-b7db-f3dc67aca7ac', + version: '8.9.0', + }, + }); + }); + it('should work when units is not present', () => { const hit = { _source: { diff --git a/x-pack/plugins/fleet/server/services/agents/helpers.ts b/x-pack/plugins/fleet/server/services/agents/helpers.ts index 7433fa441953d..4258e883b2351 100644 --- a/x-pack/plugins/fleet/server/services/agents/helpers.ts +++ b/x-pack/plugins/fleet/server/services/agents/helpers.ts @@ -72,7 +72,8 @@ export function searchHitToAgent( default_api_key_id: hit._source?.default_api_key_id, policy_id: hit._source?.policy_id, last_checkin: hit._source?.last_checkin, - last_checkin_status: hit._source?.last_checkin_status, + last_checkin_status: + hit._source?.last_checkin_status?.toLowerCase() as Agent['last_checkin_status'], last_checkin_message: hit._source?.last_checkin_message, policy_revision: hit._source?.policy_revision_idx, packages: hit._source?.packages ?? [], From d5763658c39856aefb5e15fa9e3e771f8bb0d613 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Mon, 7 Oct 2024 15:04:39 +0300 Subject: [PATCH 12/62] fix: [Obs Services > Create Service Group modal][KEYBOARD]: Focus should not be auto-set on first input when modal appears (#194696) Closes: https://github.com/elastic/kibana/issues/194965 Closes: https://github.com/elastic/kibana/issues/194966 # Description - [x] https://github.com/elastic/kibana/issues/194965
Focus is currently being set on the first input in the "Create group" modal. Screen reader users will hear the input name, but not get the title of the modal read aloud this way, and it could be confusing. We should be letting the EuiModal set focus naturally on the modal or close button so screen reader users hear the title as expected. - [x] https://github.com/elastic/kibana/issues/194966
Focus must be returned properly when I cancel the "Create group" workflow in Services > Create service group modal. # Changes Made 1. Removed: ```diff - inputRef.current?.focus(); // autofocus on initial render ``` 2. Added `aria-labelledby={modalTitleId}` for `EuiModal`. See https://eui.elastic.co/#/layout/modal. 3. Slightly updated `Name` and `Color` validation. # Screen https://github.com/user-attachments/assets/6636f2dc-b9b7-4d4d-8144-90249f8327e7 --- .../service_group_save/group_details.tsx | 57 ++++++++++++------- .../service_group_save/save_modal.tsx | 8 ++- .../service_group_save/select_services.tsx | 4 +- 3 files changed, 45 insertions(+), 24 deletions(-) diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/group_details.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/group_details.tsx index dccfc2be9da27..5e82ab290e07d 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/group_details.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/group_details.tsx @@ -21,7 +21,7 @@ import { isValidHex, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import type { StagedServiceGroup } from './save_modal'; interface Props { @@ -31,6 +31,7 @@ interface Props { onClickNext: (serviceGroup: StagedServiceGroup) => void; onDeleteGroup: () => void; isLoading: boolean; + titleId?: string; } export function GroupDetails({ @@ -40,13 +41,16 @@ export function GroupDetails({ onClickNext, onDeleteGroup, isLoading, + titleId, }: Props) { - const [name, setName] = useState(serviceGroup?.groupName || ''); - const [color, setColor, colorPickerErrors] = useColorPickerState( - serviceGroup?.color || '#5094C4' - ); - + const initialColor = serviceGroup?.color || '#5094C4'; + const [name, setName] = useState(serviceGroup?.groupName); + const [color, setColor, colorPickerErrors] = useColorPickerState(initialColor); const [description, setDescription] = useState(serviceGroup?.description); + + const isNamePristine = name === serviceGroup?.groupName; + const isColorPristine = color === initialColor; + useEffect(() => { if (serviceGroup) { setName(serviceGroup.groupName); @@ -65,16 +69,10 @@ export function GroupDetails({ const isInvalidName = !name; const isInvalid = isInvalidName || isInvalidColor; - const inputRef = useRef(null); - - useEffect(() => { - inputRef.current?.focus(); // autofocus on initial render - }, []); - return ( <> - + {isEdit ? i18n.translate('xpack.apm.serviceGroups.groupDetailsForm.edit.title', { defaultMessage: 'Edit group', @@ -93,15 +91,25 @@ export function GroupDetails({ label={i18n.translate('xpack.apm.serviceGroups.groupDetailsForm.name', { defaultMessage: 'Name', })} - isInvalid={isInvalidName} + isInvalid={!isNamePristine && isInvalidName} + error={ + !isNamePristine && isInvalidName + ? i18n.translate( + 'xpack.apm.serviceGroups.groupDetailsForm.invalidNameError', + { + defaultMessage: 'Please provide a valid name value', + } + ) + : undefined + } > { setName(e.target.value); }} - inputRef={inputRef} + isInvalid={!isNamePristine && isInvalidName} /> @@ -110,9 +118,9 @@ export function GroupDetails({ label={i18n.translate('xpack.apm.serviceGroups.groupDetailsForm.color', { defaultMessage: 'Color', })} - isInvalid={isInvalidColor} + isInvalid={!isColorPristine && isInvalidColor} error={ - isInvalidColor + !isColorPristine && isInvalidColor ? i18n.translate( 'xpack.apm.serviceGroups.groupDetailsForm.invalidColorError', { @@ -122,7 +130,11 @@ export function GroupDetails({ : undefined } > - + @@ -144,7 +156,7 @@ export function GroupDetails({ { setDescription(e.target.value); }} @@ -164,6 +176,7 @@ export function GroupDetails({ onDeleteGroup(); }} color="danger" + isLoading={isLoading} isDisabled={isLoading} data-test-subj="apmDeleteGroupButton" > @@ -177,6 +190,7 @@ export function GroupDetails({ {i18n.translate('xpack.apm.serviceGroups.groupDetailsForm.cancel', { @@ -192,12 +206,13 @@ export function GroupDetails({ iconSide="right" onClick={() => { onClickNext({ - groupName: name, + groupName: name || '', color, description, kuery: serviceGroup?.kuery ?? '', }); }} + isLoading={isLoading} isDisabled={isInvalid || isLoading} > {i18n.translate('xpack.apm.serviceGroups.groupDetailsForm.selectServices', { diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/save_modal.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/save_modal.tsx index ee16952fddb79..9ecc00d8681ec 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/save_modal.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/save_modal.tsx @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { EuiModal } from '@elastic/eui'; +import { EuiModal, useGeneratedHtmlId } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { useHistory } from 'react-router-dom'; import React, { useCallback, useEffect, useState } from 'react'; @@ -89,6 +89,8 @@ export function SaveGroupModal({ onClose, savedServiceGroup }: Props) { [savedServiceGroup?.id, notifications.toasts, onClose, isEdit, navigateToServiceGroups] ); + const modalTitleId = useGeneratedHtmlId(); + const onDelete = useCallback( async function () { setIsLoading(true); @@ -115,7 +117,7 @@ export function SaveGroupModal({ onClose, savedServiceGroup }: Props) { ); return ( - + {modalView === 'group_details' && ( )} {modalView === 'select_service' && stagedServiceGroup && ( @@ -139,6 +142,7 @@ export function SaveGroupModal({ onClose, savedServiceGroup }: Props) { setModalView('group_details'); }} isLoading={isLoading} + titleId={modalTitleId} /> )} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/select_services.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/select_services.tsx index 5b7ce6607ca05..b6a901bac8d2f 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/select_services.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_groups/service_group_save/select_services.tsx @@ -54,6 +54,7 @@ interface Props { onSaveClick: (serviceGroup: StagedServiceGroup) => void; onEditGroupDetailsClick: () => void; isLoading: boolean; + titleId?: string; } export function SelectServices({ @@ -63,6 +64,7 @@ export function SelectServices({ onSaveClick, onEditGroupDetailsClick, isLoading, + titleId, }: Props) { const [kuery, setKuery] = useState(serviceGroup?.kuery || ''); const [stagedKuery, setStagedKuery] = useState(serviceGroup?.kuery || ''); @@ -117,7 +119,7 @@ export function SelectServices({
- + {i18n.translate('xpack.apm.serviceGroups.selectServicesForm.title', { defaultMessage: 'Select services', })} From 103acda7472cef401e0fb28850ac8ce2d62d756f Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Mon, 7 Oct 2024 14:14:50 +0200 Subject: [PATCH 13/62] github-actions: undeploy observability deployments using ephemeral GH tokens (#195215) --- .github/workflows/undeploy-my-kibana.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/undeploy-my-kibana.yml b/.github/workflows/undeploy-my-kibana.yml index 778ab4c73e302..5cff76398987c 100644 --- a/.github/workflows/undeploy-my-kibana.yml +++ b/.github/workflows/undeploy-my-kibana.yml @@ -21,12 +21,8 @@ jobs: if: contains(github.event.pull_request.labels.*.name, 'ci:project-deploy-observability') runs-on: ubuntu-latest steps: - - uses: elastic/apm-pipeline-library/.github/actions/github-token@current - with: - url: ${{ secrets.OBLT_VAULT_ADDR }} - roleId: ${{ secrets.OBLT_VAULT_ROLE_ID }} - secretId: ${{ secrets.OBLT_VAULT_SECRET_ID }} - - uses: elastic/apm-pipeline-library/.github/actions/undeploy-my-kibana@current + - uses: elastic/oblt-actions/oblt-cli/undeploy-my-kibana@v1 with: - token: ${{ env.GITHUB_TOKEN }} + github-app-id: ${{ secrets.OBS_AUTOMATION_APP_ID }} + github-app-private-key: ${{ secrets.OBS_AUTOMATION_APP_PEM }} From 67f2b7cad2df49dbfec4a9603f01fbd6e76f8cb9 Mon Sep 17 00:00:00 2001 From: Jatin Kathuria Date: Mon, 7 Oct 2024 14:15:31 +0200 Subject: [PATCH 14/62] [Security Solution] Fix flaky unified component test #189791 (#195093) ## Summary Fixes #189791 Pagination test suite was timing out because huge number of records in data grid was rendering in JSDOM which were creating performance issues. This PR fixes that so that test does not times out. --- .../query_tab_unified_components.test.tsx | 103 ++++++++++++++---- 1 file changed, 84 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx index 3d7f37205ca94..2c8a5614598b5 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx @@ -297,21 +297,27 @@ describe('query tab with unified timeline', () => { ); }); - // FLAKY: https://github.com/elastic/kibana/issues/189791 - describe.skip('pagination', () => { + describe('pagination', () => { beforeEach(() => { - // should return all the records instead just 3 - // as the case in the default mock + // pagination tests need more than 1 record so here + // we return 5 records instead of just 1. useTimelineEventsMock = jest.fn(() => [ false, { - events: structuredClone(mockTimelineData), + events: structuredClone(mockTimelineData.slice(0, 5)), pageInfo: { activePage: 0, - totalPages: 10, + totalPages: 5, }, refreshedAt: Date.now(), - totalCount: 70, + /* + * `totalCount` could be any number w.r.t this test + * and actually means total hits on elastic search + * and not the fecthed number of records. + * + * This helps in testing `sampleSize` and `loadMore` + */ + totalCount: 50, loadPage: loadPageMock, }, ]); @@ -326,21 +332,48 @@ describe('query tab with unified timeline', () => { it( 'should paginate correctly', async () => { - renderTestComponents(); + const mockStateWithNoteInTimeline = { + ...mockGlobalState, + timeline: { + ...mockGlobalState.timeline, + timelineById: { + [TimelineId.test]: { + ...mockGlobalState.timeline.timelineById[TimelineId.test], + /* 1 record for each page */ + itemsPerPage: 1, + itemsPerPageOptions: [1, 2, 3, 4, 5], + savedObjectId: 'timeline-1', // match timelineId in mocked notes data + pinnedEventIds: { '1': true }, + }, + }, + }, + }; - await waitFor(() => { - expect(screen.getByTestId('tablePaginationPopoverButton')).toHaveTextContent( - 'Rows per page: 5' - ); - }); + render( + + + + ); + + expect(await screen.findByTestId('discoverDocTable')).toBeVisible(); + expect(screen.getByTestId('pagination-button-previous')).toBeVisible(); + + expect(screen.getByTestId('tablePaginationPopoverButton')).toHaveTextContent( + 'Rows per page: 1' + ); expect(screen.getByTestId('pagination-button-0')).toHaveAttribute('aria-current', 'true'); - expect(screen.getByTestId('pagination-button-6')).toBeVisible(); + expect(screen.getByTestId('pagination-button-4')).toBeVisible(); + expect(screen.queryByTestId('pagination-button-5')).toBeNull(); - fireEvent.click(screen.getByTestId('pagination-button-6')); + fireEvent.click(screen.getByTestId('pagination-button-4')); await waitFor(() => { - expect(screen.getByTestId('pagination-button-6')).toHaveAttribute('aria-current', 'true'); + expect(screen.getByTestId('pagination-button-4')).toHaveAttribute('aria-current', 'true'); }); }, SPECIAL_TEST_TIMEOUT @@ -349,13 +382,45 @@ describe('query tab with unified timeline', () => { it( 'should load more records according to sample size correctly', async () => { - renderTestComponents(); + const mockStateWithNoteInTimeline = { + ...mockGlobalState, + timeline: { + ...mockGlobalState.timeline, + timelineById: { + [TimelineId.test]: { + ...mockGlobalState.timeline.timelineById[TimelineId.test], + itemsPerPage: 1, + /* + * `sampleSize` is the max number of records that are fetched from elasticsearch + * in one request. If hits > sampleSize, you can fetch more records ( <= sampleSize) + */ + sampleSize: 5, + itemsPerPageOptions: [1, 2, 3, 4, 5], + savedObjectId: 'timeline-1', // match timelineId in mocked notes data + pinnedEventIds: { '1': true }, + }, + }, + }, + }; + + render( + + + + ); + + expect(await screen.findByTestId('discoverDocTable')).toBeVisible(); + await waitFor(() => { expect(screen.getByTestId('pagination-button-0')).toHaveAttribute('aria-current', 'true'); - expect(screen.getByTestId('pagination-button-6')).toBeVisible(); + expect(screen.getByTestId('pagination-button-4')).toBeVisible(); }); // Go to last page - fireEvent.click(screen.getByTestId('pagination-button-6')); + fireEvent.click(screen.getByTestId('pagination-button-4')); await waitFor(() => { expect(screen.getByTestId('dscGridSampleSizeFetchMoreLink')).toBeVisible(); }); From 1ab1add68e15b4a227209952c6ab69b0f96ca456 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Mon, 7 Oct 2024 14:21:09 +0200 Subject: [PATCH 15/62] [KB] create `@kbn/product-doc-artifact-builder` package (#193847) ## Summary Related https://github.com/elastic/kibana/issues/193473 Add initial implementation of the knowledge base artifact builder. This PR only introduces the builder script, it doesn't do anything about automation. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Elastic Machine --- .github/CODEOWNERS | 1 + package.json | 1 + scripts/build_product_doc_artifacts.js | 11 ++ src/dev/precommit_hook/casing_check_config.js | 1 + tsconfig.base.json | 4 +- .../product-doc-artifact-builder/README.md | 3 + .../product-doc-artifact-builder/index.ts | 8 + .../jest.config.js | 12 ++ .../product-doc-artifact-builder/kibana.jsonc | 6 + .../product-doc-artifact-builder/package.json | 6 + .../src/artifact/artifact_name.ts | 16 ++ .../src/artifact/manifest.ts | 26 +++ .../src/artifact/mappings.ts | 39 +++++ .../src/artifact/product_name.ts | 11 ++ .../src/build_artifacts.ts | 161 ++++++++++++++++++ .../src/command.ts | 97 +++++++++++ .../src/tasks/check_connectivity.ts | 18 ++ .../src/tasks/cleanup_folders.ts | 12 ++ .../src/tasks/create_artifact.ts | 51 ++++++ .../src/tasks/create_chunk_files.ts | 68 ++++++++ .../src/tasks/create_index.ts | 51 ++++++ .../src/tasks/delete_index.ts | 27 +++ .../src/tasks/extract_documentation.ts | 102 +++++++++++ .../src/tasks/index.ts | 17 ++ .../src/tasks/index_documents.ts | 50 ++++++ .../src/tasks/install_elser.ts | 74 ++++++++ .../src/tasks/perform_semantic_search.ts | 92 ++++++++++ .../product-doc-artifact-builder/src/types.ts | 19 +++ .../tsconfig.json | 20 +++ yarn.lock | 4 + 30 files changed, 1007 insertions(+), 1 deletion(-) create mode 100644 scripts/build_product_doc_artifacts.js create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/README.md create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/index.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/jest.config.js create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/kibana.jsonc create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/package.json create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/artifact_name.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/manifest.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/mappings.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/product_name.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/build_artifacts.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/command.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/check_connectivity.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/cleanup_folders.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_artifact.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_chunk_files.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_index.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/delete_index.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/extract_documentation.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index_documents.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/install_elser.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/perform_semantic_search.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/src/types.ts create mode 100644 x-pack/packages/ai-infra/product-doc-artifact-builder/tsconfig.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 66d55e6b7e7b9..af8e19d934b19 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -683,6 +683,7 @@ packages/presentation/presentation_containers @elastic/kibana-presentation src/plugins/presentation_panel @elastic/kibana-presentation packages/presentation/presentation_publishing @elastic/kibana-presentation src/plugins/presentation_util @elastic/kibana-presentation +x-pack/packages/ai-infra/product-doc-artifact-builder @elastic/appex-ai-infra x-pack/plugins/observability_solution/profiling_data_access @elastic/obs-ux-infra_services-team x-pack/plugins/observability_solution/profiling @elastic/obs-ux-infra_services-team packages/kbn-profiling-utils @elastic/obs-ux-infra_services-team diff --git a/package.json b/package.json index 41288a5a3e318..fb4b6ebcc44c9 100644 --- a/package.json +++ b/package.json @@ -1456,6 +1456,7 @@ "@kbn/picomatcher": "link:packages/kbn-picomatcher", "@kbn/plugin-generator": "link:packages/kbn-plugin-generator", "@kbn/plugin-helpers": "link:packages/kbn-plugin-helpers", + "@kbn/product-doc-artifact-builder": "link:x-pack/packages/ai-infra/product-doc-artifact-builder", "@kbn/repo-file-maps": "link:packages/kbn-repo-file-maps", "@kbn/repo-linter": "link:packages/kbn-repo-linter", "@kbn/repo-path": "link:packages/kbn-repo-path", diff --git a/scripts/build_product_doc_artifacts.js b/scripts/build_product_doc_artifacts.js new file mode 100644 index 0000000000000..0d6bea2a6e775 --- /dev/null +++ b/scripts/build_product_doc_artifacts.js @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +require('../src/setup_node_env'); +require('@kbn/product-doc-artifact-builder').runScript(); diff --git a/src/dev/precommit_hook/casing_check_config.js b/src/dev/precommit_hook/casing_check_config.js index 1ddf99b0a1d49..2eaeb64f8be5f 100644 --- a/src/dev/precommit_hook/casing_check_config.js +++ b/src/dev/precommit_hook/casing_check_config.js @@ -116,6 +116,7 @@ export const IGNORE_DIRECTORY_GLOBS = [ 'src/babel-*', 'packages/*', 'packages/core/*/*', + 'x-pack/packages/ai-infra/*', 'packages/kbn-pm/src/utils/__fixtures__/*', 'packages/kbn-check-prod-native-modules-cli/integration_tests/__fixtures__/*/node_modules/*', 'x-pack/dev-tools', diff --git a/tsconfig.base.json b/tsconfig.base.json index 936c60930d262..3df30d9cf8c30 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1360,6 +1360,8 @@ "@kbn/presentation-publishing/*": ["packages/presentation/presentation_publishing/*"], "@kbn/presentation-util-plugin": ["src/plugins/presentation_util"], "@kbn/presentation-util-plugin/*": ["src/plugins/presentation_util/*"], + "@kbn/product-doc-artifact-builder": ["x-pack/packages/ai-infra/product-doc-artifact-builder"], + "@kbn/product-doc-artifact-builder/*": ["x-pack/packages/ai-infra/product-doc-artifact-builder/*"], "@kbn/profiling-data-access-plugin": ["x-pack/plugins/observability_solution/profiling_data_access"], "@kbn/profiling-data-access-plugin/*": ["x-pack/plugins/observability_solution/profiling_data_access/*"], "@kbn/profiling-plugin": ["x-pack/plugins/observability_solution/profiling"], @@ -2078,4 +2080,4 @@ "@kbn/ambient-storybook-types" ] } -} \ No newline at end of file +} diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/README.md b/x-pack/packages/ai-infra/product-doc-artifact-builder/README.md new file mode 100644 index 0000000000000..eb64d53b5b8f7 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/README.md @@ -0,0 +1,3 @@ +# @kbn/product-doc-artifact-builder + +Script to build the knowledge base artifacts diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/index.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/index.ts new file mode 100644 index 0000000000000..c84a0a64540e9 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { runScript } from './src/command'; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/jest.config.js b/x-pack/packages/ai-infra/product-doc-artifact-builder/jest.config.js new file mode 100644 index 0000000000000..9ada1460ee7aa --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/jest.config.js @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/x-pack/packages/ai-infra/product-doc-artifact-builder'], +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/kibana.jsonc b/x-pack/packages/ai-infra/product-doc-artifact-builder/kibana.jsonc new file mode 100644 index 0000000000000..7b5a85fd5b7c8 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/kibana.jsonc @@ -0,0 +1,6 @@ +{ + "type": "shared-common", + "id": "@kbn/product-doc-artifact-builder", + "owner": "@elastic/appex-ai-infra", + "devOnly": true +} diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/package.json b/x-pack/packages/ai-infra/product-doc-artifact-builder/package.json new file mode 100644 index 0000000000000..b1a22882bb329 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/product-doc-artifact-builder", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0" +} \ No newline at end of file diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/artifact_name.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/artifact_name.ts new file mode 100644 index 0000000000000..678b17088c7b4 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/artifact_name.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const getArtifactName = ({ + productName, + productVersion, +}: { + productName: string; + productVersion: string; +}): string => { + return `kibana-kb-${productName}-${productVersion}.zip`.toLowerCase(); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/manifest.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/manifest.ts new file mode 100644 index 0000000000000..cbebcdc22981b --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/manifest.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface ArtifactManifest { + formatVersion: string; + productName: string; + productVersion: string; +} + +export const getArtifactManifest = ({ + productName, + stackVersion, +}: { + productName: string; + stackVersion: string; +}): ArtifactManifest => { + return { + formatVersion: '1.0.0', + productName, + productVersion: stackVersion, + }; +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/mappings.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/mappings.ts new file mode 100644 index 0000000000000..ae84ae60616a3 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/mappings.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/types'; + +export const getArtifactMappings = (inferenceEndpoint: string): MappingTypeMapping => { + return { + dynamic: 'strict', + properties: { + content_title: { type: 'text' }, + content_body: { + type: 'semantic_text', + inference_id: inferenceEndpoint, + }, + product_name: { type: 'keyword' }, + root_type: { type: 'keyword' }, + slug: { type: 'keyword' }, + url: { type: 'keyword' }, + version: { type: 'version' }, + ai_subtitle: { + type: 'semantic_text', + inference_id: inferenceEndpoint, + }, + ai_summary: { + type: 'semantic_text', + inference_id: inferenceEndpoint, + }, + ai_questions_answered: { + type: 'semantic_text', + inference_id: inferenceEndpoint, + }, + ai_tags: { type: 'keyword' }, + }, + }; +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/product_name.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/product_name.ts new file mode 100644 index 0000000000000..cfcc141323f4f --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/artifact/product_name.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/** + * The allowed product names, as found in the source's cluster + */ +export const sourceProductNames = ['Kibana', 'Elasticsearch', 'Security', 'Observability']; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/build_artifacts.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/build_artifacts.ts new file mode 100644 index 0000000000000..bbde3310f8e3a --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/build_artifacts.ts @@ -0,0 +1,161 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Path from 'path'; +import { Client } from '@elastic/elasticsearch'; +import { ToolingLog } from '@kbn/tooling-log'; +import { + // checkConnectivity, + createTargetIndex, + extractDocumentation, + indexDocuments, + installElser, + createChunkFiles, + createArtifact, + cleanupFolders, + deleteIndex, +} from './tasks'; +import type { TaskConfig } from './types'; + +const getSourceClient = (config: TaskConfig) => { + return new Client({ + compression: true, + nodes: [config.sourceClusterUrl], + sniffOnStart: false, + auth: { + username: config.sourceClusterUsername, + password: config.sourceClusterPassword, + }, + }); +}; + +const getEmbeddingClient = (config: TaskConfig) => { + return new Client({ + compression: true, + nodes: [config.embeddingClusterUrl], + auth: { + username: config.embeddingClusterUsername, + password: config.embeddingClusterPassword, + }, + // generating embeddings takes time + requestTimeout: 10 * 60 * 1000, + }); +}; + +export const buildArtifacts = async (config: TaskConfig) => { + const log = new ToolingLog({ + level: 'info', + writeTo: process.stdout, + }); + + log.info( + `Starting building artifacts for version=[${ + config.stackVersion + }] and products=[${config.productNames.join(',')}]` + ); + + const sourceClient = getSourceClient(config); + const embeddingClient = getEmbeddingClient(config); + + // log.info('Checking connectivity against clusters'); + // await checkConnectivity({ sourceClient, embeddingClient }); + + await cleanupFolders({ folders: [config.buildFolder] }); + + log.info('Ensuring ELSER is installed on the embedding cluster'); + await installElser({ client: embeddingClient }); + + for (const productName of config.productNames) { + await buildArtifact({ + productName, + stackVersion: config.stackVersion, + buildFolder: config.buildFolder, + targetFolder: config.targetFolder, + sourceClient, + embeddingClient, + log, + }); + } + + await cleanupFolders({ folders: [config.buildFolder] }); +}; + +const buildArtifact = async ({ + productName, + stackVersion, + buildFolder, + targetFolder, + embeddingClient, + sourceClient, + log, +}: { + productName: string; + stackVersion: string; + buildFolder: string; + targetFolder: string; + sourceClient: Client; + embeddingClient: Client; + log: ToolingLog; +}) => { + log.info(`Starting building artifact for product [${productName}] and version [${stackVersion}]`); + + const targetIndex = getTargetIndexName({ productName, stackVersion }); + + const documents = await extractDocumentation({ + client: sourceClient, + index: 'search-docs-1', + log, + productName, + stackVersion, + }); + + await createTargetIndex({ + client: embeddingClient, + indexName: targetIndex, + }); + + await indexDocuments({ + client: embeddingClient, + index: targetIndex, + documents, + log, + }); + + await createChunkFiles({ + index: targetIndex, + client: embeddingClient, + productName, + destFolder: Path.join(buildFolder, productName), + log, + }); + + await createArtifact({ + buildFolder: Path.join(buildFolder, productName), + targetFolder, + productName, + stackVersion, + log, + }); + + await deleteIndex({ + indexName: targetIndex, + client: embeddingClient, + log, + }); + + log.info(`Finished building artifact for product [${productName}] and version [${stackVersion}]`); +}; + +const getTargetIndexName = ({ + productName, + stackVersion, +}: { + productName: string; + stackVersion: string; +}) => { + return `kb-artifact-builder-${productName}-${stackVersion}`.toLowerCase(); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/command.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/command.ts new file mode 100644 index 0000000000000..49af1d158db83 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/command.ts @@ -0,0 +1,97 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Path from 'path'; +import { REPO_ROOT } from '@kbn/repo-info'; +import yargs from 'yargs'; +import type { TaskConfig } from './types'; +import { buildArtifacts } from './build_artifacts'; +import { sourceProductNames } from './artifact/product_name'; + +function options(y: yargs.Argv) { + return y + .option('productName', { + describe: 'name of products to generate documentation for', + array: true, + choices: sourceProductNames, + default: ['Kibana'], + }) + .option('stackVersion', { + describe: 'The stack version to generate documentation for', + string: true, + default: '8.16', // TODO: master is on 9.0 now, not sure we can default to version in package.json? + }) + .option('targetFolder', { + describe: 'The folder to generate the artifacts in', + string: true, + default: Path.join(REPO_ROOT, 'build', 'kb-artifacts'), + }) + .option('buildFolder', { + describe: 'The folder to use for temporary files', + string: true, + default: Path.join(REPO_ROOT, 'build', 'temp-kb-artifacts'), + }) + .option('sourceClusterUrl', { + describe: 'The source cluster url', + string: true, + demandOption: true, + default: process.env.KIBANA_SOURCE_CLUSTER_URL, + }) + .option('sourceClusterUsername', { + describe: 'The source cluster username', + string: true, + demandOption: true, + default: process.env.KIBANA_SOURCE_CLUSTER_USERNAME, + }) + .option('sourceClusterPassword', { + describe: 'The source cluster password', + string: true, + demandOption: true, + default: process.env.KIBANA_SOURCE_CLUSTER_PASSWORD, + }) + .option('embeddingClusterUrl', { + describe: 'The embedding cluster url', + string: true, + demandOption: true, + default: process.env.KIBANA_EMBEDDING_CLUSTER_URL, + }) + .option('embeddingClusterUsername', { + describe: 'The embedding cluster username', + string: true, + demandOption: true, + default: process.env.KIBANA_EMBEDDING_CLUSTER_USERNAME, + }) + .option('embeddingClusterPassword', { + describe: 'The embedding cluster password', + string: true, + demandOption: true, + default: process.env.KIBANA_EMBEDDING_CLUSTER_PASSWORD, + }) + .locale('en'); +} + +export function runScript() { + yargs(process.argv.slice(2)) + .command('*', 'Build knowledge base artifacts', options, async (argv) => { + // argv contains additional entries - let's keep our input clear + const taskConfig: TaskConfig = { + productNames: argv.productName, + stackVersion: argv.stackVersion, + buildFolder: argv.buildFolder, + targetFolder: argv.targetFolder, + sourceClusterUrl: argv.sourceClusterUrl!, + sourceClusterUsername: argv.sourceClusterUsername!, + sourceClusterPassword: argv.sourceClusterPassword!, + embeddingClusterUrl: argv.embeddingClusterUrl!, + embeddingClusterUsername: argv.embeddingClusterUsername!, + embeddingClusterPassword: argv.embeddingClusterPassword!, + }; + + return buildArtifacts(taskConfig); + }) + .parse(); +} diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/check_connectivity.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/check_connectivity.ts new file mode 100644 index 0000000000000..aaf2be6bf12e5 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/check_connectivity.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; + +export const checkConnectivity = async ({ + sourceClient, + embeddingClient, +}: { + sourceClient: Client; + embeddingClient: Client; +}) => { + await Promise.all([sourceClient.ping(), embeddingClient.ping()]); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/cleanup_folders.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/cleanup_folders.ts new file mode 100644 index 0000000000000..3ae364d61f20e --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/cleanup_folders.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { rm } from 'fs/promises'; + +export const cleanupFolders = async ({ folders }: { folders: string[] }) => { + await Promise.all(folders.map((folder) => rm(folder, { recursive: true, force: true }))); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_artifact.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_artifact.ts new file mode 100644 index 0000000000000..343099876585a --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_artifact.ts @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Path from 'path'; +import AdmZip from 'adm-zip'; +import type { ToolingLog } from '@kbn/tooling-log'; +import { getArtifactMappings } from '../artifact/mappings'; +import { getArtifactManifest } from '../artifact/manifest'; +import { getArtifactName } from '../artifact/artifact_name'; + +export const createArtifact = async ({ + productName, + stackVersion, + buildFolder, + targetFolder, + log, +}: { + buildFolder: string; + targetFolder: string; + productName: string; + stackVersion: string; + log: ToolingLog; +}) => { + log.info( + `Starting to create artifact from build folder [${buildFolder}] into target [${targetFolder}]` + ); + + const zip = new AdmZip(); + + const mappings = getArtifactMappings('.default-elser'); + const mappingFileContent = JSON.stringify(mappings, undefined, 2); + zip.addFile('mappings.json', Buffer.from(mappingFileContent, 'utf-8')); + + const manifest = getArtifactManifest({ productName, stackVersion }); + const manifestFileContent = JSON.stringify(manifest, undefined, 2); + zip.addFile('manifest.json', Buffer.from(manifestFileContent, 'utf-8')); + + zip.addLocalFolder(buildFolder, 'content'); + + const artifactName = getArtifactName({ + productName, + productVersion: stackVersion, + }); + zip.writeZip(Path.join(targetFolder, artifactName)); + + log.info(`Finished creating artifact [${artifactName}]`); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_chunk_files.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_chunk_files.ts new file mode 100644 index 0000000000000..8b0e7323c2886 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_chunk_files.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Path from 'path'; +import Fs from 'fs/promises'; +import type { Client } from '@elastic/elasticsearch'; +import type { ToolingLog } from '@kbn/tooling-log'; + +const fileSizeLimit = 250_000; + +export const createChunkFiles = async ({ + index, + productName, + destFolder, + client, + log, +}: { + index: string; + productName: string; + destFolder: string; + client: Client; + log: ToolingLog; +}) => { + log.info(`Starting to create chunk files in directory [${destFolder}]`); + + const searchRes = await client.search({ + index, + size: 10000, + query: { + bool: { + must: [{ term: { product_name: productName } }], + }, + }, + }); + + await Fs.mkdir(destFolder, { recursive: true }); + + let chunkNumber = 1; + let chunkDocCount = 0; + let chunkContent: string = ''; + + const writeCurrentChunk = async () => { + const chunkFileName = `content-${chunkNumber}.ndjson`; + log.info(`Writing chunk file ${chunkFileName} containing ${chunkDocCount} docs`); + await Fs.writeFile(Path.join(destFolder, chunkFileName), chunkContent); + chunkContent = ''; + chunkDocCount = 0; + chunkNumber++; + }; + + for (let i = 0; i < searchRes.hits.hits.length; i++) { + const hit = searchRes.hits.hits[i]; + chunkContent += JSON.stringify(hit._source) + '\n'; + chunkDocCount++; + if ( + Buffer.byteLength(chunkContent, 'utf8') > fileSizeLimit || + i === searchRes.hits.hits.length - 1 + ) { + await writeCurrentChunk(); + } + } + + log.info(`Finished creating chunk files`); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_index.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_index.ts new file mode 100644 index 0000000000000..e4f24725883ab --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/create_index.ts @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; +import type { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/types'; + +const mappings: MappingTypeMapping = { + dynamic: 'strict', + properties: { + content_title: { type: 'text' }, + content_body: { + type: 'semantic_text', + inference_id: 'kibana-elser2', + }, + product_name: { type: 'keyword' }, + root_type: { type: 'keyword' }, + slug: { type: 'keyword' }, + url: { type: 'keyword' }, + version: { type: 'version' }, + ai_subtitle: { + type: 'semantic_text', + inference_id: 'kibana-elser2', + }, + ai_summary: { + type: 'semantic_text', + inference_id: 'kibana-elser2', + }, + ai_questions_answered: { + type: 'semantic_text', + inference_id: 'kibana-elser2', + }, + ai_tags: { type: 'keyword' }, + }, +}; + +export const createTargetIndex = async ({ + indexName, + client, +}: { + indexName: string; + client: Client; +}) => { + await client.indices.create({ + index: indexName, + mappings, + }); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/delete_index.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/delete_index.ts new file mode 100644 index 0000000000000..6daacae1f92de --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/delete_index.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; +import type { ToolingLog } from '@kbn/tooling-log'; + +export const deleteIndex = async ({ + indexName, + client, + log, +}: { + indexName: string; + client: Client; + log: ToolingLog; +}) => { + log.info(`Deleting index ${indexName}`); + await client.indices.delete( + { + index: indexName, + }, + { ignore: [404] } + ); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/extract_documentation.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/extract_documentation.ts new file mode 100644 index 0000000000000..f1dd051394bbd --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/extract_documentation.ts @@ -0,0 +1,102 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; +import type { SearchHit } from '@elastic/elasticsearch/lib/api/types'; +import type { ToolingLog } from '@kbn/tooling-log'; + +/** the list of fields to import from the source cluster */ +const fields = [ + 'content_title', + 'content_body', + 'product_name', // "Kibana", "Elasticsearch" + 'category', // "documentation" + 'slug', + 'url', + 'version', + 'ai_fields.ai_subtitle', + 'ai_fields.ai_summary', + 'ai_fields.ai_questions_answered', + 'ai_fields.ai_tags', +]; + +export interface ExtractedDocument { + content_title: string; + content_body: string; + product_name: string; + root_type: string; + slug: string; + url: string; + version: string; + ai_subtitle: string; + ai_summary: string; + ai_questions_answered: string[]; + ai_tags: string[]; +} + +const convertHit = (hit: SearchHit): ExtractedDocument => { + const source = hit._source; + return { + content_title: source.content_title, + content_body: source.content_body, + product_name: source.product_name, + root_type: 'documentation', + slug: source.slug, + url: source.url, + version: source.version, + ai_subtitle: source.ai_fields.ai_subtitle, + ai_summary: source.ai_fields.ai_summary, + ai_questions_answered: source.ai_fields.ai_questions_answered, + ai_tags: source.ai_fields.ai_tags, + }; +}; + +export const extractDocumentation = async ({ + client, + index, + stackVersion, + productName, + log, +}: { + client: Client; + index: string; + stackVersion: string; + productName: string; + log: ToolingLog; +}) => { + log.info(`Starting to extract documents from source cluster`); + + const response = await client.search({ + index, + size: 10000, + query: { + bool: { + must: [ + { term: { product_name: productName } }, + { term: { version: stackVersion } }, + { exists: { field: 'ai_fields.ai_summary' } }, + ], + }, + }, + fields, + }); + + const totalHits = + typeof response.hits.total === 'number' + ? response.hits.total // This format is to be removed in 8.0 + : response.hits.total?.value ?? response.hits.hits.length; + + if (totalHits > 10_000) { + throw new Error('Found more than 10k documents to extract - aborting'); + } + + log.info( + `Finished extracting documents from source. ${response.hits.hits.length} documents were extracted` + ); + + return response.hits.hits.map(convertHit); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index.ts new file mode 100644 index 0000000000000..0c63431362329 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { extractDocumentation } from './extract_documentation'; +export { indexDocuments } from './index_documents'; +export { createTargetIndex } from './create_index'; +export { installElser } from './install_elser'; +export { createChunkFiles } from './create_chunk_files'; +export { performSemanticSearch } from './perform_semantic_search'; +export { checkConnectivity } from './check_connectivity'; +export { createArtifact } from './create_artifact'; +export { cleanupFolders } from './cleanup_folders'; +export { deleteIndex } from './delete_index'; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index_documents.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index_documents.ts new file mode 100644 index 0000000000000..120d71e3f2947 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/index_documents.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { chunk as toChunks } from 'lodash'; +import type { Client } from '@elastic/elasticsearch'; +import type { BulkRequest } from '@elastic/elasticsearch/lib/api/types'; +import type { ToolingLog } from '@kbn/tooling-log'; +import type { ExtractedDocument } from './extract_documentation'; + +const indexingChunkSize = 10; + +export const indexDocuments = async ({ + index, + client, + documents, + log, +}: { + index: string; + documents: ExtractedDocument[]; + client: Client; + log: ToolingLog; +}) => { + const chunks = toChunks(documents, indexingChunkSize); + + log.info(`Starting indexing process`); + + for (let i = 0; i < chunks.length; i++) { + const chunk = chunks[i]; + const before = Date.now(); + await client.bulk( + { + refresh: 'wait_for', + operations: chunk.reduce((operations, document) => { + operations!.push(...[{ index: { _index: index } }, document]); + return operations; + }, [] as BulkRequest['operations']), + }, + { requestTimeout: 10 * 60 * 1000 } + ); + + const duration = Date.now() - before; + log.info(`Indexed ${i + 1} of ${chunks.length} chunks (took ${duration}ms)`); + } + + log.info(`Finished indexing process`); +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/install_elser.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/install_elser.ts new file mode 100644 index 0000000000000..037a9e809d1e1 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/install_elser.ts @@ -0,0 +1,74 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; + +const inferenceEndpointId = 'kibana-elser2'; + +export const installElser = async ({ client }: { client: Client }) => { + const getInferenceRes = await client.inference.get( + { + task_type: 'sparse_embedding', + inference_id: 'kibana-elser2', + }, + { ignore: [404] } + ); + + const installed = (getInferenceRes.endpoints ?? []).some( + (endpoint) => endpoint.inference_id === inferenceEndpointId + ); + + if (!installed) { + await client.inference.put({ + task_type: 'sparse_embedding', + inference_id: inferenceEndpointId, + inference_config: { + service: 'elser', + service_settings: { + num_allocations: 1, + num_threads: 1, + model_id: '.elser_model_2', + }, + task_settings: {}, + }, + }); + } + + await waitUntilDeployed({ + modelId: '.elser_model_2', + client, + }); +}; + +const waitUntilDeployed = async ({ + modelId, + client, + maxRetries = 20, + delay = 2000, +}: { + modelId: string; + client: Client; + maxRetries?: number; + delay?: number; +}) => { + for (let i = 0; i < maxRetries; i++) { + const statsRes = await client.ml.getTrainedModelsStats({ + model_id: modelId, + }); + const deploymentStats = statsRes.trained_model_stats[0]?.deployment_stats; + // @ts-expect-error deploymentStats.nodes not defined as array even if it is. + if (!deploymentStats || deploymentStats.nodes.length === 0) { + await sleep(delay); + continue; + } + return; + } + + throw new Error(`Timeout waiting for ML model ${modelId} to be deployed`); +}; + +const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/perform_semantic_search.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/perform_semantic_search.ts new file mode 100644 index 0000000000000..373a6b8755429 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/tasks/perform_semantic_search.ts @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; + +// https://search-labs.elastic.co/search-labs/blog/elser-rag-search-for-relevance + +export const performSemanticSearch = async ({ + searchQuery, + index, + client, +}: { + searchQuery: string; + index: string; + client: Client; +}) => { + const results = await client.search({ + index, + size: 3, + query: { + bool: { + filter: { + bool: { + must: [{ term: { version: '8.15' } }], + }, + }, + should: [ + { + multi_match: { + query: searchQuery, + minimum_should_match: '1<-1 3<49%', + type: 'cross_fields', + fields: [ + 'content_title', + 'content_body.text', + 'ai_subtitle.text', + 'ai_summary.text', + 'ai_questions_answered.text', + 'ai_tags', + ], + }, + }, + { + multi_match: { + query: searchQuery, + type: 'phrase', + boost: 3, + slop: 0, + fields: [ + 'content_title.stem', + 'content_body.stem', + 'ai_subtitle.stem', + 'ai_summary.stem', + 'ai_questions_answered.stem', + ], + }, + }, + { + semantic: { + field: 'content_body', + query: searchQuery, + }, + }, + { + semantic: { + field: 'ai_subtitle', + query: searchQuery, + }, + }, + { + semantic: { + field: 'ai_summary', + query: searchQuery, + }, + }, + { + semantic: { + field: 'ai_questions_answered', + query: searchQuery, + }, + }, + ], + }, + }, + }); + + return results.hits.hits; +}; diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/src/types.ts b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/types.ts new file mode 100644 index 0000000000000..d2acfb5774500 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/src/types.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface TaskConfig { + productNames: string[]; + stackVersion: string; + buildFolder: string; + targetFolder: string; + sourceClusterUrl: string; + sourceClusterUsername: string; + sourceClusterPassword: string; + embeddingClusterUrl: string; + embeddingClusterUsername: string; + embeddingClusterPassword: string; +} diff --git a/x-pack/packages/ai-infra/product-doc-artifact-builder/tsconfig.json b/x-pack/packages/ai-infra/product-doc-artifact-builder/tsconfig.json new file mode 100644 index 0000000000000..508d4c715d0a7 --- /dev/null +++ b/x-pack/packages/ai-infra/product-doc-artifact-builder/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/tooling-log", + "@kbn/repo-info", + ] +} diff --git a/yarn.lock b/yarn.lock index 8b64f8660e2bc..a0aa74c80e252 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6003,6 +6003,10 @@ version "0.0.0" uid "" +"@kbn/product-doc-artifact-builder@link:x-pack/packages/ai-infra/product-doc-artifact-builder": + version "0.0.0" + uid "" + "@kbn/profiling-data-access-plugin@link:x-pack/plugins/observability_solution/profiling_data_access": version "0.0.0" uid "" From 3a3f1300a57c912b132d8063cd5a63cc498a1b71 Mon Sep 17 00:00:00 2001 From: Tre Date: Mon, 7 Oct 2024 13:22:26 +0100 Subject: [PATCH 16/62] Add param to `cmn/mgmt/data_views/_edit_field.ts` and make stateful test match (#194934) ## Summary Resolves: https://github.com/elastic/kibana/issues/194917 --- .../apps/management/data_views/_edit_field.ts | 29 +++++-------------- test/functional/page_objects/settings_page.ts | 15 ++++++++-- .../management/data_views/_edit_field.ts | 12 ++++++-- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/test/functional/apps/management/data_views/_edit_field.ts b/test/functional/apps/management/data_views/_edit_field.ts index 51ff0bb0d1019..4ebde059d9d78 100644 --- a/test/functional/apps/management/data_views/_edit_field.ts +++ b/test/functional/apps/management/data_views/_edit_field.ts @@ -7,14 +7,11 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import expect from '@kbn/expect'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); - const retry = getService('retry'); const PageObjects = getPageObjects(['settings']); - const testSubjects = getService('testSubjects'); describe('edit field', function () { before(async function () { @@ -33,29 +30,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should show preview for fields in _source', async function () { - await PageObjects.settings.filterField('extension'); - await testSubjects.click('editFieldFormat'); - await testSubjects.find('value'); - let previewText = ''; - await retry.waitForWithTimeout('get preview value', 1000, async () => { - previewText = await testSubjects.getVisibleText('value'); - return previewText !== 'Value not set'; + await PageObjects.settings.changeAndValidateFieldFormat({ + name: 'extension', + fieldType: 'text', + expectedPreviewText: 'css', }); - expect(previewText).to.be('css'); - await PageObjects.settings.closeIndexPatternFieldEditor(); }); it('should show preview for fields not in _source', async function () { - await PageObjects.settings.filterField('extension.raw'); - await testSubjects.click('editFieldFormat'); - await testSubjects.find('value'); - let previewText = ''; - await retry.waitForWithTimeout('get preview value', 1000, async () => { - previewText = await testSubjects.getVisibleText('value'); - return previewText !== 'Value not set'; + await PageObjects.settings.changeAndValidateFieldFormat({ + name: 'extension.raw', + fieldType: 'keyword', + expectedPreviewText: 'css', }); - expect(previewText).to.be('css'); - await PageObjects.settings.closeIndexPatternFieldEditor(); }); }); }); diff --git a/test/functional/page_objects/settings_page.ts b/test/functional/page_objects/settings_page.ts index 94f3b9f3e3e40..2d2f50fc9f1f1 100644 --- a/test/functional/page_objects/settings_page.ts +++ b/test/functional/page_objects/settings_page.ts @@ -1053,7 +1053,15 @@ export class SettingsPageObject extends FtrService { ); } - async changeAndValidateFieldFormat(name: string, fieldType: string) { + async changeAndValidateFieldFormat({ + name, + fieldType, + expectedPreviewText, + }: { + name: string; + fieldType: string; + expectedPreviewText: string; + }) { await this.filterField(name); await this.setFieldTypeFilter(fieldType); await this.testSubjects.click('editFieldFormat'); @@ -1062,7 +1070,10 @@ export class SettingsPageObject extends FtrService { await this.retry.tryForTime(5000, async () => { const previewText = await this.testSubjects.getVisibleText('fieldPreviewItem > value'); - expect(previewText).to.be('css'); + expect(previewText).to.eql( + expectedPreviewText, + `Expected previewText to eql [${expectedPreviewText}], but got: [${previewText}]` + ); }); await this.closeIndexPatternFieldEditor(); } diff --git a/x-pack/test_serverless/functional/test_suites/common/management/data_views/_edit_field.ts b/x-pack/test_serverless/functional/test_suites/common/management/data_views/_edit_field.ts index cd19615dc8304..7d1bdc586d681 100644 --- a/x-pack/test_serverless/functional/test_suites/common/management/data_views/_edit_field.ts +++ b/x-pack/test_serverless/functional/test_suites/common/management/data_views/_edit_field.ts @@ -30,11 +30,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); it('should show preview for fields in _source', async function () { - await PageObjects.settings.changeAndValidateFieldFormat('extension', 'text'); + await PageObjects.settings.changeAndValidateFieldFormat({ + name: 'extension', + fieldType: 'text', + expectedPreviewText: 'css', + }); }); it('should show preview for fields not in _source', async function () { - await PageObjects.settings.changeAndValidateFieldFormat('extension.raw', 'keyword'); + await PageObjects.settings.changeAndValidateFieldFormat({ + name: 'extension.raw', + fieldType: 'keyword', + expectedPreviewText: 'css', + }); }); }); }); From bff69e218aa0b776be0c90e9f1a91ba7e51551c2 Mon Sep 17 00:00:00 2001 From: Marco Antonio Ghiani Date: Mon, 7 Oct 2024 14:24:53 +0200 Subject: [PATCH 17/62] [Dataset Quality ] Apply chunking strategy for data stream stats retrieval (#194816) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 📓 Summary Closes #192169 This work fixes the issue with some requests hitting the too-long HTTP line once we combine all the dataset names into a single request. We had a suggested strategy from the work done with #171735 , but it presented a couple of problems. - The HTTP line length issue occurs for an exceeding length of the request URL, which goes over 4096 bytes (4096 characters.) This also includes the whole URL protocol, domain, path and any other parameters, so assuming that we have 4096 characters for the `index` parameter is incorrect, as we would exceed the maximum anyway in a worst-case scenario, where we have a chunk of 16 values with length 255 chars. - Always chunking the requests in groups of 16 items might not be optimal in the most common scenario where we have short data stream patterns. I opted to adopt a different chunking strategy that optimizes each chunk so that we reduce the requests triggered on the cluster to a minimum. I'll leave more notes in the code to help with the review. --------- Co-authored-by: Marco Antonio Ghiani --- .../get_data_stream_details/index.ts | 2 +- .../get_data_streams_metering_stats/index.ts | 13 ++-- .../server/services/data_stream.ts | 12 ++-- .../server/services/index_stats.ts | 7 ++- .../server/utils/reduce_async_chunks.test.ts | 58 ++++++++++++++++++ .../server/utils/reduce_async_chunks.ts | 59 +++++++++++++++++++ 6 files changed, 137 insertions(+), 14 deletions(-) create mode 100644 x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.test.ts create mode 100644 x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.ts diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts index fd117d65ac99d..eb1d70b867dc4 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_stream_details/index.ts @@ -119,7 +119,7 @@ export async function getDataStreamDetails({ } async function getDataStreamCreatedOn(esClient: ElasticsearchClient, dataStream: string) { - const indexSettings = await dataStreamService.getDataSteamIndexSettings(esClient, dataStream); + const indexSettings = await dataStreamService.getDataStreamIndexSettings(esClient, dataStream); const indexesList = Object.values(indexSettings); diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_streams_metering_stats/index.ts b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_streams_metering_stats/index.ts index bdf30533cbed9..5bd6f8b15f1c1 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_streams_metering_stats/index.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/routes/data_streams/get_data_streams_metering_stats/index.ts @@ -6,6 +6,7 @@ */ import type { ElasticsearchClient } from '@kbn/core/server'; +import { reduceAsyncChunks } from '../../../utils/reduce_async_chunks'; export interface MeteringStatsResponse { datastreams: Array<{ @@ -26,11 +27,13 @@ export async function getDataStreamsMeteringStats({ return {}; } - const { datastreams: dataStreamsStats } = await esClient.transport.request( - { - method: 'GET', - path: `/_metering/stats/` + dataStreams.join(','), - } + const { datastreams: dataStreamsStats } = await reduceAsyncChunks( + dataStreams, + (dataStreamsChunk) => + esClient.transport.request({ + method: 'GET', + path: `/_metering/stats/` + dataStreamsChunk.join(','), + }) ); return dataStreamsStats.reduce( diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/services/data_stream.ts b/x-pack/plugins/observability_solution/dataset_quality/server/services/data_stream.ts index 16b283d583fd3..1157b40936a6d 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/services/data_stream.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/services/data_stream.ts @@ -10,6 +10,7 @@ import type { IndicesDataStreamsStatsDataStreamsStatsItem, } from '@elastic/elasticsearch/lib/api/types'; import type { ElasticsearchClient } from '@kbn/core/server'; +import { reduceAsyncChunks } from '../utils/reduce_async_chunks'; class DataStreamService { public async getMatchingDataStreams( @@ -37,10 +38,11 @@ class DataStreamService { dataStreams: string[] ): Promise { try { - const { data_streams: dataStreamsStats } = await esClient.indices.dataStreamsStats({ - name: dataStreams.join(','), - human: true, - }); + const { data_streams: dataStreamsStats } = await reduceAsyncChunks( + dataStreams, + (dataStreamsChunk) => + esClient.indices.dataStreamsStats({ name: dataStreamsChunk.join(','), human: true }) + ); return dataStreamsStats; } catch (e) { @@ -51,7 +53,7 @@ class DataStreamService { } } - public async getDataSteamIndexSettings( + public async getDataStreamIndexSettings( esClient: ElasticsearchClient, dataStream: string ): Promise>> { diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/services/index_stats.ts b/x-pack/plugins/observability_solution/dataset_quality/server/services/index_stats.ts index 967a8c393bcc8..70cdb6d260afb 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/server/services/index_stats.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/server/services/index_stats.ts @@ -8,6 +8,7 @@ import { chain, sumBy } from 'lodash'; import type { ElasticsearchClient } from '@kbn/core/server'; import { extractIndexNameFromBackingIndex } from '../../common/utils'; +import { reduceAsyncChunks } from '../utils/reduce_async_chunks'; interface IndexStatsResponse { docsCountPerDataStream: { [indexName: string]: number }; @@ -19,9 +20,9 @@ class IndexStatsService { dataStreams: string[] ): Promise { try { - const index = dataStreams; - - const { indices } = await esClient.indices.stats({ index, metric: ['docs'] }); + const { indices } = await reduceAsyncChunks(dataStreams, (indexChunk) => + esClient.indices.stats({ index: indexChunk, metric: ['docs'] }) + ); const docsCountPerDataStream = chain(indices || {}) .map((indexStats, indexName) => ({ diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.test.ts b/x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.test.ts new file mode 100644 index 0000000000000..49a2ddf672d1d --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.test.ts @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { reduceAsyncChunks } from './reduce_async_chunks'; + +describe('reduceAsyncChunks', () => { + const spyChunkExecutor = jest + .fn() + .mockImplementation((chunk: string[]) => + Promise.resolve(chunk.map((str) => str.toUpperCase())) + ); + + afterEach(() => { + spyChunkExecutor.mockClear(); + }); + + it('should run a iterator mapping callback on each chunk and merge the result', async () => { + const input = Array(20).fill('logs-dataset-default'); + const expected = Array(20).fill('LOGS-DATASET-DEFAULT'); + + const res = await reduceAsyncChunks(input, spyChunkExecutor); + + expect(res).toEqual(expected); + expect(spyChunkExecutor).toHaveBeenCalledTimes(1); + }); + + it('should create chunks where the total strings length does not exceed the allowed maximum', async () => { + const input = Array(1000).fill('logs-dataset-default'); // 20k chars => 20k/3072 => Expected 7 chunks + const expected = Array(1000).fill('LOGS-DATASET-DEFAULT'); + const expectedChunks = 7; + + const res = await reduceAsyncChunks(input, spyChunkExecutor); + + expect(res).toEqual(expected); + expect(spyChunkExecutor).toHaveBeenCalledTimes(expectedChunks); + }); + + it('should maximize the chunks length the chunks count', async () => { + const input = [ + ...Array(1000).fill('logs-dataset_30letters-default'), + ...Array(1000).fill('logs-dataset-default'), + ]; // 30k chars + 20k chars + ~2k commas => 52k/3072 => Expected 17 chunks + const expected = [ + ...Array(1000).fill('LOGS-DATASET_30LETTERS-DEFAULT'), + ...Array(1000).fill('LOGS-DATASET-DEFAULT'), + ]; + const expectedChunks = 17; + + const res = await reduceAsyncChunks(input, spyChunkExecutor); + + expect(res).toEqual(expected); + expect(spyChunkExecutor).toHaveBeenCalledTimes(expectedChunks); + }); +}); diff --git a/x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.ts b/x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.ts new file mode 100644 index 0000000000000..cd47f577b46bf --- /dev/null +++ b/x-pack/plugins/observability_solution/dataset_quality/server/utils/reduce_async_chunks.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { Observable, OperatorFunction, from, lastValueFrom, mergeMap, reduce } from 'rxjs'; +import deepmerge from 'deepmerge'; + +type CallbackFn = (chunk: string[], id: number) => Promise; + +const MAX_HTTP_LINE_LENGTH = 4096; +// Apply an 80% threshold to the http line max length to guarantee enough space for url and potentially other parameters. +// This value might need to vary as it's an estimate of how much we can reserve for the chunked list length. +const MAX_CHUNK_LENGTH = MAX_HTTP_LINE_LENGTH * 0.75; // 4096 *0.75 === 3072 characters, as 1 chars = 1 byte + +export const reduceAsyncChunks = (list: string[], chunkExecutor: CallbackFn) => { + const result$ = from(list).pipe( + bufferUntil(isLessThanMaxChunkLength), + mergeMap((chunk, id) => from(chunkExecutor(chunk, id))), + reduce((result, chunkResult) => deepmerge(result, chunkResult)) + ); + + return lastValueFrom(result$); +}; + +/** + * Support functions for reduceAsyncChunks + */ +const bufferUntil = ( + predicate: (chunk: TItem[], currentItem: TItem) => boolean +): OperatorFunction => { + return (source) => + new Observable((observer) => { + let chunk: TItem[] = []; + + return source.subscribe({ + next(currentItem) { + if (predicate(chunk, currentItem)) { + chunk.push(currentItem); + } else { + // Emit the current chunk, start a new one + if (chunk.length > 0) observer.next(chunk); + chunk = [currentItem]; // Reset the chunk with the current item + } + }, + complete() { + // Emit the final chunk if it has any items + if (chunk.length > 0) observer.next(chunk); + observer.complete(); + }, + }); + }); +}; + +const isLessThanMaxChunkLength = (chunk: string[], currentItem: string) => { + const totalLength = [...chunk, currentItem].join().length; + return totalLength <= MAX_CHUNK_LENGTH; // Allow the chunk until it exceeds the max chunk length +}; From 02f277efa7470035671f67d4e86e74ea5f52838e Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 7 Oct 2024 13:41:50 +0100 Subject: [PATCH 18/62] [ML] Fix query for pattern analysis and change point analysis (#194742) Fixes https://github.com/elastic/kibana/issues/190710 Adds an additional check for `query_string` to the query creating function to adjust the query if only a single `query_string` condition is being used. This function was originally only used for pattern analysis, but has been renamed and moved to a common location so change point analysis can also use it. --- .../aiops_common/create_default_query.test.ts | 156 ++++++++++++++++++ .../create_default_query.ts} | 14 +- .../create_category_request.ts | 4 +- .../aiops_log_pattern_analysis/tsconfig.json | 1 + .../change_point_detection_context.tsx | 22 +-- .../use_validate_category_field.ts | 4 +- 6 files changed, 177 insertions(+), 24 deletions(-) create mode 100644 x-pack/packages/ml/aiops_common/create_default_query.test.ts rename x-pack/packages/ml/{aiops_log_pattern_analysis/create_categorize_query.ts => aiops_common/create_default_query.ts} (76%) diff --git a/x-pack/packages/ml/aiops_common/create_default_query.test.ts b/x-pack/packages/ml/aiops_common/create_default_query.test.ts new file mode 100644 index 0000000000000..e1fa99b70dce0 --- /dev/null +++ b/x-pack/packages/ml/aiops_common/create_default_query.test.ts @@ -0,0 +1,156 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createDefaultQuery } from './create_default_query'; + +describe('createDefaultQuery', () => { + it('should create a default match_all query when no input query is provided', () => { + const result = createDefaultQuery(undefined, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [{ match_all: {} }], + }, + }); + }); + + it('should wrap an existing match_all query in a bool must clause', () => { + const inputQuery = { match_all: {} }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [{ match_all: {} }], + }, + }); + }); + + it('should wrap an existing query_string query in a bool must clause', () => { + const inputQuery = { query_string: { query: '*' } }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [{ query_string: { query: '*' } }], + }, + }); + }); + + it('should wrap an existing multi_match query in a bool should clause', () => { + const inputQuery = { multi_match: { query: 'test', fields: ['field1', 'field2'] } }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [], + should: { multi_match: { query: 'test', fields: ['field1', 'field2'] } }, + }, + }); + }); + + it('should add a time range filter to the query', () => { + const timeRange = { from: 1609459200000, to: 1609545600000 }; + const result = createDefaultQuery(undefined, 'timestamp', timeRange); + expect(result).toEqual({ + bool: { + must: [ + { match_all: {} }, + { + range: { + timestamp: { + gte: 1609459200000, + lte: 1609545600000, + format: 'epoch_millis', + }, + }, + }, + ], + }, + }); + }); + + it('should merge existing bool query with new time range filter', () => { + const inputQuery = { bool: { must: [{ term: { field: 'value' } }] } }; + const timeRange = { from: 1609459200000, to: 1609545600000 }; + const result = createDefaultQuery(inputQuery, 'timestamp', timeRange); + expect(result).toEqual({ + bool: { + must: [ + { term: { field: 'value' } }, + { + range: { + timestamp: { + gte: 1609459200000, + lte: 1609545600000, + format: 'epoch_millis', + }, + }, + }, + ], + }, + }); + }); + + it('should handle an existing bool query with must clause', () => { + const inputQuery = { bool: { must: [{ term: { field: 'value' } }] } }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [{ term: { field: 'value' } }], + }, + }); + }); + + it('should handle an existing bool query with should clause', () => { + const inputQuery = { bool: { should: [{ term: { field: 'value' } }] } }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [], + should: [{ term: { field: 'value' } }], + }, + }); + }); + + it('should handle an existing bool query with must_not clause', () => { + const inputQuery = { bool: { must_not: [{ term: { field: 'value' } }] } }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [], + must_not: [{ term: { field: 'value' } }], + }, + }); + }); + + it('should handle an existing bool query with filter clause', () => { + const inputQuery = { bool: { filter: [{ term: { field: 'value' } }] } }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [], + filter: [{ term: { field: 'value' } }], + }, + }); + }); + + it('should handle an input query with multiple clauses', () => { + const inputQuery = { + bool: { + must: [{ term: { field1: 'value1' } }], + should: [{ term: { field2: 'value2' } }], + must_not: [{ term: { field3: 'value3' } }], + filter: [{ term: { field4: 'value4' } }], + }, + }; + const result = createDefaultQuery(inputQuery, 'timestamp', undefined); + expect(result).toEqual({ + bool: { + must: [{ term: { field1: 'value1' } }], + should: [{ term: { field2: 'value2' } }], + must_not: [{ term: { field3: 'value3' } }], + filter: [{ term: { field4: 'value4' } }], + }, + }); + }); +}); diff --git a/x-pack/packages/ml/aiops_log_pattern_analysis/create_categorize_query.ts b/x-pack/packages/ml/aiops_common/create_default_query.ts similarity index 76% rename from x-pack/packages/ml/aiops_log_pattern_analysis/create_categorize_query.ts rename to x-pack/packages/ml/aiops_common/create_default_query.ts index c3289d1527f2b..39cfafff4097b 100644 --- a/x-pack/packages/ml/aiops_log_pattern_analysis/create_categorize_query.ts +++ b/x-pack/packages/ml/aiops_common/create_default_query.ts @@ -7,9 +7,12 @@ import { cloneDeep } from 'lodash'; -import type { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; +import type { + QueryDslBoolQuery, + QueryDslQueryContainer, +} from '@elastic/elasticsearch/lib/api/types'; -export function createCategorizeQuery( +export function createDefaultQuery( queryIn: QueryDslQueryContainer | undefined, timeField: string, timeRange: { from: number; to: number } | undefined @@ -17,14 +20,19 @@ export function createCategorizeQuery( const query = cloneDeep(queryIn ?? { match_all: {} }); if (query.bool === undefined) { - query.bool = {}; + query.bool = Object.create(null) as QueryDslBoolQuery; } + if (query.bool.must === undefined) { query.bool.must = []; if (query.match_all !== undefined) { query.bool.must.push({ match_all: query.match_all }); delete query.match_all; } + if (query.query_string !== undefined) { + query.bool.must.push({ query_string: query.query_string }); + delete query.query_string; + } } if (query.multi_match !== undefined) { query.bool.should = { diff --git a/x-pack/packages/ml/aiops_log_pattern_analysis/create_category_request.ts b/x-pack/packages/ml/aiops_log_pattern_analysis/create_category_request.ts index c3556803745a7..c1d6f82c9e582 100644 --- a/x-pack/packages/ml/aiops_log_pattern_analysis/create_category_request.ts +++ b/x-pack/packages/ml/aiops_log_pattern_analysis/create_category_request.ts @@ -14,7 +14,7 @@ import { isPopulatedObject } from '@kbn/ml-is-populated-object/src/is_populated_ import type { createRandomSamplerWrapper } from '@kbn/ml-random-sampler-utils'; -import { createCategorizeQuery } from './create_categorize_query'; +import { createDefaultQuery } from '@kbn/aiops-common/create_default_query'; const CATEGORY_LIMIT = 1000; const EXAMPLE_LIMIT = 4; @@ -38,7 +38,7 @@ export function createCategoryRequest( useStandardTokenizer: boolean = true, includeSparkline: boolean = true ) { - const query = createCategorizeQuery(queryIn, timeField, timeRange); + const query = createDefaultQuery(queryIn, timeField, timeRange); const aggs = { categories: { categorize_text: { diff --git a/x-pack/packages/ml/aiops_log_pattern_analysis/tsconfig.json b/x-pack/packages/ml/aiops_log_pattern_analysis/tsconfig.json index fb51a4d8c1b30..fe2542b34c5e9 100644 --- a/x-pack/packages/ml/aiops_log_pattern_analysis/tsconfig.json +++ b/x-pack/packages/ml/aiops_log_pattern_analysis/tsconfig.json @@ -23,5 +23,6 @@ "@kbn/saved-search-plugin", "@kbn/data-views-plugin", "@kbn/ml-is-populated-object", + "@kbn/aiops-common", ] } diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx index 2a9ab8d535fa1..45ef73c5dd7b5 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx @@ -16,6 +16,7 @@ import { ES_FIELD_TYPES } from '@kbn/field-types'; import { type QueryDslQueryContainer } from '@kbn/data-views-plugin/common/types'; import type { TimeBuckets, TimeBucketsInterval } from '@kbn/ml-time-buckets'; import { useTimeBuckets } from '@kbn/ml-time-buckets'; +import { createDefaultQuery } from '@kbn/aiops-common/create_default_query'; import { useFilterQueryUpdates } from '../../hooks/use_filters_query'; import { type ChangePointType, DEFAULT_AGG_FUNCTION } from './constants'; import { @@ -261,23 +262,10 @@ export const ChangePointDetectionContextProvider: FC> const combinedQuery = useMemo(() => { const mergedQuery = createMergedEsQuery(resultQuery, resultFilters, dataView, uiSettings); - if (!Array.isArray(mergedQuery.bool?.filter)) { - if (!mergedQuery.bool) { - mergedQuery.bool = {}; - } - mergedQuery.bool.filter = []; - } - - mergedQuery.bool!.filter.push({ - range: { - [dataView.timeFieldName!]: { - from: searchBounds.min?.valueOf(), - to: searchBounds.max?.valueOf(), - }, - }, - }); - - return mergedQuery; + const to = searchBounds.max?.valueOf(); + const from = searchBounds.min?.valueOf(); + const timeRange = to !== undefined && from !== undefined ? { from, to } : undefined; + return createDefaultQuery(mergedQuery, dataView.timeFieldName!, timeRange); }, [resultFilters, resultQuery, uiSettings, dataView, searchBounds]); if (!bucketInterval) return null; diff --git a/x-pack/plugins/aiops/public/components/log_categorization/use_validate_category_field.ts b/x-pack/plugins/aiops/public/components/log_categorization/use_validate_category_field.ts index edf055635f82a..571bb3d1e0f87 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/use_validate_category_field.ts +++ b/x-pack/plugins/aiops/public/components/log_categorization/use_validate_category_field.ts @@ -14,7 +14,7 @@ import type { FieldValidationResults } from '@kbn/ml-category-validator'; import type { HttpFetchOptions } from '@kbn/core/public'; import { AIOPS_API_ENDPOINT } from '@kbn/aiops-common/constants'; -import { createCategorizeQuery } from '@kbn/aiops-log-pattern-analysis/create_categorize_query'; +import { createDefaultQuery } from '@kbn/aiops-common/create_default_query'; import { useAiopsAppContext } from '../../hooks/use_aiops_app_context'; @@ -32,7 +32,7 @@ export function useValidateFieldRequest() { runtimeMappings: MappingRuntimeFields | undefined, headers?: HttpFetchOptions['headers'] ) => { - const query = createCategorizeQuery(queryIn, timeField, timeRange); + const query = createDefaultQuery(queryIn, timeField, timeRange); const resp = await http.post( AIOPS_API_ENDPOINT.CATEGORIZATION_FIELD_VALIDATION, { From 2881b0423d099649243ee01887f27a1fb6dbffe7 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 7 Oct 2024 14:35:25 +0100 Subject: [PATCH 19/62] [ML] Daylight saving time calendar events (#193605) Adds new pages for creating and managing DST calendars. Closes https://github.com/elastic/kibana/issues/189469 New section added to Settings home page. ![image](https://github.com/user-attachments/assets/9165906f-e571-46be-a5ac-bf7dc9cd2801) New page for listing DST calendars. The original calendar page does not show DST calendars. ![image](https://github.com/user-attachments/assets/32a64a31-b4e5-4516-85fd-19e63aa9d5c4) New page for creating DST calendars. The ability to apply to all jobs and add a description has been removed. It is not possible manually add events. Events are automatically generated for a selected time zone. image If the selected time zone does not observe daylight savings, an info callout is displayed image A new DST calendar section is added to all AD job wizards. ![image](https://github.com/user-attachments/assets/6359192b-faac-4ffb-ad3e-b8193f40f02f) --- x-pack/plugins/ml/common/constants/locator.ts | 3 + x-pack/plugins/ml/common/types/calendars.ts | 18 +- x-pack/plugins/ml/common/types/locator.ts | 11 + .../new_job/common/job_creator/job_creator.ts | 8 +- .../additional_section/additional_section.tsx | 6 +- .../calendars/calendars_selection.tsx | 42 ++- .../components/calendars/description_dst.tsx | 51 ++++ .../public/application/routing/breadcrumbs.ts | 9 + .../routing/routes/settings/calendar_list.tsx | 23 +- .../routes/settings/calendar_new_edit.tsx | 58 ++++- .../application/routing/use_active_route.tsx | 9 +- .../application/services/calendar_service.ts | 6 +- .../services/ml_api_service/index.ts | 10 +- .../settings/anomaly_detection_settings.tsx | 84 +++++- .../settings/calendars/dst_utils.test.ts | 81 ++++++ .../settings/calendars/dst_utils.ts | 153 +++++++++++ .../__snapshots__/calendar_form.test.js.snap | 32 +-- .../edit/calendar_form/calendar_form.test.js | 4 + .../{calendar_form.js => calendar_form.tsx} | 239 +++++++++++------- .../calendar_form/dst_event_generator.tsx | 107 ++++++++ .../edit/calendar_form/{index.js => index.ts} | 0 .../__snapshots__/events_table.test.js.snap | 20 +- .../edit/events_table/events_table.test.js | 4 + .../{events_table.js => events_table.tsx} | 155 ++++++++---- .../edit/events_table/{index.js => index.ts} | 0 .../edit/import_modal/import_modal.test.js | 4 + .../imported_events.test.js.snap | 3 - .../settings/calendars/edit/new_calendar.d.ts | 3 +- .../settings/calendars/edit/new_calendar.js | 37 ++- .../calendars/edit/new_calendar.test.js | 32 +-- .../calendars/edit/{utils.js => utils.ts} | 20 +- .../list/__snapshots__/header.test.js.snap | 2 +- .../calendars/list/calendars_list.d.ts | 1 + .../settings/calendars/list/calendars_list.js | 8 +- .../calendars/list/calendars_list.test.js | 4 + .../settings/calendars/list/header.js | 107 -------- .../settings/calendars/list/header.test.js | 10 + .../settings/calendars/list/header.tsx | 137 ++++++++++ .../settings/calendars/list/table/table.js | 10 +- .../ml/public/locator/formatters/settings.tsx | 18 ++ .../plugins/ml/public/locator/ml_locator.ts | 5 + 41 files changed, 1144 insertions(+), 390 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/description_dst.tsx create mode 100644 x-pack/plugins/ml/public/application/settings/calendars/dst_utils.test.ts create mode 100644 x-pack/plugins/ml/public/application/settings/calendars/dst_utils.ts rename x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/{calendar_form.js => calendar_form.tsx} (54%) create mode 100644 x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/dst_event_generator.tsx rename x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/{index.js => index.ts} (100%) rename x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/{events_table.js => events_table.tsx} (51%) rename x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/{index.js => index.ts} (100%) rename x-pack/plugins/ml/public/application/settings/calendars/edit/{utils.js => utils.ts} (83%) delete mode 100644 x-pack/plugins/ml/public/application/settings/calendars/list/header.js create mode 100644 x-pack/plugins/ml/public/application/settings/calendars/list/header.tsx diff --git a/x-pack/plugins/ml/common/constants/locator.ts b/x-pack/plugins/ml/common/constants/locator.ts index 67b290bf34fcc..851c6bfa39067 100644 --- a/x-pack/plugins/ml/common/constants/locator.ts +++ b/x-pack/plugins/ml/common/constants/locator.ts @@ -62,8 +62,11 @@ export const ML_PAGES = { ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: 'modules/check_view_or_create', SETTINGS: 'settings', CALENDARS_MANAGE: 'settings/calendars_list', + CALENDARS_DST_MANAGE: 'settings/calendars_dst_list', CALENDARS_NEW: 'settings/calendars_list/new_calendar', + CALENDARS_DST_NEW: 'settings/calendars_dst_list/new_calendar', CALENDARS_EDIT: 'settings/calendars_list/edit_calendar', + CALENDARS_DST_EDIT: 'settings/calendars_dst_list/edit_calendar', FILTER_LISTS_MANAGE: 'settings/filter_lists', FILTER_LISTS_NEW: 'settings/filter_lists/new_filter_list', FILTER_LISTS_EDIT: 'settings/filter_lists/edit_filter_list', diff --git a/x-pack/plugins/ml/common/types/calendars.ts b/x-pack/plugins/ml/common/types/calendars.ts index bf37dbcc50572..a5e019d700282 100644 --- a/x-pack/plugins/ml/common/types/calendars.ts +++ b/x-pack/plugins/ml/common/types/calendars.ts @@ -5,16 +5,24 @@ * 2.0. */ -export type CalendarId = string; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -export interface Calendar { - calendar_id: CalendarId; +export type MlCalendarId = string; + +export interface MlCalendar { + calendar_id: MlCalendarId; description: string; events: any[]; job_ids: string[]; total_job_count?: number; } -export interface UpdateCalendar extends Calendar { - calendarId: CalendarId; +export interface UpdateCalendar extends MlCalendar { + calendarId: MlCalendarId; } + +export type MlCalendarEvent = estypes.MlCalendarEvent & { + force_time_shift?: number; + skip_result?: boolean; + skip_model_update?: boolean; +}; diff --git a/x-pack/plugins/ml/common/types/locator.ts b/x-pack/plugins/ml/common/types/locator.ts index 3cc198bb3b3f2..2288fad9cb105 100644 --- a/x-pack/plugins/ml/common/types/locator.ts +++ b/x-pack/plugins/ml/common/types/locator.ts @@ -56,7 +56,9 @@ export type MlGenericUrlState = MLPageState< | typeof ML_PAGES.DATA_FRAME_ANALYTICS_CREATE_JOB | typeof ML_PAGES.OVERVIEW | typeof ML_PAGES.CALENDARS_MANAGE + | typeof ML_PAGES.CALENDARS_DST_MANAGE | typeof ML_PAGES.CALENDARS_NEW + | typeof ML_PAGES.CALENDARS_DST_NEW | typeof ML_PAGES.FILTER_LISTS_MANAGE | typeof ML_PAGES.FILTER_LISTS_NEW | typeof ML_PAGES.SETTINGS @@ -247,6 +249,14 @@ export type CalendarEditUrlState = MLPageState< } >; +export type CalendarDstEditUrlState = MLPageState< + typeof ML_PAGES.CALENDARS_DST_EDIT, + { + calendarId: string; + globalState?: MlCommonGlobalState; + } +>; + export type FilterEditUrlState = MLPageState< typeof ML_PAGES.FILTER_LISTS_EDIT, { @@ -277,6 +287,7 @@ export type MlLocatorState = | DataFrameAnalyticsUrlState | DataFrameAnalyticsExplorationUrlState | CalendarEditUrlState + | CalendarDstEditUrlState | FilterEditUrlState | MlGenericUrlState | NotificationsUrlState diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/job_creator.ts b/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/job_creator.ts index f43fa93368447..3d659c7a96fd7 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/job_creator.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/job_creator.ts @@ -45,7 +45,7 @@ import type { CREATED_BY_LABEL } from '../../../../../../common/constants/new_jo import { JOB_TYPE, SHARED_RESULTS_INDEX_NAME } from '../../../../../../common/constants/new_job'; import { collectAggs } from './util/general'; import { filterRuntimeMappings } from './util/filter_runtime_mappings'; -import type { Calendar } from '../../../../../../common/types/calendars'; +import type { MlCalendar } from '../../../../../../common/types/calendars'; import { mlCalendarService } from '../../../../services/calendar_service'; import { getDatafeedAggregations } from '../../../../../../common/util/datafeed_utils'; import { getFirstKeyInObject } from '../../../../../../common/util/object_utils'; @@ -58,7 +58,7 @@ export class JobCreator { protected _indexPatternTitle: IndexPatternTitle = ''; protected _indexPatternDisplayName: string = ''; protected _job_config: Job; - protected _calendars: Calendar[]; + protected _calendars: MlCalendar[]; protected _datafeed_config: Datafeed; protected _detectors: Detector[]; protected _influencers: string[]; @@ -271,11 +271,11 @@ export class JobCreator { this._job_config.groups = groups; } - public get calendars(): Calendar[] { + public get calendars(): MlCalendar[] { return this._calendars; } - public set calendars(calendars: Calendar[]) { + public set calendars(calendars: MlCalendar[]) { this._calendars = calendars; } diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/additional_section.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/additional_section.tsx index f1ca62fc18dcc..d49db1bbc6316 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/additional_section.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/additional_section.tsx @@ -43,12 +43,16 @@ export const AdditionalSection: FC = ({ additionalExpanded, setAdditional + + - + + + diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/calendars_selection.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/calendars_selection.tsx index 06718f175b266..8b9f7eb16b1f4 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/calendars_selection.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/calendars_selection.tsx @@ -20,15 +20,24 @@ import { EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { + filterCalendarsForDst, + separateCalendarsByType, +} from '../../../../../../../../../settings/calendars/dst_utils'; import { JobCreatorContext } from '../../../../../job_creator_context'; import { Description } from './description'; import { PLUGIN_ID } from '../../../../../../../../../../../common/constants/app'; -import type { Calendar } from '../../../../../../../../../../../common/types/calendars'; +import type { MlCalendar } from '../../../../../../../../../../../common/types/calendars'; import { useMlApi, useMlKibana } from '../../../../../../../../../contexts/kibana'; import { GLOBAL_CALENDAR } from '../../../../../../../../../../../common/constants/calendars'; import { ML_PAGES } from '../../../../../../../../../../../common/constants/locator'; +import { DescriptionDst } from './description_dst'; + +interface Props { + isDst?: boolean; +} -export const CalendarsSelection: FC = () => { +export const CalendarsSelection: FC = ({ isDst = false }) => { const { services: { application: { getUrlForApp }, @@ -37,19 +46,22 @@ export const CalendarsSelection: FC = () => { const mlApi = useMlApi(); const { jobCreator, jobCreatorUpdate } = useContext(JobCreatorContext); - const [selectedCalendars, setSelectedCalendars] = useState(jobCreator.calendars); - const [selectedOptions, setSelectedOptions] = useState>>( - [] + const [selectedCalendars, setSelectedCalendars] = useState( + filterCalendarsForDst(jobCreator.calendars, isDst) ); - const [options, setOptions] = useState>>([]); + const [selectedOptions, setSelectedOptions] = useState< + Array> + >([]); + const [options, setOptions] = useState>>([]); const [isLoading, setIsLoading] = useState(false); async function loadCalendars() { setIsLoading(true); - const calendars = (await mlApi.calendars()).filter( + const { calendars, calendarsDst } = separateCalendarsByType(await mlApi.calendars()); + const filteredCalendars = (isDst ? calendarsDst : calendars).filter( (c) => c.job_ids.includes(GLOBAL_CALENDAR) === false ); - setOptions(calendars.map((c) => ({ label: c.calendar_id, value: c }))); + setOptions(filteredCalendars.map((c) => ({ label: c.calendar_id, value: c }))); setSelectedOptions(selectedCalendars.map((c) => ({ label: c.calendar_id, value: c }))); setIsLoading(false); } @@ -60,12 +72,14 @@ export const CalendarsSelection: FC = () => { }, []); useEffect(() => { - jobCreator.calendars = selectedCalendars; + const { calendars, calendarsDst } = separateCalendarsByType(jobCreator.calendars); + const otherCalendars = isDst ? calendars : calendarsDst; + jobCreator.calendars = [...selectedCalendars, ...otherCalendars]; jobCreatorUpdate(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [selectedCalendars.join()]); - const comboBoxProps: EuiComboBoxProps = { + const comboBoxProps: EuiComboBoxProps = { async: true, options, selectedOptions, @@ -77,11 +91,13 @@ export const CalendarsSelection: FC = () => { }; const manageCalendarsHref = getUrlForApp(PLUGIN_ID, { - path: ML_PAGES.CALENDARS_MANAGE, + path: isDst ? ML_PAGES.CALENDARS_DST_MANAGE : ML_PAGES.CALENDARS_MANAGE, }); + const Desc = isDst ? DescriptionDst : Description; + return ( - + @@ -119,6 +135,6 @@ export const CalendarsSelection: FC = () => { /> - + ); }; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/description_dst.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/description_dst.tsx new file mode 100644 index 0000000000000..ec8ed142ab628 --- /dev/null +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/job_details_step/components/additional_section/components/calendars/description_dst.tsx @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FC, PropsWithChildren } from 'react'; +import React, { memo } from 'react'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiDescribedFormGroup, EuiFormRow, EuiLink } from '@elastic/eui'; +import { useMlKibana } from '../../../../../../../../../contexts/kibana'; + +export const DescriptionDst: FC> = memo(({ children }) => { + const { + services: { docLinks }, + } = useMlKibana(); + const docsUrl = docLinks.links.ml.calendars; + const title = i18n.translate( + 'xpack.ml.newJob.wizard.jobDetailsStep.additionalSection.calendarsDstSelection.title', + { + defaultMessage: 'DST Calendars', + } + ); + return ( + {title}

} + description={ + + + + ), + }} + /> + } + > + + <>{children} + + + ); +}); diff --git a/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts b/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts index 1792b4cbfefa2..78f820dc662ca 100644 --- a/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts +++ b/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts @@ -128,6 +128,14 @@ export const CALENDAR_MANAGEMENT_BREADCRUMB: ChromeBreadcrumb = Object.freeze({ deepLinkId: 'ml:calendarSettings', }); +export const CALENDAR_DST_MANAGEMENT_BREADCRUMB: ChromeBreadcrumb = Object.freeze({ + text: i18n.translate('xpack.ml.settings.breadcrumbs.calendarManagementLabel', { + defaultMessage: 'Calendar DST management', + }), + href: '/settings/calendars_dst_list', + deepLinkId: 'ml:calendarSettings', +}); + export const FILTER_LISTS_BREADCRUMB: ChromeBreadcrumb = Object.freeze({ text: i18n.translate('xpack.ml.settings.breadcrumbs.filterListsLabel', { defaultMessage: 'Filter lists', @@ -160,6 +168,7 @@ const breadcrumbs = { CHANGE_POINT_DETECTION, CREATE_JOB_BREADCRUMB, CALENDAR_MANAGEMENT_BREADCRUMB, + CALENDAR_DST_MANAGEMENT_BREADCRUMB, FILTER_LISTS_BREADCRUMB, SUPPLIED_CONFIGURATIONS, }; diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx index 088c403378de0..16d8d8ac8cd9b 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_list.tsx @@ -31,7 +31,7 @@ export const calendarListRouteFactory = ( title: i18n.translate('xpack.ml.settings.calendarList.docTitle', { defaultMessage: 'Calendars', }), - render: (props, deps) => , + render: (props, deps) => , breadcrumbs: [ getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), getBreadcrumbWithUrlForApp('ANOMALY_DETECTION_BREADCRUMB', navigateToPath, basePath), @@ -40,7 +40,24 @@ export const calendarListRouteFactory = ( ], }); -const PageWrapper: FC = () => { +export const calendarDstListRouteFactory = ( + navigateToPath: NavigateToPath, + basePath: string +): MlRoute => ({ + path: createPath(ML_PAGES.CALENDARS_DST_MANAGE), + title: i18n.translate('xpack.ml.settings.calendarList.docTitle', { + defaultMessage: 'Calendars', + }), + render: (props, deps) => , + breadcrumbs: [ + getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('ANOMALY_DETECTION_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('SETTINGS_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('CALENDAR_DST_MANAGEMENT_BREADCRUMB'), + ], +}); + +const PageWrapper: FC = ({ isDst }) => { const { context } = useRouteResolver('full', ['canGetCalendars'], { getMlNodeCount }); useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); @@ -52,7 +69,7 @@ const PageWrapper: FC = () => { return ( - + ); }; diff --git a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx index 61d5406871283..7d4db9b58e560 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/settings/calendar_new_edit.tsx @@ -14,7 +14,6 @@ import type { NavigateToPath } from '../../../contexts/kibana'; import type { MlRoute, PageProps } from '../../router'; import { createPath, PageLoader } from '../../router'; import { useRouteResolver } from '../../use_resolver'; -import { usePermissionCheck } from '../../../capabilities/check_capabilities'; import { getBreadcrumbWithUrlForApp } from '../../breadcrumbs'; import { ML_PAGES } from '../../../../../common/constants/locator'; import { getMlNodeCount } from '../../../ml_nodes_check'; @@ -26,6 +25,7 @@ enum MODE { interface NewCalendarPageProps extends PageProps { mode: MODE; + isDst: boolean; } const NewCalendar = dynamic(async () => ({ @@ -40,7 +40,7 @@ export const newCalendarRouteFactory = ( title: i18n.translate('xpack.ml.settings.createCalendar.docTitle', { defaultMessage: 'Create Calendar', }), - render: (props, deps) => , + render: (props, deps) => , breadcrumbs: [ getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), getBreadcrumbWithUrlForApp('ANOMALY_DETECTION_BREADCRUMB', navigateToPath, basePath), @@ -62,7 +62,7 @@ export const editCalendarRouteFactory = ( title: i18n.translate('xpack.ml.settings.editCalendar.docTitle', { defaultMessage: 'Edit Calendar', }), - render: (props, deps) => , + render: (props, deps) => , breadcrumbs: [ getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), getBreadcrumbWithUrlForApp('SETTINGS_BREADCRUMB', navigateToPath, basePath), @@ -75,7 +75,50 @@ export const editCalendarRouteFactory = ( ], }); -const PageWrapper: FC = ({ location, mode }) => { +export const newCalendarDstRouteFactory = ( + navigateToPath: NavigateToPath, + basePath: string +): MlRoute => ({ + path: createPath(ML_PAGES.CALENDARS_DST_NEW), + title: i18n.translate('xpack.ml.settings.createCalendarDst.docTitle', { + defaultMessage: 'Create DST Calendar', + }), + render: (props, deps) => , + breadcrumbs: [ + getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('ANOMALY_DETECTION_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('SETTINGS_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('CALENDAR_DST_MANAGEMENT_BREADCRUMB', navigateToPath, basePath), + { + text: i18n.translate('xpack.ml.settings.breadcrumbs.calendarManagement.createLabel', { + defaultMessage: 'Create', + }), + }, + ], +}); + +export const editCalendarDstRouteFactory = ( + navigateToPath: NavigateToPath, + basePath: string +): MlRoute => ({ + path: createPath(ML_PAGES.CALENDARS_DST_EDIT, '/:calendarId'), + title: i18n.translate('xpack.ml.settings.editCalendarDst.docTitle', { + defaultMessage: 'Edit DST Calendar', + }), + render: (props, deps) => , + breadcrumbs: [ + getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('SETTINGS_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('CALENDAR_DST_MANAGEMENT_BREADCRUMB', navigateToPath, basePath), + { + text: i18n.translate('xpack.ml.settings.breadcrumbs.calendarManagement.editLabel', { + defaultMessage: 'Edit', + }), + }, + ], +}); + +const PageWrapper: FC = ({ location, mode, isDst }) => { let calendarId: string | undefined; if (mode === MODE.EDIT) { const pathMatch: string[] | null = location.pathname.match(/.+\/(.+)$/); @@ -86,14 +129,9 @@ const PageWrapper: FC = ({ location, mode }) => { useTimefilter({ timeRangeSelector: false, autoRefreshSelector: false }); - const [canCreateCalendar, canDeleteCalendar] = usePermissionCheck([ - 'canCreateCalendar', - 'canDeleteCalendar', - ]); - return ( - + ); }; diff --git a/x-pack/plugins/ml/public/application/routing/use_active_route.tsx b/x-pack/plugins/ml/public/application/routing/use_active_route.tsx index 202c552559c1b..5827cc036ddf4 100644 --- a/x-pack/plugins/ml/public/application/routing/use_active_route.tsx +++ b/x-pack/plugins/ml/public/application/routing/use_active_route.tsx @@ -15,6 +15,7 @@ import { toMountPoint } from '@kbn/react-kibana-mount'; import { PLUGIN_ID } from '../../../common/constants/app'; import { useMlKibana } from '../contexts/kibana'; import type { MlRoute } from './router'; +import { ML_PAGES } from '../../locator'; /** * Provides an active route of the ML app. @@ -30,8 +31,9 @@ export const useActiveRoute = (routesList: MlRoute[]): MlRoute => { /** * Temp fix for routes with params. */ - const editCalendarMatch = useRouteMatch('/settings/calendars_list/edit_calendar/:calendarId'); - const editFilterMatch = useRouteMatch('/settings/filter_lists/edit_filter_list/:filterId'); + const editCalendarMatch = useRouteMatch(`/${ML_PAGES.CALENDARS_EDIT}/:calendarId`); + const editCalendarDstMatch = useRouteMatch(`/${ML_PAGES.CALENDARS_DST_EDIT}/:calendarId`); + const editFilterMatch = useRouteMatch(`/${ML_PAGES.FILTER_LISTS_EDIT}/:filterId`); // eslint-disable-next-line react-hooks/exhaustive-deps const routesMap = useMemo(() => keyBy(routesList, 'path'), []); @@ -40,6 +42,9 @@ export const useActiveRoute = (routesList: MlRoute[]): MlRoute => { if (editCalendarMatch) { return routesMap[editCalendarMatch.path]; } + if (editCalendarDstMatch) { + return routesMap[editCalendarDstMatch.path]; + } if (editFilterMatch) { return routesMap[editFilterMatch.path]; } diff --git a/x-pack/plugins/ml/public/application/services/calendar_service.ts b/x-pack/plugins/ml/public/application/services/calendar_service.ts index ada2cbce43f6c..cccd2872ab344 100644 --- a/x-pack/plugins/ml/public/application/services/calendar_service.ts +++ b/x-pack/plugins/ml/public/application/services/calendar_service.ts @@ -6,7 +6,7 @@ */ import { i18n } from '@kbn/i18n'; -import type { Calendar, CalendarId } from '../../../common/types/calendars'; +import type { MlCalendar, MlCalendarId } from '../../../common/types/calendars'; import type { JobId } from '../../../common/types/anomaly_detection_jobs'; import type { MlApi } from './ml_api_service'; @@ -16,7 +16,7 @@ class CalendarService { * @param calendar * @param jobId */ - async assignNewJobId(mlApi: MlApi, calendar: Calendar, jobId: JobId) { + async assignNewJobId(mlApi: MlApi, calendar: MlCalendar, jobId: JobId) { const { calendar_id: calendarId } = calendar; try { await mlApi.updateCalendar({ @@ -38,7 +38,7 @@ class CalendarService { * Fetches calendars by the list of ids. * @param calendarIds */ - async fetchCalendarsByIds(mlApi: MlApi, calendarIds: CalendarId[]): Promise { + async fetchCalendarsByIds(mlApi: MlApi, calendarIds: MlCalendarId[]): Promise { try { const calendars = await mlApi.calendars({ calendarIds }); return Array.isArray(calendars) ? calendars : [calendars]; diff --git a/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts b/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts index e1a6d8c15d397..fa6d179059eec 100644 --- a/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts +++ b/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts @@ -20,7 +20,7 @@ import type { } from '../../../../common/types/ml_server_info'; import type { MlCapabilitiesResponse } from '../../../../common/types/capabilities'; import type { RecognizeModuleResult } from '../../../../common/types/modules'; -import type { Calendar, CalendarId, UpdateCalendar } from '../../../../common/types/calendars'; +import type { MlCalendar, MlCalendarId, UpdateCalendar } from '../../../../common/types/calendars'; import type { BucketSpanEstimatorData } from '../../../../common/types/job_service'; import type { Job, @@ -555,9 +555,9 @@ export function mlApiProvider(httpService: HttpService) { /** * Gets a list of calendars * @param obj - * @returns {Promise} + * @returns {Promise} */ - calendars(obj?: { calendarId?: CalendarId; calendarIds?: CalendarId[] }) { + calendars(obj?: { calendarId?: MlCalendarId; calendarIds?: MlCalendarId[] }) { const { calendarId, calendarIds } = obj || {}; let calendarIdsPathComponent = ''; if (calendarId) { @@ -565,14 +565,14 @@ export function mlApiProvider(httpService: HttpService) { } else if (calendarIds) { calendarIdsPathComponent = `/${calendarIds.join(',')}`; } - return httpService.http({ + return httpService.http({ path: `${ML_INTERNAL_BASE_PATH}/calendars${calendarIdsPathComponent}`, method: 'GET', version: '1', }); }, - addCalendar(obj: Calendar) { + addCalendar(obj: MlCalendar) { const body = JSON.stringify(obj); return httpService.http({ path: `${ML_INTERNAL_BASE_PATH}/calendars`, diff --git a/x-pack/plugins/ml/public/application/settings/anomaly_detection_settings.tsx b/x-pack/plugins/ml/public/application/settings/anomaly_detection_settings.tsx index e5fce41df2e18..9b6a71639cb97 100644 --- a/x-pack/plugins/ml/public/application/settings/anomaly_detection_settings.tsx +++ b/x-pack/plugins/ml/public/application/settings/anomaly_detection_settings.tsx @@ -27,11 +27,13 @@ import { AnomalyDetectionSettingsContext } from './anomaly_detection_settings_co import { useToastNotificationService } from '../services/toast_notification_service'; import { ML_PAGES } from '../../../common/constants/locator'; import { useCreateAndNavigateToMlLink } from '../contexts/kibana/use_create_url'; +import { separateCalendarsByType } from './calendars/dst_utils'; export const AnomalyDetectionSettings: FC = () => { const mlApi = useMlApi(); const [calendarsCount, setCalendarsCount] = useState(0); + const [calendarsDstCount, setCalendarsDstCount] = useState(0); const [filterListsCount, setFilterListsCount] = useState(0); const { canGetFilters, canCreateFilter, canGetCalendars, canCreateCalendar } = useContext( @@ -40,7 +42,9 @@ export const AnomalyDetectionSettings: FC = () => { const { displayErrorToast } = useToastNotificationService(); const redirectToCalendarList = useCreateAndNavigateToMlLink(ML_PAGES.CALENDARS_MANAGE); + const redirectToCalendarDstList = useCreateAndNavigateToMlLink(ML_PAGES.CALENDARS_DST_MANAGE); const redirectToNewCalendarPage = useCreateAndNavigateToMlLink(ML_PAGES.CALENDARS_NEW); + const redirectToNewCalendarDstPage = useCreateAndNavigateToMlLink(ML_PAGES.CALENDARS_DST_NEW); const redirectToFilterLists = useCreateAndNavigateToMlLink(ML_PAGES.FILTER_LISTS_MANAGE); const redirectToNewFilterListPage = useCreateAndNavigateToMlLink(ML_PAGES.FILTER_LISTS_NEW); @@ -53,8 +57,9 @@ export const AnomalyDetectionSettings: FC = () => { // Obtain the counts of calendars and filter lists. if (canGetCalendars === true) { try { - const calendars = await mlApi.calendars(); + const { calendarsDst, calendars } = separateCalendarsByType(await mlApi.calendars()); setCalendarsCount(calendars.length); + setCalendarsDstCount(calendarsDst.length); } catch (e) { displayErrorToast( e, @@ -94,7 +99,7 @@ export const AnomalyDetectionSettings: FC = () => { - +

{ - + + + +

+ +

+
+ + + +

+ +

+
+
+ + + {canGetCalendars && ( + + + {calendarsDstCount}, + calendarsDstCount, + }} + /> + + + )} + + + + + + + + + + + +
+ + + + + +

{ + ); diff --git a/x-pack/plugins/ml/public/application/settings/calendars/dst_utils.test.ts b/x-pack/plugins/ml/public/application/settings/calendars/dst_utils.test.ts new file mode 100644 index 0000000000000..0bdb7a7af89ce --- /dev/null +++ b/x-pack/plugins/ml/public/application/settings/calendars/dst_utils.test.ts @@ -0,0 +1,81 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getDSTChangeDates, createDstEvents } from './dst_utils'; +import moment from 'moment-timezone'; + +describe('getDSTChangeDates', () => { + it('should return correct DST change dates for a given timezone and year', () => { + const timezone = 'America/New_York'; + const year = 2023; + const { start, end } = getDSTChangeDates(timezone, year); + + expect(start).not.toBeNull(); + expect(end).not.toBeNull(); + + expect(moment(start).isDST()).toBe(true); + expect(moment(end).isDST()).toBe(false); + }); + + it('should return null for start and end if no DST changes are found', () => { + const timezone = 'Asia/Tokyo'; + const year = 2023; + const { start, end } = getDSTChangeDates(timezone, year); + + expect(start).toBeNull(); + expect(end).toBeNull(); + }); + + it('should handle edge cases around the start and end of the year', () => { + const timezone = 'Europe/London'; + const year = 2023; + const { start, end } = getDSTChangeDates(timezone, year); + + expect(start).not.toBeNull(); + expect(end).not.toBeNull(); + + if (start && end) { + expect(moment(start).isDST()).toBe(true); + expect(moment(end).isDST()).toBe(false); + } + }); +}); + +describe('createDstEvents', () => { + it('should create DST events for a given timezone', () => { + const timezone = 'America/New_York'; + const events = createDstEvents(timezone); + + expect(events.length).toBeGreaterThan(0); + events.forEach((event) => { + expect(event).toHaveProperty('event_id'); + expect(event).toHaveProperty('description'); + expect(event).toHaveProperty('start_time'); + expect(event).toHaveProperty('end_time'); + expect(event).toHaveProperty('skip_result', false); + expect(event).toHaveProperty('skip_model_update', false); + expect(event).toHaveProperty('force_time_shift'); + expect(event.description).toMatch(/(Winter|Summer) \d{4}/); + }); + }); + + it('should create correct number of DST events', () => { + const timezone = 'Europe/London'; + const events = createDstEvents(timezone); + + // Each year should have 2 events (start and end of DST) + const expectedNumberOfEvents = 20 * 2; + expect(events.length).toBe(expectedNumberOfEvents); + }); + + it('should handle timezones with no DST changes', () => { + const timezone = 'Asia/Tokyo'; + const events = createDstEvents(timezone); + + expect(events.length).toBe(0); + }); +}); diff --git a/x-pack/plugins/ml/public/application/settings/calendars/dst_utils.ts b/x-pack/plugins/ml/public/application/settings/calendars/dst_utils.ts new file mode 100644 index 0000000000000..6e4fd1fc5b9e4 --- /dev/null +++ b/x-pack/plugins/ml/public/application/settings/calendars/dst_utils.ts @@ -0,0 +1,153 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import type { Moment } from 'moment-timezone'; +import moment from 'moment-timezone'; + +import type { MlCalendar, MlCalendarEvent } from '../../../../common/types/calendars'; +import { generateTempId } from './edit/utils'; + +const YEARS_OF_DST_EVENTS = 20; + +function addZeroPadding(num: number) { + return num < 10 ? `0${num}` : num; +} + +const DST_CHANGE_DESCRIPTIONS = { + WINTER: i18n.translate('xpack.ml.calendarsEdit.dstChangeDescriptionWinter', { + defaultMessage: 'Winter', + }), + SUMMER: i18n.translate('xpack.ml.calendarsEdit.dstChangeDescriptionSummer', { + defaultMessage: 'Summer', + }), +} as const; + +function createDstEvent(time: Moment, year: number, shiftSecs: number) { + return { + event_id: generateTempId(), + description: `${ + shiftSecs > 0 ? DST_CHANGE_DESCRIPTIONS.SUMMER : DST_CHANGE_DESCRIPTIONS.WINTER + } ${year}`, + start_time: time.valueOf(), + end_time: time.add(2, 'days').valueOf(), + skip_result: false, + skip_model_update: false, + force_time_shift: shiftSecs, + }; +} + +export function getDSTChangeDates(timezone: string, year: number) { + let start: Moment | null = null; + let end: Moment | null = null; + + for (let month = 1; month < 13; month++) { + for (let day = 1; day <= 31; day++) { + const date = moment.tz( + `${year}-${addZeroPadding(month)}-${addZeroPadding(day)} 09:00:00`, + timezone + ); + if (date.isValid() === false) { + continue; + } + + if (!start && date.isDST()) { + // loop over hours + for (let hour = 0; hour < 24; hour++) { + const date2 = moment.tz( + `${year}-${addZeroPadding(month)}-${addZeroPadding(day)} ${addZeroPadding(hour)}:00:00`, + timezone + ); + if (date2.isDST() === true) { + start = date2; + break; + } + } + } + + if (start && !end && date.isDST() === false) { + // loop over hours + for (let hour = 0; hour < 24; hour++) { + const date2 = moment.tz( + `${year}-${addZeroPadding(month)}-${addZeroPadding(day)} ${addZeroPadding(hour)}:00:00`, + timezone + ); + if (date2.isDST() === false) { + end = date2; + break; + } + } + } + } + } + + return { start, end, year }; +} + +function generateDSTChangeDates( + timezone: string, + years: number +): { + dates: Array<{ start: Moment | null; end: Moment | null; year: number }>; + shiftSecs: number; +} { + const thisYear = new Date().getFullYear(); + const endYear = thisYear + years; + const dates = []; + for (let year = thisYear; year < endYear; year++) { + const dstChanges = getDSTChangeDates(timezone, year); + dates.push(dstChanges); + } + const janDate = moment.tz(`${thisYear}-01-10 09:00:00`, timezone); + const juneDate = moment.tz(`${thisYear}-06-10 09:00:00`, timezone); + const diffMins = juneDate.utcOffset() - janDate.utcOffset(); + const shiftSecs = diffMins * 60; + return { dates, shiftSecs }; +} + +export function createDstEvents(timezone: string) { + const { dates, shiftSecs } = generateDSTChangeDates(timezone, YEARS_OF_DST_EVENTS); + return dates.reduce((acc, date) => { + if (!date.start || !date.end) { + return acc; + } + acc.push(createDstEvent(date.start, date.year, shiftSecs)); + acc.push(createDstEvent(date.end, date.year, -shiftSecs)); + + return acc; + }, []); +} + +export function isDstCalendar(calendar: MlCalendar) { + return calendar.events.some((event) => { + return event.force_time_shift !== undefined; + }); +} + +export function filterCalendarsForDst(calendars: MlCalendar[], isDst: boolean) { + return calendars.filter((calendar) => { + return isDstCalendar(calendar) === isDst; + }); +} + +export function separateCalendarsByType(allCalendars: MlCalendar[]) { + const calendarsDst: MlCalendar[] = []; + const calendars: MlCalendar[] = []; + allCalendars.forEach((calendar) => { + if (isDstCalendar(calendar)) { + calendarsDst.push(calendar); + } else { + calendars.push(calendar); + } + }); + return { calendarsDst, calendars }; +} + +export function generateTimeZones() { + const zones = moment.tz.names(); + return zones; +} diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap index 39098fa671fcd..e70c43b383f98 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/__snapshots__/calendar_form.test.js.snap @@ -34,37 +34,9 @@ exports[`CalendarForm Renders calendar form 1`] = ` value="" /> - - } - > - - - - } - name="switch" - /> @@ -128,14 +100,12 @@ exports[`CalendarForm Renders calendar form 1`] = ` } > ({ useCreateAndNavigateToMlLink: jest.fn(), })); +jest.mock('../../../../capabilities/check_capabilities', () => ({ + usePermissionCheck: () => [true, true], +})); + const testProps = { calendarId: '', canCreateCalendar: true, diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/calendar_form.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/calendar_form.tsx similarity index 54% rename from x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/calendar_form.js rename to x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/calendar_form.tsx index 103d11821437f..5d8e02b8056a1 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/calendar_form.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/calendar_form.tsx @@ -5,9 +5,11 @@ * 2.0. */ -import React, { Fragment } from 'react'; -import { PropTypes } from 'prop-types'; +import type { FC } from 'react'; +import React, { useState, useCallback } from 'react'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { EuiSwitchEvent, EuiComboBoxOptionOption } from '@elastic/eui'; import { EuiButton, EuiComboBox, @@ -21,17 +23,21 @@ import { EuiSwitch, } from '@elastic/eui'; -import { EventsTable } from '../events_table'; - import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; +import { usePermissionCheck } from '../../../../capabilities/check_capabilities'; import { ML_PAGES } from '../../../../../../common/constants/locator'; import { useCreateAndNavigateToMlLink } from '../../../../contexts/kibana/use_create_url'; import { MlPageHeader } from '../../../../components/page_header'; +import { DstEventGenerator } from './dst_event_generator'; +import { EventsTable } from '../events_table'; -function EditHeader({ calendarId, description }) { +const EditHeader: FC<{ calendarId: string; description: string }> = ({ + calendarId, + description, +}) => { return ( - + <> ) : null} - + ); +}; + +interface Props { + calendarId: string; + description: string; + eventsList: estypes.MlCalendarEvent[]; + groupIdOptions: EuiComboBoxOptionOption[]; + isEdit: boolean; + isNewCalendarIdValid: boolean; + jobIdOptions: EuiComboBoxOptionOption[]; + onCalendarIdChange: (e: React.ChangeEvent) => void; + onCreate: () => void; + onCreateGroupOption: (searchValue: string, flattenedOptions: EuiComboBoxOptionOption[]) => void; + onDescriptionChange: (e: React.ChangeEvent) => void; + onEdit: () => void; + onEventDelete: (eventId: string) => void; + onGroupSelection: (selectedOptions: any) => void; + showImportModal: () => void; + onJobSelection: (selectedOptions: any) => void; + saving: boolean; + loading: boolean; + selectedGroupOptions: EuiComboBoxOptionOption[]; + selectedJobOptions: EuiComboBoxOptionOption[]; + showNewEventModal: () => void; + isGlobalCalendar: boolean; + onGlobalCalendarChange: (e: EuiSwitchEvent) => void; + addEvents: (events: estypes.MlCalendarEvent[]) => void; + clearEvents: () => void; + isDst: boolean; } -export const CalendarForm = ({ +export const CalendarForm: FC = ({ calendarId, - canCreateCalendar, - canDeleteCalendar, description, eventsList, - groupIds, + groupIdOptions, isEdit, isNewCalendarIdValid, - jobIds, + jobIdOptions, onCalendarIdChange, onCreate, onCreateGroupOption, @@ -79,7 +112,12 @@ export const CalendarForm = ({ showNewEventModal, isGlobalCalendar, onGlobalCalendarChange, + addEvents, + clearEvents, + isDst, }) => { + const [canCreateCalendar] = usePermissionCheck(['canCreateCalendar']); + const [timezone, setTimezone] = useState(undefined); const msg = i18n.translate('xpack.ml.calendarsEdit.calendarForm.allowedCharactersDescription', { defaultMessage: 'Use lowercase alphanumerics (a-z and 0-9), hyphens or underscores; ' + @@ -92,20 +130,38 @@ export const CalendarForm = ({ saving || !isNewCalendarIdValid || calendarId === '' || - loading === true; - const redirectToCalendarsManagementPage = useCreateAndNavigateToMlLink(ML_PAGES.CALENDARS_MANAGE); + loading === true || + (isDst && eventsList.length === 0); + const redirectToCalendarsManagementPage = useCreateAndNavigateToMlLink( + isDst ? ML_PAGES.CALENDARS_DST_MANAGE : ML_PAGES.CALENDARS_MANAGE + ); + + const addDstEvents = useCallback( + (events: estypes.MlCalendarEvent[]) => { + clearEvents(); + addEvents(events); + }, + [addEvents, clearEvents] + ); return ( {isEdit === true ? ( ) : ( - + <> - + {isDst ? ( + + ) : ( + + )} - + } + > + - } - > - - + + ) : null} - + )} - - } - checked={isGlobalCalendar} - onChange={onGlobalCalendarChange} - disabled={saving === true || canCreateCalendar === false || loading === true} - data-test-subj="mlCalendarApplyToAllJobsSwitch" - /> + {isDst === false ? ( + + } + checked={isGlobalCalendar} + onChange={onGlobalCalendarChange} + disabled={saving === true || canCreateCalendar === false || loading === true} + data-test-subj="mlCalendarApplyToAllJobsSwitch" + /> + ) : null} - {isGlobalCalendar === false && ( + {isGlobalCalendar === false ? ( <> @@ -175,7 +235,7 @@ export const CalendarForm = ({ } > - )} + ) : null} + isDst ? ( + + ) : ( + + ) } fullWidth > - + <> + {isDst ? ( + + ) : null} + + @@ -260,30 +336,3 @@ export const CalendarForm = ({ ); }; - -CalendarForm.propTypes = { - calendarId: PropTypes.string.isRequired, - canCreateCalendar: PropTypes.bool.isRequired, - canDeleteCalendar: PropTypes.bool.isRequired, - description: PropTypes.string, - groupIds: PropTypes.array.isRequired, - isEdit: PropTypes.bool.isRequired, - isNewCalendarIdValid: PropTypes.bool.isRequired, - jobIds: PropTypes.array.isRequired, - onCalendarIdChange: PropTypes.func.isRequired, - onCreate: PropTypes.func.isRequired, - onCreateGroupOption: PropTypes.func.isRequired, - onDescriptionChange: PropTypes.func.isRequired, - onEdit: PropTypes.func.isRequired, - onEventDelete: PropTypes.func.isRequired, - onGroupSelection: PropTypes.func.isRequired, - showImportModal: PropTypes.func.isRequired, - onJobSelection: PropTypes.func.isRequired, - saving: PropTypes.bool.isRequired, - loading: PropTypes.bool.isRequired, - selectedGroupOptions: PropTypes.array.isRequired, - selectedJobOptions: PropTypes.array.isRequired, - showNewEventModal: PropTypes.func.isRequired, - isGlobalCalendar: PropTypes.bool.isRequired, - onGlobalCalendarChange: PropTypes.func.isRequired, -}; diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/dst_event_generator.tsx b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/dst_event_generator.tsx new file mode 100644 index 0000000000000..914a22856c89a --- /dev/null +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/dst_event_generator.tsx @@ -0,0 +1,107 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { EuiComboBoxOptionOption } from '@elastic/eui'; +import { + EuiCallOut, + EuiComboBox, + EuiFlexGroup, + EuiFlexItem, + EuiFormRow, + EuiSpacer, +} from '@elastic/eui'; +import type { FC } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { createDstEvents, generateTimeZones } from '../../dst_utils'; + +interface Props { + addEvents: (events: estypes.MlCalendarEvent[]) => void; + setTimezone: (timezone: string) => void; + isDisabled?: boolean; +} + +export const DstEventGenerator: FC = ({ addEvents, setTimezone, isDisabled }) => { + const [selectedTimeZones, setSelectedTimeZones] = useState< + Array> + >([]); + const [eventsCount, setEventsCount] = useState(null); + + useEffect(() => { + if (selectedTimeZones.length > 0) { + setTimezone(selectedTimeZones[0].value!); + const events = createDstEvents(selectedTimeZones[0].value!); + addEvents(events); + setEventsCount(events.length); + } else { + addEvents([]); + setEventsCount(null); + } + }, [addEvents, selectedTimeZones, setTimezone]); + + const timeZoneOptions = useMemo(() => { + return generateTimeZones().map((tz) => { + return { + label: tz, + value: tz, + }; + }); + }, []); + + return ( + <> + + } + > + + + + + + + + {eventsCount === 0 ? ( + <> + + + + } + > +
+ +
+
+ + ) : null} + + ); +}; diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/index.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/index.js rename to x-pack/plugins/ml/public/application/settings/calendars/edit/calendar_form/index.ts diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/__snapshots__/events_table.test.js.snap b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/__snapshots__/events_table.test.js.snap index 5d890d38c88a5..cf5d3a492c7b2 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/__snapshots__/events_table.test.js.snap +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/__snapshots__/events_table.test.js.snap @@ -17,13 +17,17 @@ exports[`EventsTable Renders events table with no search bar 1`] = ` }, Object { "field": "start_time", - "name": "Start", + "name": + Start + , "render": [Function], "sortable": true, }, Object { "field": "end_time", - "name": "End", + "name": + End + , "render": [Function], "sortable": true, }, @@ -62,7 +66,7 @@ exports[`EventsTable Renders events table with no search bar 1`] = ` Object { "sort": Object { "direction": "asc", - "field": "description", + "field": "start_time", }, } } @@ -88,13 +92,17 @@ exports[`EventsTable Renders events table with search bar 1`] = ` }, Object { "field": "start_time", - "name": "Start", + "name": + Start + , "render": [Function], "sortable": true, }, Object { "field": "end_time", - "name": "End", + "name": + End + , "render": [Function], "sortable": true, }, @@ -167,7 +175,7 @@ exports[`EventsTable Renders events table with search bar 1`] = ` Object { "sort": Object { "direction": "asc", - "field": "description", + "field": "start_time", }, } } diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.test.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.test.js index d45d93043e16b..25961e266c3bc 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.test.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.test.js @@ -9,6 +9,10 @@ import { shallowWithIntl } from '@kbn/test-jest-helpers'; import React from 'react'; import { EventsTable } from './events_table'; +jest.mock('../../../../capabilities/check_capabilities', () => ({ + usePermissionCheck: () => [true, true], +})); + const testProps = { canCreateCalendar: true, eventsList: [ diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.tsx similarity index 51% rename from x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.js rename to x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.tsx index 7dc6ad4d1d2f7..5946b80a5507e 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/events_table.tsx @@ -5,19 +5,25 @@ * 2.0. */ -import PropTypes from 'prop-types'; -import React, { Fragment } from 'react'; -import moment from 'moment'; +import type { FC } from 'react'; +import React, { useCallback } from 'react'; +import moment from 'moment-timezone'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { EuiButton, EuiButtonEmpty, EuiInMemoryTable, EuiSpacer } from '@elastic/eui'; +import { EuiButton, EuiButtonEmpty, EuiIconTip, EuiInMemoryTable, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { TIME_FORMAT } from '@kbn/ml-date-utils'; +import { usePermissionCheck } from '../../../../capabilities/check_capabilities'; -function DeleteButton({ onClick, testSubj, disabled }) { +const DeleteButton: FC<{ + onClick: () => void; + testSubj: string; + disabled: boolean; +}> = ({ onClick, testSubj, disabled }) => { return ( - + <> - + ); +}; + +interface Props { + eventsList: estypes.MlCalendarEvent[]; + onDeleteClick: (eventId: string) => void; + showImportModal: () => void; + showNewEventModal: () => void; + showSearchBar?: boolean; + loading?: boolean; + saving?: boolean; + timezone?: string; + isDst: boolean; } -export const EventsTable = ({ - canCreateCalendar, - canDeleteCalendar, +export const EventsTable: FC = ({ eventsList, onDeleteClick, showSearchBar, @@ -44,19 +60,32 @@ export const EventsTable = ({ showNewEventModal, loading, saving, + timezone, + isDst, }) => { - const sorting = { - sort: { - field: 'description', - direction: 'asc', - }, - }; + const [canCreateCalendar, canDeleteCalendar] = usePermissionCheck([ + 'canCreateCalendar', + 'canDeleteCalendar', + ]); const pagination = { initialPageSize: 5, pageSizeOptions: [5, 10], }; + const formatEventDate = useCallback( + (timeMs: number) => { + if (timezone === undefined) { + const time = moment(timeMs); + return time.format(TIME_FORMAT); + } + + const time = moment.tz(timeMs, timezone); + return time.toLocaleString(); + }, + [timezone] + ); + const columns = [ { field: 'description', @@ -69,35 +98,66 @@ export const EventsTable = ({ }, { field: 'start_time', - name: i18n.translate('xpack.ml.calendarsEdit.eventsTable.startColumnName', { - defaultMessage: 'Start', - }), + name: ( + + {i18n.translate('xpack.ml.calendarsEdit.eventsTable.startColumnName', { + defaultMessage: 'Start', + })} + {isDst ? ( + <> +   + + + ) : null} + + ), sortable: true, - render: (timeMs) => { - const time = moment(timeMs); - return time.format(TIME_FORMAT); - }, + render: formatEventDate, }, { field: 'end_time', - name: i18n.translate('xpack.ml.calendarsEdit.eventsTable.endColumnName', { - defaultMessage: 'End', - }), + name: ( + + {i18n.translate('xpack.ml.calendarsEdit.eventsTable.endColumnName', { + defaultMessage: 'End', + })} + {isDst ? ( + <> +   + + + ) : null} + + ), sortable: true, - render: (timeMs) => { - const time = moment(timeMs); - return time.format(TIME_FORMAT); - }, + render: formatEventDate, }, { field: '', name: '', - render: (event) => ( + render: (event: estypes.MlCalendarEvent) => ( { - onDeleteClick(event.event_id); + onDeleteClick(event.event_id!); }} /> ), @@ -140,38 +200,25 @@ export const EventsTable = ({ }; return ( - + <> - items={eventsList} itemId="event_id" columns={columns} pagination={pagination} - sorting={sorting} + sorting={{ + sort: { + field: 'start_time', + direction: 'asc', + }, + }} search={showSearchBar ? search : undefined} data-test-subj="mlCalendarEventsTable" rowProps={(item) => ({ 'data-test-subj': `mlCalendarEventListRow row-${item.description}`, })} /> - + ); }; - -EventsTable.propTypes = { - canCreateCalendar: PropTypes.bool, - canDeleteCalendar: PropTypes.bool, - eventsList: PropTypes.array.isRequired, - onDeleteClick: PropTypes.func.isRequired, - showImportModal: PropTypes.func, - showNewEventModal: PropTypes.func, - showSearchBar: PropTypes.bool, - loading: PropTypes.bool, - saving: PropTypes.bool, -}; - -EventsTable.defaultProps = { - showSearchBar: false, - canCreateCalendar: true, - canDeleteCalendar: true, -}; diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/index.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/index.ts similarity index 100% rename from x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/index.js rename to x-pack/plugins/ml/public/application/settings/calendars/edit/events_table/index.ts diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/import_modal.test.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/import_modal.test.js index bcbbdec7b65c6..ceccb4f2ba11e 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/import_modal.test.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/import_modal/import_modal.test.js @@ -9,6 +9,10 @@ import { shallowWithIntl, mountWithIntl } from '@kbn/test-jest-helpers'; import React from 'react'; import { ImportModal } from './import_modal'; +jest.mock('../../../../capabilities/check_capabilities', () => ({ + usePermissionCheck: () => [true, true], +})); + const testProps = { addImportedEvents: jest.fn(), closeImportModal: jest.fn(), diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/imported_events/__snapshots__/imported_events.test.js.snap b/x-pack/plugins/ml/public/application/settings/calendars/edit/imported_events/__snapshots__/imported_events.test.js.snap index 87740b17bafb4..cae4e2d7b9f70 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/imported_events/__snapshots__/imported_events.test.js.snap +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/imported_events/__snapshots__/imported_events.test.js.snap @@ -24,8 +24,6 @@ exports[`ImportedEvents Renders imported events 1`] = ` grow={false} >
; diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.js index 51939aaba639a..8e1b09716c58f 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.js @@ -25,8 +25,7 @@ import { HelpMenu } from '../../../components/help_menu'; class NewCalendarUI extends Component { static propTypes = { calendarId: PropTypes.string, - canCreateCalendar: PropTypes.bool.isRequired, - canDeleteCalendar: PropTypes.bool.isRequired, + isDst: PropTypes.bool.isRequired, }; constructor(props) { @@ -66,7 +65,12 @@ class NewCalendarUI extends Component { application: { navigateToUrl }, }, } = this.props.kibana; - await navigateToUrl(`${basePath.get()}/app/ml/${ML_PAGES.CALENDARS_MANAGE}`, true); + await navigateToUrl( + `${basePath.get()}/app/ml/${ + this.props.isDst ? ML_PAGES.CALENDARS_DST_MANAGE : ML_PAGES.CALENDARS_MANAGE + }`, + true + ); }; async formSetup() { @@ -219,6 +223,11 @@ class NewCalendarUI extends Component { description: event.description, start_time: event.start_time, end_time: event.end_time, + ...(event.skip_result !== undefined ? { skip_result: event.skip_result } : {}), + ...(event.skip_model_update !== undefined + ? { skip_model_update: event.skip_model_update } + : {}), + ...(event.force_time_shift !== undefined ? { force_time_shift: event.force_time_shift } : {}), })); // set up calendar @@ -308,6 +317,19 @@ class NewCalendarUI extends Component { })); }; + addEvents = (events) => { + this.setState((prevState) => ({ + events: [...prevState.events, ...events], + isNewEventModalVisible: false, + })); + }; + + clearEvents = () => { + this.setState(() => ({ + events: [], + })); + }; + addImportedEvents = (events) => { this.setState((prevState) => ({ events: [...prevState.events, ...events], @@ -354,16 +376,14 @@ class NewCalendarUI extends Component { {modal} diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.test.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.test.js index 018acd8e6a306..7f899bc28730f 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.test.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/new_calendar.test.js @@ -31,6 +31,9 @@ jest.mock('../../../capabilities/get_capabilities', () => ({ jest.mock('../../../ml_nodes_check/check_ml_nodes', () => ({ mlNodesAvailable: () => true, })); +jest.mock('../../../capabilities/check_capabilities', () => ({ + usePermissionCheck: () => [true, true], +})); const calendarsMock = [ { @@ -115,16 +118,11 @@ jest.mock('@kbn/kibana-react-plugin/public', () => ({ import { NewCalendar } from './new_calendar'; -const props = { - canCreateCalendar: true, - canDeleteCalendar: true, -}; - describe('NewCalendar', () => { test('Renders new calendar form', () => { const { getByTestId } = render( - + ); @@ -134,7 +132,7 @@ describe('NewCalendar', () => { test('Import modal button is disabled', () => { const { getByTestId } = render( - + ); @@ -146,7 +144,7 @@ describe('NewCalendar', () => { test('New event modal button is disabled', async () => { const { getByTestId } = render( - + ); @@ -158,7 +156,7 @@ describe('NewCalendar', () => { test('isDuplicateId returns true if form calendar id already exists in calendars', async () => { const { getByTestId, queryByTestId, getByText } = render( - + ); @@ -187,20 +185,4 @@ describe('NewCalendar', () => { 'Cannot create calendar with id [this-is-a-new-calendar] as it already exists.' ); }); - - test('Save button is disabled if canCreateCalendar is false', () => { - const noCreateProps = { - ...props, - canCreateCalendar: false, - }; - - const { getByTestId } = render( - - - - ); - - const saveButton = getByTestId('mlSaveCalendarButton'); - expect(saveButton).toBeDisabled(); - }); }); diff --git a/x-pack/plugins/ml/public/application/settings/calendars/edit/utils.js b/x-pack/plugins/ml/public/application/settings/calendars/edit/utils.ts similarity index 83% rename from x-pack/plugins/ml/public/application/settings/calendars/edit/utils.js rename to x-pack/plugins/ml/public/application/settings/calendars/edit/utils.ts index b4c655b755b99..0b8735a296c9a 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/edit/utils.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/edit/utils.ts @@ -5,13 +5,15 @@ * 2.0. */ -import { isJobIdValid } from '../../../../../common/util/job_utils'; import { i18n } from '@kbn/i18n'; -function getJobIds(mlApi) { +import { isJobIdValid } from '../../../../../common/util/job_utils'; +import type { MlApi } from '../../../services/ml_api_service'; + +function getJobIds(mlApi: MlApi) { return new Promise((resolve, reject) => { mlApi.jobs - .jobsSummary() + .jobsSummary([]) .then((resp) => { resolve(resp.map((job) => job.id)); }) @@ -23,13 +25,14 @@ function getJobIds(mlApi) { values: { err }, } ); + // eslint-disable-next-line no-console console.log(errorMessage); reject(errorMessage); }); }); } -function getGroupIds(mlApi) { +function getGroupIds(mlApi: MlApi) { return new Promise((resolve, reject) => { mlApi.jobs .groups() @@ -44,13 +47,14 @@ function getGroupIds(mlApi) { values: { err }, } ); + // eslint-disable-next-line no-console console.log(errorMessage); reject(errorMessage); }); }); } -function getCalendars(mlApi) { +function getCalendars(mlApi: MlApi) { return new Promise((resolve, reject) => { mlApi .calendars() @@ -65,13 +69,14 @@ function getCalendars(mlApi) { values: { err }, } ); + // eslint-disable-next-line no-console console.log(errorMessage); reject(errorMessage); }); }); } -export function getCalendarSettingsData(mlApi) { +export function getCalendarSettingsData(mlApi: MlApi) { return new Promise(async (resolve, reject) => { try { const [jobIds, groupIds, calendars] = await Promise.all([ @@ -86,13 +91,14 @@ export function getCalendarSettingsData(mlApi) { calendars, }); } catch (error) { + // eslint-disable-next-line no-console console.log(error); reject(error); } }); } -export function validateCalendarId(calendarId) { +export function validateCalendarId(calendarId: string) { let valid = true; if (calendarId === '' || calendarId === undefined) { diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/__snapshots__/header.test.js.snap b/x-pack/plugins/ml/public/application/settings/calendars/list/__snapshots__/header.test.js.snap index a4ee42609c834..de3e3fe60315d 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/__snapshots__/header.test.js.snap +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/__snapshots__/header.test.js.snap @@ -82,7 +82,7 @@ exports[`CalendarListsHeader renders header 1`] = ` Object { "br":
, "learnMoreLink": ; diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.js b/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.js index f49ed3bdac194..ed17534c3feaa 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.js @@ -18,11 +18,13 @@ import { deleteCalendars } from './delete_calendars'; import { i18n } from '@kbn/i18n'; import { withKibana } from '@kbn/kibana-react-plugin/public'; import { HelpMenu } from '../../../components/help_menu'; +import { isDstCalendar } from '../dst_utils'; export class CalendarsListUI extends Component { static propTypes = { canCreateCalendar: PropTypes.bool.isRequired, canDeleteCalendar: PropTypes.bool.isRequired, + isDst: PropTypes.bool.isRequired, }; constructor(props) { @@ -42,7 +44,9 @@ export class CalendarsListUI extends Component { this.setState({ loading: true }); try { - const calendars = await mlApi.calendars(); + const calendars = (await mlApi.calendars()).filter( + (calendar) => isDstCalendar(calendar) === this.props.isDst + ); this.setState({ calendars, @@ -146,6 +150,7 @@ export class CalendarsListUI extends Component { 0} + isDst={this.props.isDst} /> {destroyModal} diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.test.js b/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.test.js index c00b86cf8b231..df2a5e9d5cc33 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.test.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/calendars_list.test.js @@ -43,6 +43,9 @@ jest.mock('../../../capabilities/get_capabilities', () => ({ jest.mock('../../../ml_nodes_check/check_ml_nodes', () => ({ mlNodesAvailable: () => true, })); +jest.mock('../../../capabilities/check_capabilities', () => ({ + usePermissionCheck: () => [true, true], +})); const mockCalendars = [ { @@ -114,6 +117,7 @@ jest.mock('@kbn/kibana-react-plugin/public', () => ({ const props = { canCreateCalendar: true, canDeleteCalendar: true, + isDst: false, }; describe('CalendarsList', () => { diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/header.js b/x-pack/plugins/ml/public/application/settings/calendars/list/header.js deleted file mode 100644 index 08f345b2de5a2..0000000000000 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/header.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -/* - * React component for the header section of the calendars list page. - */ - -import PropTypes from 'prop-types'; -import React from 'react'; -import { FormattedMessage } from '@kbn/i18n-react'; - -import { - EuiSpacer, - EuiFlexGroup, - EuiFlexItem, - EuiLink, - EuiText, - EuiTextColor, - EuiButtonEmpty, -} from '@elastic/eui'; - -import { withKibana } from '@kbn/kibana-react-plugin/public'; -import { MlPageHeader } from '../../../components/page_header'; - -function CalendarsListHeaderUI({ totalCount, refreshCalendars, kibana }) { - const docsUrl = kibana.services.docLinks.links.ml.calendars; - return ( - <> - - - - - - - - -

- -

-
-
-
-
- - - - - - - - - -
- - -

- - , - learnMoreLink: ( - - - - ), - }} - /> - -

-
- - - ); -} -CalendarsListHeaderUI.propTypes = { - totalCount: PropTypes.number.isRequired, - refreshCalendars: PropTypes.func.isRequired, -}; - -export const CalendarsListHeader = withKibana(CalendarsListHeaderUI); diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/header.test.js b/x-pack/plugins/ml/public/application/settings/calendars/list/header.test.js index ba4d49a31135c..e1c42d5068592 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/header.test.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/header.test.js @@ -15,6 +15,16 @@ jest.mock('@kbn/kibana-react-plugin/public', () => ({ return comp; }, })); +jest.mock('../../../capabilities/check_capabilities', () => ({ + usePermissionCheck: () => [true, true], +})); +jest.mock('../../../contexts/kibana/kibana_context', () => ({ + useMlKibana: () => ({ + services: { + docLinks: { links: { ml: { calendars: jest.fn() } } }, + }, + }), +})); describe('CalendarListsHeader', () => { const refreshCalendars = jest.fn(() => {}); diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/header.tsx b/x-pack/plugins/ml/public/application/settings/calendars/list/header.tsx new file mode 100644 index 0000000000000..ace83a21dcf51 --- /dev/null +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/header.tsx @@ -0,0 +1,137 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/* + * React component for the header section of the calendars list page. + */ + +import type { FC } from 'react'; +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; + +import { + EuiSpacer, + EuiFlexGroup, + EuiFlexItem, + EuiLink, + EuiText, + EuiTextColor, + EuiButtonEmpty, +} from '@elastic/eui'; + +import { MlPageHeader } from '../../../components/page_header'; +import { useMlKibana } from '../../../contexts/kibana/kibana_context'; + +interface Props { + isDst: boolean; + totalCount: number; + refreshCalendars: () => void; +} + +export const CalendarsListHeader: FC = ({ totalCount, refreshCalendars, isDst }) => { + const { + services: { + docLinks: { links }, + }, + } = useMlKibana(); + const docsUrl = links.ml.calendars; + return ( + <> + + {isDst ? ( + + ) : ( + + )} + + + + + + +

+ +

+
+
+
+
+ + + + + + + + + +
+ + +

+ + {isDst ? ( + , + learnMoreLink: ( + + + + ), + }} + /> + ) : ( + , + learnMoreLink: ( + + + + ), + }} + /> + )} + +

+
+ + + ); +}; diff --git a/x-pack/plugins/ml/public/application/settings/calendars/list/table/table.js b/x-pack/plugins/ml/public/application/settings/calendars/list/table/table.js index e9240557d2a68..c8feff122c3ec 100644 --- a/x-pack/plugins/ml/public/application/settings/calendars/list/table/table.js +++ b/x-pack/plugins/ml/public/application/settings/calendars/list/table/table.js @@ -26,8 +26,11 @@ export const CalendarsListTable = ({ canDeleteCalendar, mlNodesAvailable, itemsSelected, + isDst, }) => { - const redirectToNewCalendarPage = useCreateAndNavigateToMlLink(ML_PAGES.CALENDARS_NEW); + const redirectToNewCalendarPage = useCreateAndNavigateToMlLink( + isDst ? ML_PAGES.CALENDARS_DST_NEW : ML_PAGES.CALENDARS_NEW + ); const sorting = { sort: { @@ -51,7 +54,10 @@ export const CalendarsListTable = ({ truncateText: true, scope: 'row', render: (id) => ( - + {id} ), diff --git a/x-pack/plugins/ml/public/locator/formatters/settings.tsx b/x-pack/plugins/ml/public/locator/formatters/settings.tsx index fd9b9dd3dba4c..e0e73e3b3b89c 100644 --- a/x-pack/plugins/ml/public/locator/formatters/settings.tsx +++ b/x-pack/plugins/ml/public/locator/formatters/settings.tsx @@ -27,6 +27,24 @@ export function formatEditCalendarUrl( return url; } +export function formatEditCalendarDstUrl( + appBasePath: string, + pageState: CalendarEditUrlState['pageState'] +): string { + let url = `${appBasePath}/${ML_PAGES.CALENDARS_DST_EDIT}`; + if (pageState) { + const { globalState, calendarId } = pageState; + if (calendarId !== undefined) { + url = `${url}/${calendarId}`; + } + if (globalState) { + url = setStateToKbnUrl('_g', globalState, { useHash: false, storeInHashQuery: false }, url); + } + } + + return url; +} + export function formatEditFilterUrl( appBasePath: string, pageState: FilterEditUrlState['pageState'] diff --git a/x-pack/plugins/ml/public/locator/ml_locator.ts b/x-pack/plugins/ml/public/locator/ml_locator.ts index d86fd10e7dc87..f2807687110f6 100644 --- a/x-pack/plugins/ml/public/locator/ml_locator.ts +++ b/x-pack/plugins/ml/public/locator/ml_locator.ts @@ -29,6 +29,7 @@ import { formatGenericMlUrl, formatEditCalendarUrl, formatEditFilterUrl, + formatEditCalendarDstUrl, } from './formatters'; import { formatTrainedModelsManagementUrl, @@ -114,7 +115,9 @@ export class MlLocatorDefinition implements LocatorDefinition { case ML_PAGES.FILTER_LISTS_MANAGE: case ML_PAGES.FILTER_LISTS_NEW: case ML_PAGES.CALENDARS_MANAGE: + case ML_PAGES.CALENDARS_DST_MANAGE: case ML_PAGES.CALENDARS_NEW: + case ML_PAGES.CALENDARS_DST_NEW: path = formatGenericMlUrl('', params.page, params.pageState); break; case ML_PAGES.FILTER_LISTS_EDIT: @@ -122,6 +125,8 @@ export class MlLocatorDefinition implements LocatorDefinition { break; case ML_PAGES.CALENDARS_EDIT: path = formatEditCalendarUrl('', params.pageState); + case ML_PAGES.CALENDARS_DST_EDIT: + path = formatEditCalendarDstUrl('', params.pageState); break; case ML_PAGES.NOTIFICATIONS: path = formatNotificationsUrl('', params.pageState); From 89f28025052da4309087014330ed649468fc78b5 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Mon, 7 Oct 2024 15:41:24 +0200 Subject: [PATCH 20/62] [RCA] Events timeline !! (#193265) ## Summary Events timeline !! image --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../src/rest_specs/event.ts | 3 +- .../observability_utils/chart/utils.ts | 16 +++ .../get_mock_investigate_app_services.tsx | 1 + .../investigate_app/kibana.jsonc | 3 +- .../public/hooks/query_key_factory.ts | 2 + .../public/hooks/use_fetch_events.ts | 70 +++++++++++ .../events_timeline/alert_event.tsx | 34 ++++++ .../events_timeline/annotation_event.tsx | 36 ++++++ .../events_timeline/events_timeline.tsx | 114 ++++++++++++++++++ .../events_timeline/timeline_theme.ts | 47 ++++++++ .../investigation_items.tsx | 30 +++-- .../investigate_app/public/plugin.tsx | 3 + .../investigate_app/public/services/types.ts | 2 + .../investigate_app/public/types.ts | 2 + .../investigate_app/tsconfig.json | 1 + 15 files changed, 351 insertions(+), 13 deletions(-) create mode 100644 x-pack/packages/observability/observability_utils/chart/utils.ts create mode 100644 x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_events.ts create mode 100644 x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/alert_event.tsx create mode 100644 x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/annotation_event.tsx create mode 100644 x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/events_timeline.tsx create mode 100644 x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/timeline_theme.ts diff --git a/packages/kbn-investigation-shared/src/rest_specs/event.ts b/packages/kbn-investigation-shared/src/rest_specs/event.ts index df2f3941ad332..e63083f75c824 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/event.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/event.ts @@ -13,6 +13,7 @@ import { eventSchema } from '../schema'; const eventResponseSchema = eventSchema; type EventResponse = z.output; +type EventSchema = z.output; export { eventResponseSchema }; -export type { EventResponse }; +export type { EventResponse, EventSchema }; diff --git a/x-pack/packages/observability/observability_utils/chart/utils.ts b/x-pack/packages/observability/observability_utils/chart/utils.ts new file mode 100644 index 0000000000000..487b4df200c40 --- /dev/null +++ b/x-pack/packages/observability/observability_utils/chart/utils.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { BrushEvent } from '@elastic/charts'; +import moment from 'moment'; + +export function getBrushData(e: BrushEvent) { + const [from, to] = [Number(e.x?.[0]), Number(e.x?.[1])]; + const [fromUtc, toUtc] = [moment(from).format(), moment(to).format()]; + + return { from: fromUtc, to: toUtc }; +} diff --git a/x-pack/plugins/observability_solution/investigate_app/.storybook/get_mock_investigate_app_services.tsx b/x-pack/plugins/observability_solution/investigate_app/.storybook/get_mock_investigate_app_services.tsx index 13e2c008648e5..42ccc20d52a71 100644 --- a/x-pack/plugins/observability_solution/investigate_app/.storybook/get_mock_investigate_app_services.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/.storybook/get_mock_investigate_app_services.tsx @@ -53,6 +53,7 @@ export function getMockInvestigateAppContext(): DeeplyMockedKeys) => [...investigationKeys.all, 'userProfiles', ...profileIds] as const, tags: () => [...investigationKeys.all, 'tags'] as const, + events: (rangeFrom?: string, rangeTo?: string) => + [...investigationKeys.all, 'events', rangeFrom, rangeTo] as const, stats: () => [...investigationKeys.all, 'stats'] as const, lists: () => [...investigationKeys.all, 'list'] as const, list: (params: { page: number; perPage: number; search?: string; filter?: string }) => diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_events.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_events.ts new file mode 100644 index 0000000000000..61b0c441c1fc2 --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_events.ts @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { useQuery } from '@tanstack/react-query'; +import { GetEventsResponse } from '@kbn/investigation-shared'; +import { investigationKeys } from './query_key_factory'; +import { useKibana } from './use_kibana'; + +export interface Response { + isInitialLoading: boolean; + isLoading: boolean; + isRefetching: boolean; + isSuccess: boolean; + isError: boolean; + data?: GetEventsResponse; +} + +export function useFetchEvents({ + rangeFrom, + rangeTo, +}: { + rangeFrom?: string; + rangeTo?: string; +}): Response { + const { + core: { + http, + notifications: { toasts }, + }, + } = useKibana(); + + const { isInitialLoading, isLoading, isError, isSuccess, isRefetching, data } = useQuery({ + queryKey: investigationKeys.events(rangeFrom, rangeTo), + queryFn: async ({ signal }) => { + return await http.get(`/api/observability/events`, { + query: { + rangeFrom, + rangeTo, + }, + version: '2023-10-31', + signal, + }); + }, + cacheTime: 600 * 1000, // 10_minutes + staleTime: 0, + refetchOnWindowFocus: false, + retry: false, + onError: (error: Error) => { + toasts.addError(error, { + title: i18n.translate('xpack.investigateApp.events.fetch.error', { + defaultMessage: 'Something went wrong while fetching the events', + }), + }); + }, + }); + + return { + data, + isInitialLoading, + isLoading, + isRefetching, + isSuccess, + isError, + }; +} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/alert_event.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/alert_event.tsx new file mode 100644 index 0000000000000..2e5ab220054e4 --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/alert_event.tsx @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { LineAnnotation, AnnotationDomainType } from '@elastic/charts'; +import { EuiIcon } from '@elastic/eui'; +import React from 'react'; +import moment from 'moment'; +import { EventSchema } from '@kbn/investigation-shared'; + +export const AlertEvent = ({ event }: { event: EventSchema }) => { + return ( + + + + } + markerPosition="bottom" + dataValues={[ + { + dataValue: moment(event.timestamp).valueOf(), + header: moment(event.timestamp).format('lll'), + details: event.description, + }, + ]} + /> + ); +}; diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/annotation_event.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/annotation_event.tsx new file mode 100644 index 0000000000000..1db856575441a --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/annotation_event.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import moment from 'moment'; +import { AnnotationDomainType, LineAnnotation } from '@elastic/charts'; +import { EuiIcon } from '@elastic/eui'; +import { EventSchema } from '@kbn/investigation-shared'; + +export function AnnotationEvent({ event }: { event: EventSchema }) { + const timestamp = event.timestamp; + + return ( + + + + } + markerPosition="bottom" + /> + ); +} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/events_timeline.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/events_timeline.tsx new file mode 100644 index 0000000000000..70f4159924bd1 --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/events_timeline.tsx @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { useMemo, useRef } from 'react'; +import moment from 'moment'; + +import { Chart, Axis, AreaSeries, Position, ScaleType, Settings } from '@elastic/charts'; +import { useActiveCursor } from '@kbn/charts-plugin/public'; +import { EuiSkeletonText } from '@elastic/eui'; +import { getBrushData } from '@kbn/observability-utils/chart/utils'; +import { AnnotationEvent } from './annotation_event'; +import { TIME_LINE_THEME } from './timeline_theme'; +import { useFetchEvents } from '../../../../hooks/use_fetch_events'; +import { useInvestigation } from '../../contexts/investigation_context'; +import { useKibana } from '../../../../hooks/use_kibana'; +import { AlertEvent } from './alert_event'; + +export const EventsTimeLine = () => { + const { dependencies } = useKibana(); + + const baseTheme = dependencies.start.charts.theme.useChartsBaseTheme(); + + const { globalParams, updateInvestigationParams } = useInvestigation(); + + const { data: events, isLoading } = useFetchEvents({ + rangeFrom: globalParams.timeRange.from, + rangeTo: globalParams.timeRange.to, + }); + + const chartRef = useRef(null); + const handleCursorUpdate = useActiveCursor(dependencies.start.charts.activeCursor, chartRef, { + isDateHistogram: true, + }); + + const data = useMemo(() => { + const points = [ + { x: moment(globalParams.timeRange.from).valueOf(), y: 0 }, + { x: moment(globalParams.timeRange.to).valueOf(), y: 0 }, + ]; + + // adding 100 fake points to the chart so the chart shows cursor on hover + for (let i = 0; i < 100; i++) { + const diff = + moment(globalParams.timeRange.to).valueOf() - moment(globalParams.timeRange.from).valueOf(); + points.push({ x: moment(globalParams.timeRange.from).valueOf() + (diff / 100) * i, y: 0 }); + } + return points; + }, [globalParams.timeRange.from, globalParams.timeRange.to]); + + if (isLoading) { + return ; + } + + const alertEvents = events?.filter((evt) => evt.eventType === 'alert'); + const annotations = events?.filter((evt) => evt.eventType === 'annotation'); + + return ( + <> + + { + const { from, to } = getBrushData(brush); + updateInvestigationParams({ + timeRange: { from, to }, + }); + }} + /> + + moment(d).format('LTS')} + style={{ + tickLine: { + visible: true, + strokeWidth: 1, + stroke: '#98A2B3', + }, + }} + /> + + {alertEvents?.map((event) => ( + + ))} + + {annotations?.map((annotation) => ( + + ))} + + false} + /> + + + ); +}; diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/timeline_theme.ts b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/timeline_theme.ts new file mode 100644 index 0000000000000..a1d7441fee539 --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/events_timeline/timeline_theme.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PartialTheme } from '@elastic/charts'; + +export const TIME_LINE_THEME: PartialTheme = { + highlighter: { + point: { + opacity: 0, + }, + }, + axes: { + gridLine: { + horizontal: { + visible: false, + }, + vertical: { + visible: false, + }, + }, + axisLine: { + strokeWidth: 1, + stroke: '#98A2B3', + }, + }, + chartMargins: { + bottom: 10, + top: 10, + }, + areaSeriesStyle: { + area: { + visible: false, + }, + line: { + visible: false, + }, + }, + lineAnnotation: { + line: { + opacity: 0, + }, + }, +}; diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_items/investigation_items.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_items/investigation_items.tsx index a95c50274d198..bd03324a994ac 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_items/investigation_items.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_items/investigation_items.tsx @@ -6,8 +6,9 @@ */ import datemath from '@elastic/datemath'; -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; import React from 'react'; +import { EventsTimeLine } from '../events_timeline/events_timeline'; import { useInvestigation } from '../../contexts/investigation_context'; import { AddInvestigationItem } from '../add_investigation_item/add_investigation_item'; import { InvestigationItemsList } from '../investigation_items_list/investigation_items_list'; @@ -18,8 +19,8 @@ export function InvestigationItems() { const { globalParams, updateInvestigationParams, investigation } = useInvestigation(); return ( - - + <> + - - {investigation?.id && ( - + - )} - - - + + {investigation?.id && ( + + + + )} + + + + + + + - + ); } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/plugin.tsx b/x-pack/plugins/observability_solution/investigate_app/public/plugin.tsx index a98d89fb314b2..5ec88f9d72468 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/plugin.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/plugin.tsx @@ -86,11 +86,13 @@ export class InvestigateAppPlugin ]); const services: InvestigateAppServices = { + ...coreStart, esql: createEsqlService({ data: pluginsStart.data, dataViews: pluginsStart.dataViews, lens: pluginsStart.lens, }), + charts: pluginsStart.charts, }; ReactDOM.render( @@ -130,6 +132,7 @@ export class InvestigateAppPlugin dataViews: pluginsStart.dataViews, lens: pluginsStart.lens, }), + charts: pluginsStart.charts, }, }); }); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/services/types.ts b/x-pack/plugins/observability_solution/investigate_app/public/services/types.ts index 149cacf2434a7..257ed5a7aeaca 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/services/types.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/services/types.ts @@ -5,8 +5,10 @@ * 2.0. */ +import { ChartsPluginStart } from '@kbn/charts-plugin/public'; import type { EsqlService } from './esql'; export interface InvestigateAppServices { esql: EsqlService; + charts: ChartsPluginStart; } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/types.ts b/x-pack/plugins/observability_solution/investigate_app/public/types.ts index 101d6993ab9c5..a2d7b5227a201 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/types.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/types.ts @@ -8,6 +8,7 @@ import type { ObservabilityAIAssistantPublicSetup, ObservabilityAIAssistantPublicStart, } from '@kbn/observability-ai-assistant-plugin/public'; +import { ChartsPluginStart } from '@kbn/charts-plugin/public'; import type { ContentManagementPublicStart } from '@kbn/content-management-plugin/public'; import type { DataPublicPluginSetup, DataPublicPluginStart } from '@kbn/data-plugin/public'; import type { @@ -66,6 +67,7 @@ export interface InvestigateAppStartDependencies { unifiedSearch: UnifiedSearchPublicPluginStart; uiActions: UiActionsStart; security: SecurityPluginStart; + charts: ChartsPluginStart; } export interface InvestigateAppPublicSetup {} diff --git a/x-pack/plugins/observability_solution/investigate_app/tsconfig.json b/x-pack/plugins/observability_solution/investigate_app/tsconfig.json index 377db42186f5e..7ea8234fba670 100644 --- a/x-pack/plugins/observability_solution/investigate_app/tsconfig.json +++ b/x-pack/plugins/observability_solution/investigate_app/tsconfig.json @@ -66,6 +66,7 @@ "@kbn/core-elasticsearch-server", "@kbn/calculate-auto", "@kbn/ml-random-sampler-utils", + "@kbn/charts-plugin", "@kbn/observability-utils", ], } From 78cc1adcf74bf63d343d998f7dcafb9b5354a1a0 Mon Sep 17 00:00:00 2001 From: Marco Antonio Ghiani Date: Mon, 7 Oct 2024 15:58:50 +0200 Subject: [PATCH 21/62] [Discover] Adjust log.level indicator alignment (#195098) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 📓 Summary A change in the EuiDataGrid style clashed with a custom CSS change applied to the grid in order to render the `log.level` indicator on the whole line height. This change fixes the spacing issue and delegates to the inner element, the indicator itself, the responsibility to make fill the whole space ignoring padding imposed by the grid (using an absolute positioning, the DOM node will ignore inner spacing and fill the parent container.) https://github.com/user-attachments/assets/fe8d418a-5c7f-4999-86a4-296304d5aa97 Co-authored-by: Marco Antonio Ghiani --- .../color_indicator/color_indicator_control_column.tsx | 2 ++ packages/kbn-unified-data-table/src/components/data_table.scss | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/kbn-unified-data-table/src/components/custom_control_columns/color_indicator/color_indicator_control_column.tsx b/packages/kbn-unified-data-table/src/components/custom_control_columns/color_indicator/color_indicator_control_column.tsx index ac7e3d80a4432..38cfab2648950 100644 --- a/packages/kbn-unified-data-table/src/components/custom_control_columns/color_indicator/color_indicator_control_column.tsx +++ b/packages/kbn-unified-data-table/src/components/custom_control_columns/color_indicator/color_indicator_control_column.tsx @@ -42,6 +42,8 @@ const ColorIndicatorCell: React.FC = ({ getRowIndicato data-test-subj="unifiedDataTableRowColorIndicatorCell" title={label} css={css` + position: absolute; + top: 0; background: ${color}; width: ${COLOR_INDICATOR_WIDTH}px; height: 100%; diff --git a/packages/kbn-unified-data-table/src/components/data_table.scss b/packages/kbn-unified-data-table/src/components/data_table.scss index 263cc1a801083..6093659d487d6 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.scss +++ b/packages/kbn-unified-data-table/src/components/data_table.scss @@ -83,7 +83,6 @@ } .euiDataGridRowCell.euiDataGridRowCell--controlColumn[data-gridcell-column-id='colorIndicator'] .euiDataGridRowCell__content { height: 100%; - padding: 0; border-bottom: 0; } From 6b3bb66835a30422b48b3753be6feaa781a955a1 Mon Sep 17 00:00:00 2001 From: Jatin Kathuria Date: Mon, 7 Oct 2024 16:13:27 +0200 Subject: [PATCH 22/62] [Security Solution] Investifations fixed unified components flaky tests (#195231) Fixes Flaky test Issues - https://github.com/elastic/kibana/issues/189793 - https://github.com/elastic/kibana/issues/189792 - https://github.com/elastic/kibana/issues/189794 --- .../query_tab_unified_components.test.tsx | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx index 2c8a5614598b5..7a6c23279f435 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs/query/query_tab_unified_components.test.tsx @@ -38,6 +38,7 @@ import * as timelineActions from '../../../../store/actions'; import { useExpandableFlyoutApi } from '@kbn/expandable-flyout'; import { createExpandableFlyoutApiMock } from '../../../../../common/mock/expandable_flyout'; import { OPEN_FLYOUT_BUTTON_TEST_ID } from '../../../../../notes/components/test_ids'; +import { userEvent } from '@testing-library/user-event'; jest.mock('../../../../../common/components/user_privileges'); @@ -646,9 +647,7 @@ describe('query tab with unified timeline', () => { ); }); - // FLAKY: https://github.com/elastic/kibana/issues/189792 - // FLAKY: https://github.com/elastic/kibana/issues/189793 - describe.skip('left controls', () => { + describe('left controls', () => { it( 'should clear all sorting', async () => { @@ -665,9 +664,9 @@ describe('query tab with unified timeline', () => { // // timestamp sorting indicators expect( await screen.findByTestId('euiDataGridColumnSorting-sortColumn-@timestamp') - ).toBeVisible(); + ).toBeInTheDocument(); - expect(screen.getByTestId('dataGridHeaderCellSortingIcon-@timestamp')).toBeVisible(); + expect(screen.getByTestId('dataGridHeaderCellSortingIcon-@timestamp')).toBeInTheDocument(); fireEvent.click(screen.getByTestId('dataGridColumnSortingClearButton')); @@ -694,9 +693,9 @@ describe('query tab with unified timeline', () => { // // timestamp sorting indicators expect( await screen.findByTestId('euiDataGridColumnSorting-sortColumn-@timestamp') - ).toBeVisible(); + ).toBeInTheDocument(); - expect(screen.getByTestId('dataGridHeaderCellSortingIcon-@timestamp')).toBeVisible(); + expect(screen.getByTestId('dataGridHeaderCellSortingIcon-@timestamp')).toBeInTheDocument(); // add more columns to sorting fireEvent.click(screen.getByText(/Pick fields to sort by/)); @@ -704,7 +703,7 @@ describe('query tab with unified timeline', () => { await waitFor(() => { expect( screen.getByTestId('dataGridColumnSortingPopoverColumnSelection-event.severity') - ).toBeVisible(); + ).toBeInTheDocument(); }); fireEvent.click( @@ -713,13 +712,15 @@ describe('query tab with unified timeline', () => { // check new columns for sorting validity await waitFor(() => { - expect(screen.getByTestId('dataGridHeaderCellSortingIcon-event.severity')).toBeVisible(); + expect( + screen.getByTestId('dataGridHeaderCellSortingIcon-event.severity') + ).toBeInTheDocument(); }); expect( screen.getByTestId('euiDataGridColumnSorting-sortColumn-event.severity') - ).toBeVisible(); + ).toBeInTheDocument(); - expect(screen.getByTestId('dataGridHeaderCellSortingIcon-@timestamp')).toBeVisible(); + expect(screen.getByTestId('dataGridHeaderCellSortingIcon-@timestamp')).toBeInTheDocument(); }, SPECIAL_TEST_TIMEOUT ); @@ -885,8 +886,7 @@ describe('query tab with unified timeline', () => { }); describe('Leading actions - notes', () => { - // FLAKY: https://github.com/elastic/kibana/issues/189794 - describe.skip('securitySolutionNotesEnabled = true', () => { + describe('securitySolutionNotesEnabled = true', () => { beforeEach(() => { (useIsExperimentalFeatureEnabled as jest.Mock).mockImplementation( jest.fn((feature: keyof ExperimentalFeatures) => { @@ -912,10 +912,10 @@ describe('query tab with unified timeline', () => { expect(screen.getByTestId('timeline-notes-notification-dot')).toBeVisible(); - fireEvent.mouseOver(screen.getByTestId('timeline-notes-button-small')); + userEvent.hover(screen.getByTestId('timeline-notes-button-small')); await waitFor(() => { - expect(screen.getByTestId('timeline-notes-tool-tip')).toBeVisible(); + expect(screen.getByTestId('timeline-notes-tool-tip')).toBeInTheDocument(); expect(screen.getByTestId('timeline-notes-tool-tip')).toHaveTextContent( '1 Note available. Click to view it & add more.' ); From b3d603890414232b5f01e36d43f282be74888b1e Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens Date: Mon, 7 Oct 2024 16:20:19 +0200 Subject: [PATCH 23/62] Release note: internal HTTP APIs blocked from 9.0.0 (#195257) ## Summary Added a breaking change release note using the new template. --------- Co-authored-by: florent-leborgne --- docs/upgrade-notes.asciidoc | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/docs/upgrade-notes.asciidoc b/docs/upgrade-notes.asciidoc index 57b97856a3d40..d8ed74d367d86 100644 --- a/docs/upgrade-notes.asciidoc +++ b/docs/upgrade-notes.asciidoc @@ -20,8 +20,8 @@ ADD INSTRUCTIONS FOR USERS LOOKING TO UPGRADE. HOW CAN THEY WORK AROUND THIS? ==== -1. Copy and edit the template in the right area section of this file. Most recent entries should be at the top of the section. -2. Edit the anchor ID [[REPO-PR]] of the template with proper values. +1. Copy and edit the template in the right section of this file. Most recent entries should be at the top of the section, search for sections using the text "[float]". +2. Edit the anchor ID [[REPO-PR]] of the template with proper values. 3. Don't hardcode the link to the new entry. Instead, make it available through the doc link service files: - https://github.com/elastic/kibana/blob/main/packages/kbn-doc-links/src/get_doc_links.ts - https://github.com/elastic/kibana/blob/main/packages/kbn-doc-links/src/types.ts @@ -31,7 +31,7 @@ The entry in the main links file should look like this: id: `${KIBANA_DOCS}breaking-changes-summary.html#REPO-PR` Where: - - `id` is the ID of your choice. + - `id` is the ID of your choice. - `REPO-PR` is the anchor ID that you assigned to the entry in this upgrade document. 4. You can then call the link from any Kibana code. For example: `href: docLinks.links.upgradeAssistant.id` @@ -39,7 +39,7 @@ Check https://docs.elastic.dev/docs/kibana-doc-links (internal) for more details //// -Before you upgrade, review the breaking changes and deprecations introduced in {kib} 8.x, then mitigate the impact. +Before you upgrade, review the breaking changes and deprecations introduced in {kib} 8.x, then mitigate the impact. For Elastic Security release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. @@ -49,6 +49,28 @@ For Elastic Security release information, refer to {security-guide}/release-note [float] ==== Kibana APIs +[discrete] +[[breaking-193792]] +.Access to all internal APIs is blocked (9.0.0) +[%collapsible] +==== +*Details* + +Access to internal Kibana HTTP APIs is restricted from version 9.0.0. This is to ensure +that HTTP API integrations with Kibana avoid unexpected breaking changes. +Refer to {kibana-pull}193792[#193792]. + +*Impact* + +Any HTTP API calls to internal Kibana endpoints will fail with a 400 status code starting +from version 9.0.0. + +*Action* + +**Do not integrate with internal HTTP APIs**. They may change or be removed without notice, +and lead to unexpected behaviors. If you would like some capability to be exposed over an +HTTP API, https://github.com/elastic/kibana/issues/new/choose[create an issue]. +We would love to discuss your use case. + +==== + [discrete] [[breaking-162506]] .Get case metrics APIs became internal. (8.10) From ad986d4c265da8ca01fa81e817dbc65c69c12a91 Mon Sep 17 00:00:00 2001 From: Tre Date: Mon, 7 Oct 2024 15:24:34 +0100 Subject: [PATCH 24/62] [FTR][Ownership] Assign some test files in `x-pack/test_serverless` to a small group of owners (#194819) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary ### Ownership Assigned - Various files for my team. - `x-pack/test_serverless/functional/test_suites/security/cypress` to security solution 🤞🏾 - `/x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts` to search team due to [this pr](https://github.com/elastic/kibana/pull/180422). - From this pr, I decided to add more ownership based on the contents. - `/x-pack/test_serverless/functional/page_objects/svl_management_page.ts` from [this pr](https://github.com/elastic/kibana/pull/176200/files) - From this pr, I decided to add more ownership based on the contents. - Also, as I was in the "security" realm so to speak, I started adding more files for the security solution team - `x-pack/test_serverless/functional/test_suites/security/screenshot_creation/index.ts` to response ops due to this [pr](https://github.com/elastic/kibana/pull/174556) Contributes to: https://github.com/elastic/kibana/issues/194815 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index af8e19d934b19..12eef80dea380 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1309,6 +1309,10 @@ x-pack/test_serverless/**/test_suites/observability/ai_assistant @elastic/obs-ai /.devcontainer/ @elastic/kibana-operations # Appex QA +/x-pack/test_serverless/functional/page_objects/svl_common_page.ts @elastic/appex-qa +/x-pack/test_serverless/README.md @elastic/appex-qa +/x-pack/test_serverless/api_integration/ftr_provider_context.d.ts @elastic/appex-qa +/x-pack/test_serverless/api_integration/test_suites/common/README.md @elastic/appex-qa /src/dev/code_coverage @elastic/appex-qa /test/functional/services/common @elastic/appex-qa /test/functional/services/lib @elastic/appex-qa @@ -1407,6 +1411,7 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib #CC# /x-pack/plugins/security/ @elastic/kibana-security # Response Ops team +/x-pack/test_serverless/functional/test_suites/security/screenshot_creation/index.ts @elastic/response-ops /x-pack/test/alerting_api_integration/ @elastic/response-ops /x-pack/test/alerting_api_integration/observability @elastic/obs-ux-management-team /x-pack/test/plugin_api_integration/test_suites/task_manager/ @elastic/response-ops @@ -1439,11 +1444,16 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /x-pack/test/functional/es_archives/alerting/8_2_0 @elastic/response-ops # Enterprise Search +/x-pack/test_serverless/functional/page_objects/svl_ingest_pipelines.ts @elastic/search-kibana +/x-pack/test/functional/apps/dev_tools/embedded_console.ts @elastic/search-kibana +/x-pack/test/functional/apps/ingest_pipelines/feature_controls/ingest_pipelines_security.ts @elastic/search-kibana +/x-pack/test/functional/page_objects/embedded_console.ts @elastic/search-kibana /x-pack/test/functional_enterprise_search/ @elastic/search-kibana /x-pack/plugins/enterprise_search/public/applications/shared/doc_links @elastic/platform-docs /x-pack/test_serverless/api_integration/test_suites/search/serverless_search @elastic/search-kibana /x-pack/test_serverless/functional/test_suites/search/ @elastic/search-kibana x-pack/test/api_integration/apis/management/index_management/inference_endpoints.ts @elastic/search-kibana +/x-pack/test_serverless/api_integration/test_suites/search @elastic/search-kibana # Management Experience - Deployment Management /x-pack/test_serverless/**/test_suites/common/index_management/ @elastic/kibana-management @@ -1470,7 +1480,14 @@ x-pack/test/api_integration/apis/management/index_management/inference_endpoints /x-pack/test/api_integration/apis/security_solution @elastic/security-solution /x-pack/test/functional/es_archives/auditbeat/default @elastic/security-solution /x-pack/test/functional/es_archives/auditbeat/hosts @elastic/security-solution - +/x-pack/test_serverless/functional/page_objects/svl_management_page.ts @elastic/security-solution +/x-pack/test_serverless/api_integration/test_suites/common/platform_security/ @elastic/security-solution +/x-pack/test_serverless/api_integration/test_suites/security @elastic/security-solution +/x-pack/test_serverless/functional/page_objects/svl_sec_landing_page.ts @elastic/security-solution + +/x-pack/test_serverless/functional/test_suites/security/cypress @elastic/security-solution +/x-pack/test_serverless/functional/test_suites/security/index.feature_flags.ts @elastic/security-solution +/x-pack/test_serverless/functional/test_suites/security/index.ts @elastic/security-solution #CC# /x-pack/plugins/security_solution/ @elastic/security-solution # Security Solution OpenAPI bundles From b4ba1314093f4e8019b376c161b2adf6ecf3ba1f Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Mon, 7 Oct 2024 16:33:56 +0200 Subject: [PATCH 25/62] [ES|QL] Removes CCS check from the editor (#194903) ## Summary Removes the CCS check from the editor. We support now cross cluster queries so this was a leftover. I also tested it with the oblt clusters to ensure that our validation works as expected. --- .../src/shared/helpers.ts | 3 --- .../test_suites/validation.command.from.ts | 14 ++++++++------ .../test_suites/validation.command.metrics.ts | 12 ++++++++---- .../src/validation/validation.ts | 6 ------ 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts index d58101e9ff8eb..fd53d08e67f90 100644 --- a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts @@ -548,9 +548,6 @@ export function isVariable( ): column is ESQLVariable { return Boolean(column && 'location' in column); } -export function hasCCSSource(name: string) { - return name.includes(':'); -} /** * This will return the name without any quotes. diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts index ccb28d88fd78f..e3589bb8da643 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.from.ts @@ -56,10 +56,12 @@ export const validationFromCommandTestSuite = (setup: helpers.Setup) => { await expectErrors('fRoM in*ex', []); await expectErrors('fRoM ind*ex', []); await expectErrors('fRoM *,-.*', []); - await expectErrors('fRoM remote-*:indexes*', []); - await expectErrors('fRoM remote-*:indexes', []); - await expectErrors('fRoM remote-ccs:indexes', []); - await expectErrors('fRoM a_index, remote-ccs:indexes', []); + await expectErrors('fRoM remote-*:indexes*', ['Unknown index [remote-*:indexes*]']); + await expectErrors('fRoM remote-*:indexes', ['Unknown index [remote-*:indexes]']); + await expectErrors('fRoM remote-ccs:indexes', ['Unknown index [remote-ccs:indexes]']); + await expectErrors('fRoM a_index, remote-ccs:indexes', [ + 'Unknown index [remote-ccs:indexes]', + ]); await expectErrors('fRoM .secret_index', []); await expectErrors('from my-index', []); }); @@ -151,12 +153,12 @@ export const validationFromCommandTestSuite = (setup: helpers.Setup) => { ); await expectErrors( `from remote-ccs:indexes ${setWrapping('METADATA _id')}`, - [], + ['Unknown index [remote-ccs:indexes]'], addBracketsWarning() ); await expectErrors( `from *:indexes ${setWrapping('METADATA _id')}`, - [], + ['Unknown index [*:indexes]'], addBracketsWarning() ); }); diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.metrics.ts b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.metrics.ts index 30236aa38ab3a..8dd1634f63279 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.metrics.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/test_suites/validation.command.metrics.ts @@ -51,10 +51,14 @@ export const validationMetricsCommandTestSuite = (setup: helpers.Setup) => { await expectErrors('metrics in*ex', []); await expectErrors('metrics ind*ex', []); await expectErrors('metrics *,-.*', []); - await expectErrors('metrics remote-*:indexes*', []); - await expectErrors('metrics remote-*:indexes', []); - await expectErrors('metrics remote-ccs:indexes', []); - await expectErrors('metrics a_index, remote-ccs:indexes', []); + await expectErrors('metrics remote-*:indexes*', ['Unknown index [remote-*:indexes*]']); + await expectErrors('metrics remote-*:indexes', ['Unknown index [remote-*:indexes]']); + await expectErrors('metrics remote-ccs:indexes', [ + 'Unknown index [remote-ccs:indexes]', + ]); + await expectErrors('metrics a_index, remote-ccs:indexes', [ + 'Unknown index [remote-ccs:indexes]', + ]); await expectErrors('metrics .secret_index', []); }); diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts index 428a2d1fcd4f5..fdfe03852fc48 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts @@ -47,7 +47,6 @@ import { sourceExists, getColumnExists, hasWildcard, - hasCCSSource, isSettingItem, isAssignment, isVariable, @@ -815,11 +814,6 @@ function validateSource( return messages; } - const hasCCS = hasCCSSource(source.name); - if (hasCCS) { - return messages; - } - const commandDef = getCommandDefinition(commandName); const isWildcardAndNotSupported = hasWildcard(source.name) && !commandDef.signature.params.some(({ wildcards }) => wildcards); From 71c8d6fddcb5abd32ece23c0b0c74a766691ca34 Mon Sep 17 00:00:00 2001 From: Cristina Amico Date: Mon, 7 Oct 2024 16:57:08 +0200 Subject: [PATCH 26/62] [Fleet] Disable button in logstash output based on correct privileges (#195210) Fixes https://github.com/elastic/kibana/issues/191951 ## Summary Disable button in logstash output based on correct privileges. ### Testing - Enable feature flag `subfeaturePrivileges` - Follow testing steps in above ticket The button "view steps" in logstash output should be disabled if role doesn'thave `fleet.allSettings` privileges ![Screenshot 2024-10-07 at 12 03 25](https://github.com/user-attachments/assets/4933fa97-612c-4ddf-abcb-9838b110df09) ![Screenshot 2024-10-07 at 14 48 45](https://github.com/user-attachments/assets/0155480a-a7c5-4274-ab95-57a867b2a1cc) ### Checklist - [ ] [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 --------- Co-authored-by: Elastic Machine --- .../logstash_instructions/index.tsx | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx index 675aa6cdfd28c..b03d4cb700530 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/index.tsx @@ -21,7 +21,8 @@ import type { EuiCallOutProps } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; -import { useStartServices } from '../../../../hooks'; +import { useStartServices, useAuthz } from '../../../../hooks'; +import { MissingPrivilegesToolTip } from '../../../../../../components/missing_privileges_tooltip'; import { getLogstashPipeline, LOGSTASH_CONFIG_PIPELINES } from './helpers'; import { useLogstashApiKey } from './hooks'; @@ -64,7 +65,8 @@ export const LogstashInstructions = () => { const CollapsibleCallout: React.FunctionComponent = ({ children, ...props }) => { const [isOpen, setIsOpen] = useState(false); - + const authz = useAuthz(); + const hasAllSettings = authz.fleet.allSettings; return ( @@ -76,12 +78,17 @@ const CollapsibleCallout: React.FunctionComponent = ({ children /> ) : ( - setIsOpen(true)} fill={true}> - - + + setIsOpen(true)} fill={true} disabled={!hasAllSettings}> + + + )} {isOpen && ( <> @@ -96,6 +103,8 @@ const CollapsibleCallout: React.FunctionComponent = ({ children const LogstashInstructionSteps = () => { const { docLinks } = useStartServices(); const logstashApiKey = useLogstashApiKey(); + const authz = useAuthz(); + const hasAllSettings = authz.fleet.allSettings; const steps = useMemo( () => [ @@ -120,6 +129,7 @@ const LogstashInstructionSteps = () => { onClick={copy} iconType="copyClipboard" color="text" + disabled={!hasAllSettings} aria-label={i18n.translate( 'xpack.fleet.settings.logstashInstructions.copyApiKeyButtonLabel', { @@ -136,6 +146,7 @@ const LogstashInstructionSteps = () => { { ), }, ], - [logstashApiKey, docLinks] + [logstashApiKey, docLinks, hasAllSettings] ); return ( From 17fcaa5c8eb6cdff5f89a2fa28a20f42d020381f Mon Sep 17 00:00:00 2001 From: Umberto Pepato Date: Mon, 7 Oct 2024 17:17:31 +0200 Subject: [PATCH 27/62] [ResponseOps][Alerting] Fix stackAlerts plugin missing rac API auth scope (#193948) ## Summary Adds the `['rac']` API access scope to the Stack Alerts feature to correctly authenticate alerts API endpoints with the `stackAlerts` permission. Also adds a dedicated API integration test for the impacted endpoint and permission set. ## Release note Fix Stack Alerts feature API access control ## To verify 1. Create rules that fire alerts in Stack management 2. Wait for alerts to be created 3. Create a role with only `Stack Management > Rules : Read` privilege 4. Create a user with that role 5. In another window, open Kibana with the newly created user 6. Check that the Stack Management > Alerts page renders correctly, not showing any missing 403 error toasts --- x-pack/plugins/stack_alerts/server/feature.ts | 4 +- .../functional_with_es_ssl/config.base.ts | 8 ++++ .../common/lib/authentication/roles.ts | 18 +++++++++ .../common/lib/authentication/users.ts | 16 ++++++-- .../tests/basic/get_alerts_index.ts | 40 +++++++++++-------- .../tests/basic/search_strategy.ts | 6 +-- 6 files changed, 66 insertions(+), 26 deletions(-) diff --git a/x-pack/plugins/stack_alerts/server/feature.ts b/x-pack/plugins/stack_alerts/server/feature.ts index 7130560b3232b..fcb7aba3947a3 100644 --- a/x-pack/plugins/stack_alerts/server/feature.ts +++ b/x-pack/plugins/stack_alerts/server/feature.ts @@ -73,7 +73,7 @@ export const BUILT_IN_ALERTS_FEATURE: KibanaFeatureConfig = { all: [], read: [], }, - api: [], + api: ['rac'], ui: [], }, read: { @@ -108,7 +108,7 @@ export const BUILT_IN_ALERTS_FEATURE: KibanaFeatureConfig = { all: [], read: [], }, - api: [], + api: ['rac'], ui: [], }, }, diff --git a/x-pack/test/functional_with_es_ssl/config.base.ts b/x-pack/test/functional_with_es_ssl/config.base.ts index 4280d6c31d6f4..2fdf49bc41fef 100644 --- a/x-pack/test/functional_with_es_ssl/config.base.ts +++ b/x-pack/test/functional_with_es_ssl/config.base.ts @@ -126,6 +126,14 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { spaces: ['*'], }, ], + elasticsearch: { + indices: [ + { + names: ['.alerts-*'], + privileges: ['read'], + }, + ], + }, }, only_actions_role: { kibana: [ diff --git a/x-pack/test/rule_registry/common/lib/authentication/roles.ts b/x-pack/test/rule_registry/common/lib/authentication/roles.ts index df887ea463e29..6f60cb7a3c151 100644 --- a/x-pack/test/rule_registry/common/lib/authentication/roles.ts +++ b/x-pack/test/rule_registry/common/lib/authentication/roles.ts @@ -265,6 +265,23 @@ export const logsOnlyAllSpacesAll: Role = { }, }; +export const stackAlertsOnlyReadSpacesAll: Role = { + name: 'stack_alerts_only_read_spaces_all', + privileges: { + elasticsearch: { + indices: [], + }, + kibana: [ + { + feature: { + stackAlerts: ['read'], + }, + spaces: ['*'], + }, + ], + }, +}; + export const stackAlertsOnlyAllSpacesAll: Role = { name: 'stack_alerts_only_all_spaces_all', privileges: { @@ -511,6 +528,7 @@ export const allRoles = [ securitySolutionOnlyReadSpacesAll, observabilityOnlyAllSpacesAll, logsOnlyAllSpacesAll, + stackAlertsOnlyReadSpacesAll, stackAlertsOnlyAllSpacesAll, observabilityOnlyReadSpacesAll, observabilityOnlyAllSpacesAllWithReadESIndices, diff --git a/x-pack/test/rule_registry/common/lib/authentication/users.ts b/x-pack/test/rule_registry/common/lib/authentication/users.ts index 3d418ab9e779d..f227ac1bcbb90 100644 --- a/x-pack/test/rule_registry/common/lib/authentication/users.ts +++ b/x-pack/test/rule_registry/common/lib/authentication/users.ts @@ -30,7 +30,8 @@ import { observabilityMinReadAlertsAllSpacesAll, observabilityOnlyAllSpacesAllWithReadESIndices, securitySolutionOnlyAllSpacesAllWithReadESIndices, - stackAlertsOnlyAllSpacesAll, + stackAlertsOnlyReadSpacesAll as stackAlertsOnlyReadSpacesAllRole, + stackAlertsOnlyAllSpacesAll as stackAlertsOnlyAllSpacesAllRole, } from './roles'; import { User } from './types'; @@ -130,6 +131,12 @@ export const obsOnlyReadSpacesAll: User = { roles: [observabilityOnlyReadSpacesAll.name], }; +export const stackAlertsOnlyReadSpacesAll: User = { + username: 'stack_alerts_only_read_spaces_all', + password: 'stack_alerts_only_read_spaces_all', + roles: [stackAlertsOnlyReadSpacesAllRole.name], +}; + export const users = [ superUser, secOnly, @@ -177,10 +184,10 @@ export const logsOnlySpacesAll: User = { roles: [logsOnlyAllSpacesAll.name], }; -export const stackAlertsOnlySpacesAll: User = { +export const stackAlertsOnlyAllSpacesAll: User = { username: 'stack_alerts_only_all_spaces_all', password: 'stack_alerts_only_all_spaces_all', - roles: [stackAlertsOnlyAllSpacesAll.name], + roles: [stackAlertsOnlyAllSpacesAllRole.name], }; export const obsOnlySpacesAllEsRead: User = { @@ -297,7 +304,8 @@ export const allUsers = [ secOnlyReadSpacesAll, obsOnlySpacesAll, logsOnlySpacesAll, - stackAlertsOnlySpacesAll, + stackAlertsOnlyReadSpacesAll, + stackAlertsOnlyAllSpacesAll, obsSecSpacesAll, obsSecReadSpacesAll, obsMinReadAlertsRead, diff --git a/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_alerts_index.ts b/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_alerts_index.ts index 1146fa925908c..530c0a57b02ef 100644 --- a/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_alerts_index.ts +++ b/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_alerts_index.ts @@ -7,7 +7,12 @@ import expect from '@kbn/expect'; -import { superUser, obsOnlySpacesAll, secOnlyRead } from '../../../common/lib/authentication/users'; +import { + superUser, + obsOnlySpacesAll, + secOnlyRead, + stackAlertsOnlyReadSpacesAll, +} from '../../../common/lib/authentication/users'; import type { User } from '../../../common/lib/authentication/types'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; import { getSpaceUrlPrefix } from '../../../common/lib/authentication/spaces'; @@ -22,27 +27,19 @@ export default ({ getService }: FtrProviderContext) => { const SPACE1 = 'space1'; const APM_ALERT_INDEX = '.alerts-observability.apm.alerts-default'; const SECURITY_SOLUTION_ALERT_INDEX = '.alerts-security.alerts'; + const STACK_ALERT_INDEX = '.alerts-stack.alerts-default'; - const getAPMIndexName = async (user: User, space: string, expectedStatusCode: number = 200) => { - const resp = await supertestWithoutAuth - .get(`${getSpaceUrlPrefix(space)}${ALERTS_INDEX_URL}?features=apm`) - .auth(user.username, user.password) - .set('kbn-xsrf', 'true') - .expect(expectedStatusCode); - return resp.body.index_name as string[]; - }; - - const getSecuritySolutionIndexName = async ( + const getIndexName = async ( + featureIds: string[], user: User, space: string, expectedStatusCode: number = 200 ) => { const resp = await supertestWithoutAuth - .get(`${getSpaceUrlPrefix(space)}${ALERTS_INDEX_URL}?features=siem`) + .get(`${getSpaceUrlPrefix(space)}${ALERTS_INDEX_URL}?features=${featureIds.join(',')}`) .auth(user.username, user.password) .set('kbn-xsrf', 'true') .expect(expectedStatusCode); - return resp.body.index_name as string[]; }; @@ -52,24 +49,33 @@ export default ({ getService }: FtrProviderContext) => { }); describe('Users:', () => { it(`${obsOnlySpacesAll.username} should be able to access the APM alert in ${SPACE1}`, async () => { - const indexNames = await getAPMIndexName(obsOnlySpacesAll, SPACE1); + const indexNames = await getIndexName(['apm'], obsOnlySpacesAll, SPACE1); expect(indexNames.includes(APM_ALERT_INDEX)).to.eql(true); // assert this here so we can use constants in the dynamically-defined test cases below }); it(`${superUser.username} should be able to access the APM alert in ${SPACE1}`, async () => { - const indexNames = await getAPMIndexName(superUser, SPACE1); + const indexNames = await getIndexName(['apm'], superUser, SPACE1); expect(indexNames.includes(APM_ALERT_INDEX)).to.eql(true); // assert this here so we can use constants in the dynamically-defined test cases below }); it(`${secOnlyRead.username} should NOT be able to access the APM alert in ${SPACE1}`, async () => { - const indexNames = await getAPMIndexName(secOnlyRead, SPACE1); + const indexNames = await getIndexName(['apm'], secOnlyRead, SPACE1); expect(indexNames?.length).to.eql(0); }); it(`${secOnlyRead.username} should be able to access the security solution alert in ${SPACE1}`, async () => { - const indexNames = await getSecuritySolutionIndexName(secOnlyRead, SPACE1); + const indexNames = await getIndexName(['siem'], secOnlyRead, SPACE1); expect(indexNames.includes(`${SECURITY_SOLUTION_ALERT_INDEX}-${SPACE1}`)).to.eql(true); // assert this here so we can use constants in the dynamically-defined test cases below }); + + it(`${stackAlertsOnlyReadSpacesAll.username} should be able to access the stack alert in ${SPACE1}`, async () => { + const indexNames = await getIndexName( + ['stackAlerts'], + stackAlertsOnlyReadSpacesAll, + SPACE1 + ); + expect(indexNames.includes(STACK_ALERT_INDEX)).to.eql(true); + }); }); }); }; diff --git a/x-pack/test/rule_registry/security_and_spaces/tests/basic/search_strategy.ts b/x-pack/test/rule_registry/security_and_spaces/tests/basic/search_strategy.ts index 2fe2567f5e523..289fe4347e8f6 100644 --- a/x-pack/test/rule_registry/security_and_spaces/tests/basic/search_strategy.ts +++ b/x-pack/test/rule_registry/security_and_spaces/tests/basic/search_strategy.ts @@ -13,7 +13,7 @@ import { obsOnlySpacesAll, logsOnlySpacesAll, secOnlySpacesAllEsReadAll, - stackAlertsOnlySpacesAll, + stackAlertsOnlyAllSpacesAll, superUser, } from '../../../common/lib/authentication/users'; @@ -360,8 +360,8 @@ export default ({ getService }: FtrProviderContext) => { const result = await secureBsearch.send({ supertestWithoutAuth, auth: { - username: stackAlertsOnlySpacesAll.username, - password: stackAlertsOnlySpacesAll.password, + username: stackAlertsOnlyAllSpacesAll.username, + password: stackAlertsOnlyAllSpacesAll.password, }, referer: 'test', kibanaVersion, From ae36dd5bf2713cafc2e5eaa73629612686842c1a Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Mon, 7 Oct 2024 17:32:18 +0200 Subject: [PATCH 28/62] [ML] AIOps: Cleanup context/embeddingOrigin (#194442) ## Summary Part of #187772. We had a mix of passing around `embeddingOrigin` via props and context. This PR cleans this up, `embeddingOrigin` is now be required to be passed in on the outer most component and will then be used internally via context only. The PR also renames references to `AppDependencies` to `AiopsAppContextValue`. Originally, this context was used only to pass in dependencies to be used via `useKibana`. Over time this changed a bit and we started passing in other non-changing values, the naming change now reflects that more properly and brings the name in line with the other context related vars like `AiopsAppContext.Provider` and `useAiopsAppContext`. ### Checklist - [ ] [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] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../pattern_analysis_table.tsx | 8 +++- x-pack/packages/ml/aiops_common/constants.ts | 16 +++++-- .../change_point_detection_root.tsx | 24 +++++----- .../log_categorization_app_state.tsx | 15 +++--- .../log_categorization_for_discover.tsx | 4 +- ...og_categorization_for_discover_wrapper.tsx | 47 ++++--------------- .../log_categorization_for_embeddable.tsx | 4 +- .../log_categorization_for_flyout.tsx | 8 ++-- .../log_categorization_page.tsx | 14 ++---- .../log_categorization/show_flyout.tsx | 10 ++-- .../log_rate_analysis_app_state.tsx | 12 ++--- .../log_rate_analysis_content.tsx | 4 -- .../log_rate_analysis_content_wrapper.tsx | 14 ++---- .../log_rate_analysis_page.tsx | 2 - .../log_rate_analysis_results.tsx | 9 ++-- .../embeddable_change_point_chart_factory.tsx | 8 ++-- .../resolve_change_point_config_input.tsx | 12 ++--- .../embeddable_pattern_analysis_factory.tsx | 7 ++- .../resolve_pattern_analysis_config_input.tsx | 12 ++--- .../public/hooks/use_aiops_app_context.ts | 10 ++-- x-pack/plugins/aiops/public/index.ts | 2 +- .../change_point_detection.tsx | 23 ++++----- .../shared_components/pattern_analysis.tsx | 22 ++++----- .../route_handler_factory.ts | 4 +- .../route_handler_factory.ts | 4 +- .../route_handler_factory.ts | 4 +- x-pack/plugins/aiops/tsconfig.json | 1 - .../aiops/change_point_detection.tsx | 4 +- .../application/aiops/log_categorization.tsx | 43 ++++++++++------- .../application/aiops/log_rate_analysis.tsx | 43 +++++++++-------- x-pack/plugins/ml/tsconfig.json | 3 +- .../components/log_rate_analysis.tsx | 38 ++++++++------- .../log_rate_analysis.tsx | 38 ++++++++------- .../custom_kql/log_rate_analysis_panel.tsx | 38 ++++++++------- 34 files changed, 243 insertions(+), 264 deletions(-) diff --git a/src/plugins/discover/public/application/main/components/pattern_analysis/pattern_analysis_table.tsx b/src/plugins/discover/public/application/main/components/pattern_analysis/pattern_analysis_table.tsx index bc93d2b90c645..0c0236ab60c08 100644 --- a/src/plugins/discover/public/application/main/components/pattern_analysis/pattern_analysis_table.tsx +++ b/src/plugins/discover/public/application/main/components/pattern_analysis/pattern_analysis_table.tsx @@ -12,6 +12,7 @@ import { METRIC_TYPE, UiCounterMetricType } from '@kbn/analytics'; import { type EmbeddablePatternAnalysisInput } from '@kbn/aiops-log-pattern-analysis/embeddable'; import { pick } from 'lodash'; import type { LogCategorizationEmbeddableProps } from '@kbn/aiops-plugin/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover'; +import type { AiopsAppContextValue } from '@kbn/aiops-plugin/public/hooks/use_aiops_app_context'; import { useDiscoverServices } from '../../../../hooks/use_discover_services'; import type { DiscoverStateContainer } from '../../state_management/discover_state'; import { PATTERN_ANALYSIS_LOADED } from './constants'; @@ -63,8 +64,11 @@ export const PatternAnalysisTable = (props: PatternAnalysisTableProps) => { return ( ); }; diff --git a/x-pack/packages/ml/aiops_common/constants.ts b/x-pack/packages/ml/aiops_common/constants.ts index ba33439f32221..39a0fdc5842c8 100644 --- a/x-pack/packages/ml/aiops_common/constants.ts +++ b/x-pack/packages/ml/aiops_common/constants.ts @@ -16,9 +16,15 @@ export const AIOPS_API_ENDPOINT = { CATEGORIZATION_FIELD_VALIDATION: '/internal/aiops/categorization_field_validation', } as const; -export const AIOPS_TELEMETRY_ID = { - AIOPS_DEFAULT_SOURCE: 'ml_aiops_labs', - AIOPS_ANALYSIS_RUN_ORIGIN: 'aiops-analysis-run-origin', -} as const; +/** + * Used for telemetry purposes to track the origin of the analysis run. + */ +export const AIOPS_ANALYSIS_RUN_ORIGIN = 'aiops-analysis-run-origin'; -export const EMBEDDABLE_ORIGIN = 'embeddable'; +export const AIOPS_EMBEDDABLE_ORIGIN = { + CASES: 'cases', + DASHBOARD: 'dashboard', + DEFAULT: 'embeddable', + DISCOVER: 'discover', + ML_AIOPS_LABS: 'ml_aiops_labs', +} as const; diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx index a259e3debfb04..36f8f3e2ddaf6 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_root.tsx @@ -24,10 +24,10 @@ import { mlTimefilterRefresh$, } from '@kbn/ml-date-picker'; import { UI_SETTINGS } from '@kbn/data-plugin/common'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; import { DataSourceContext } from '../../hooks/use_data_source'; -import type { AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; +import type { AiopsAppContextValue } from '../../hooks/use_aiops_app_context'; import { AiopsAppContext } from '../../hooks/use_aiops_app_context'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; @@ -52,8 +52,8 @@ export interface ChangePointDetectionAppStateProps { dataView: DataView; /** The saved search to analyze. */ savedSearch: SavedSearch | null; - /** App dependencies */ - appDependencies: AiopsAppDependencies; + /** App context value */ + appContextValue: AiopsAppContextValue; /** Optional flag to indicate whether kibana is running in serverless */ showFrozenDataTierChoice?: boolean; } @@ -61,11 +61,11 @@ export interface ChangePointDetectionAppStateProps { export const ChangePointDetectionAppState: FC = ({ dataView, savedSearch, - appDependencies, + appContextValue, showFrozenDataTierChoice = true, }) => { const datePickerDeps: DatePickerDependencies = { - ...pick(appDependencies, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), + ...pick(appContextValue, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), uiSettingsKeys: UI_SETTINGS, showFrozenDataTierChoice, }; @@ -80,19 +80,19 @@ export const ChangePointDetectionAppState: FC return <>{warning}; } - appDependencies.embeddingOrigin = AIOPS_TELEMETRY_ID.AIOPS_DEFAULT_SOURCE; + appContextValue.embeddingOrigin = AIOPS_EMBEDDABLE_ORIGIN.ML_AIOPS_LABS; const PresentationContextProvider = - appDependencies.presentationUtil?.ContextProvider ?? React.Fragment; + appContextValue.presentationUtil?.ContextProvider ?? React.Fragment; - const CasesContext = appDependencies.cases?.ui.getCasesContext() ?? React.Fragment; - const casesPermissions = appDependencies.cases?.helpers.canUseCases(); + const CasesContext = appContextValue.cases?.ui.getCasesContext() ?? React.Fragment; + const casesPermissions = appContextValue.cases?.helpers.canUseCases(); return ( - + - + diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx index dc9d8c8c0dba2..85e81ec0f2996 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_app_state.tsx @@ -15,10 +15,9 @@ import { UrlStateProvider } from '@kbn/ml-url-state'; import { Storage } from '@kbn/kibana-utils-plugin/public'; import { DatePickerContextProvider, type DatePickerDependencies } from '@kbn/ml-date-picker'; import { UI_SETTINGS } from '@kbn/data-plugin/common'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; import { DataSourceContext } from '../../hooks/use_data_source'; -import type { AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; +import type { AiopsAppContextValue } from '../../hooks/use_aiops_app_context'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; import { AiopsAppContext } from '../../hooks/use_aiops_app_context'; @@ -35,8 +34,8 @@ export interface LogCategorizationAppStateProps { dataView: DataView; /** The saved search to analyze. */ savedSearch: SavedSearch | null; - /** App dependencies */ - appDependencies: AiopsAppDependencies; + /** App context value */ + appContextValue: AiopsAppContextValue; /** Optional flag to indicate whether kibana is running in serverless */ showFrozenDataTierChoice?: boolean; } @@ -44,7 +43,7 @@ export interface LogCategorizationAppStateProps { export const LogCategorizationAppState: FC = ({ dataView, savedSearch, - appDependencies, + appContextValue, showFrozenDataTierChoice = true, }) => { if (!dataView) return null; @@ -56,18 +55,18 @@ export const LogCategorizationAppState: FC = ({ } const datePickerDeps: DatePickerDependencies = { - ...pick(appDependencies, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), + ...pick(appContextValue, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), uiSettingsKeys: UI_SETTINGS, showFrozenDataTierChoice, }; return ( - + - + diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover.tsx index 27d680fc1769c..db2135e94ab74 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover.tsx @@ -19,7 +19,7 @@ import type { FieldValidationResults } from '@kbn/ml-category-validator'; import type { Category } from '@kbn/aiops-log-pattern-analysis/types'; import type { CategorizationAdditionalFilter } from '@kbn/aiops-log-pattern-analysis/create_category_request'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN } from '@kbn/aiops-common/constants'; import type { EmbeddablePatternAnalysisInput } from '@kbn/aiops-log-pattern-analysis/embeddable'; import { css } from '@emotion/react'; import { useTableState } from '@kbn/ml-in-memory-table/hooks/use_table_state'; @@ -270,7 +270,7 @@ export const LogCategorizationDiscover: FC = ( searchQuery, runtimeMappings, { - [AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, + [AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, } ), runCategorizeRequest( diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover_wrapper.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover_wrapper.tsx index 1af4f03a06bb3..6582ba5333b40 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover_wrapper.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_discover_wrapper.tsx @@ -7,67 +7,40 @@ import type { FC } from 'react'; import React, { Suspense } from 'react'; -import type { ThemeServiceStart } from '@kbn/core-theme-browser'; -import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; -import type { IUiSettingsClient } from '@kbn/core/public'; -import type { CoreStart } from '@kbn/core/public'; -import type { LensPublicStart } from '@kbn/lens-plugin/public'; -import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; -import type { ChartsPluginStart } from '@kbn/charts-plugin/public'; -import type { UiActionsStart } from '@kbn/ui-actions-plugin/public'; +import { pick } from 'lodash'; + import { DatePickerContextProvider } from '@kbn/ml-date-picker'; import { StorageContextProvider } from '@kbn/ml-local-storage'; - -import { pick } from 'lodash'; import { UI_SETTINGS } from '@kbn/data-plugin/public'; import { Storage } from '@kbn/kibana-utils-plugin/public'; + import { AIOPS_STORAGE_KEYS } from '../../../types/storage'; -import type { AiopsAppDependencies } from '../../../hooks/use_aiops_app_context'; -import { AiopsAppContext } from '../../../hooks/use_aiops_app_context'; +import { AiopsAppContext, type AiopsAppContextValue } from '../../../hooks/use_aiops_app_context'; + import type { LogCategorizationEmbeddableProps } from './log_categorization_for_discover'; import { LogCategorizationDiscover } from './log_categorization_for_discover'; -export interface EmbeddableLogCategorizationDeps { - theme: ThemeServiceStart; - data: DataPublicPluginStart; - uiSettings: IUiSettingsClient; - http: CoreStart['http']; - notifications: CoreStart['notifications']; - i18n: CoreStart['i18n']; - lens: LensPublicStart; - fieldFormats: FieldFormatsStart; - application: CoreStart['application']; - charts: ChartsPluginStart; - uiActions: UiActionsStart; -} - export interface LogCategorizationEmbeddableWrapperProps { - deps: EmbeddableLogCategorizationDeps; + appContextValue: AiopsAppContextValue; props: LogCategorizationEmbeddableProps; - embeddingOrigin?: string; } const localStorage = new Storage(window.localStorage); export const LogCategorizationDiscoverWrapper: FC = ({ - deps, + appContextValue, props, - embeddingOrigin, }) => { - const I18nContext = deps.i18n.Context; - const aiopsAppContextValue = { - embeddingOrigin, - ...deps, - } as unknown as AiopsAppDependencies; + const I18nContext = appContextValue.i18n.Context; const datePickerDeps = { - ...pick(deps, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), + ...pick(appContextValue, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), uiSettingsKeys: UI_SETTINGS, }; return ( - + diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_embeddable.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_embeddable.tsx index 0d4cf093019cd..9178ac7428664 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_embeddable.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_embeddable/log_categorization_for_embeddable.tsx @@ -18,7 +18,7 @@ import type { Category } from '@kbn/aiops-log-pattern-analysis/types'; import type { CategorizationAdditionalFilter } from '@kbn/aiops-log-pattern-analysis/create_category_request'; import type { EmbeddablePatternAnalysisInput } from '@kbn/aiops-log-pattern-analysis/embeddable'; import { useTableState } from '@kbn/ml-in-memory-table/hooks/use_table_state'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN } from '@kbn/aiops-common/constants'; import datemath from '@elastic/datemath'; import useMountedState from 'react-use/lib/useMountedState'; import { useFilterQueryUpdates } from '../../../hooks/use_filters_query'; @@ -224,7 +224,7 @@ export const LogCategorizationEmbeddable: FC = searchQuery, runtimeMappings, { - [AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, + [AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, } ), runCategorizeRequest( diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_flyout.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_flyout.tsx index ec61dca179da2..2036c5d3a24e9 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_flyout.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_for_flyout.tsx @@ -28,7 +28,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { usePageUrlState } from '@kbn/ml-url-state'; import type { FieldValidationResults } from '@kbn/ml-category-validator'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN } from '@kbn/aiops-common/constants'; import type { CategorizationAdditionalFilter } from '@kbn/aiops-log-pattern-analysis/create_category_request'; import type { Category } from '@kbn/aiops-log-pattern-analysis/types'; @@ -64,8 +64,6 @@ export interface LogCategorizationPageProps { savedSearch: SavedSearch | null; selectedField: DataViewField; onClose: () => void; - /** Identifier to indicate the plugin utilizing the component */ - embeddingOrigin: string; additionalFilter?: CategorizationAdditionalFilter; } @@ -76,7 +74,6 @@ export const LogCategorizationFlyout: FC = ({ savedSearch, selectedField, onClose, - embeddingOrigin, additionalFilter, }) => { const { @@ -85,6 +82,7 @@ export const LogCategorizationFlyout: FC = ({ query: { getState }, }, uiSettings, + embeddingOrigin, } = useAiopsAppContext(); const { runValidateFieldRequest, cancelRequest: cancelValidationRequest } = @@ -198,7 +196,7 @@ export const LogCategorizationFlyout: FC = ({ searchQuery, runtimeMappings, { - [AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, + [AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, } ), runCategorizeRequest( diff --git a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx index 567201fff0dd2..4c31f4df1e044 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/log_categorization_page.tsx @@ -28,10 +28,10 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { usePageUrlState, useUrlState } from '@kbn/ml-url-state'; import type { FieldValidationResults } from '@kbn/ml-category-validator'; import type { SearchQueryLanguage } from '@kbn/ml-query-utils'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN } from '@kbn/aiops-common/constants'; import type { Category } from '@kbn/aiops-log-pattern-analysis/types'; - import { useTableState } from '@kbn/ml-in-memory-table/hooks/use_table_state'; + import { useDataSource } from '../../hooks/use_data_source'; import { useData } from '../../hooks/use_data'; import { useSearch } from '../../hooks/use_search'; @@ -59,14 +59,10 @@ import { useActions } from './category_table/use_actions'; const BAR_TARGET = 20; const DEFAULT_SELECTED_FIELD = 'message'; -interface LogCategorizationPageProps { - /** Identifier to indicate the plugin utilizing the component */ - embeddingOrigin: string; -} - -export const LogCategorizationPage: FC = ({ embeddingOrigin }) => { +export const LogCategorizationPage: FC = () => { const { notifications: { toasts }, + embeddingOrigin, } = useAiopsAppContext(); const { dataView, savedSearch } = useDataSource(); @@ -229,7 +225,7 @@ export const LogCategorizationPage: FC = ({ embeddin searchQuery, runtimeMappings, { - [AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, + [AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin, } ), diff --git a/x-pack/plugins/aiops/public/components/log_categorization/show_flyout.tsx b/x-pack/plugins/aiops/public/components/log_categorization/show_flyout.tsx index 87a2e9e934cc3..a97f4c7f7fe79 100644 --- a/x-pack/plugins/aiops/public/components/log_categorization/show_flyout.tsx +++ b/x-pack/plugins/aiops/public/components/log_categorization/show_flyout.tsx @@ -21,7 +21,7 @@ import { StorageContextProvider } from '@kbn/ml-local-storage'; import type { CategorizationAdditionalFilter } from '@kbn/aiops-log-pattern-analysis/create_category_request'; import type { AiopsPluginStartDeps } from '../../types'; import { LogCategorizationFlyout } from './log_categorization_for_flyout'; -import { AiopsAppContext, type AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; +import { AiopsAppContext, type AiopsAppContextValue } from '../../hooks/use_aiops_app_context'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; const localStorage = new Storage(window.localStorage); @@ -43,13 +43,14 @@ export async function showCategorizeFlyout( resolve(); }; - const appDependencies: AiopsAppDependencies = { + const appContextValue: AiopsAppContextValue = { + embeddingOrigin: originatingApp, ...coreStart, ...plugins, }; const startServices = pick(coreStart, 'analytics', 'i18n', 'theme'); const datePickerDeps: DatePickerDependencies = { - ...pick(appDependencies, ['data', 'http', 'notifications', 'theme', 'uiSettings']), + ...pick(appContextValue, ['data', 'http', 'notifications', 'theme', 'uiSettings']), i18n, uiSettingsKeys: UI_SETTINGS, }; @@ -61,7 +62,7 @@ export async function showCategorizeFlyout( ...coreStart, }} > - + diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx index 740bc87ef9cb3..89a8c9aee19ae 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx @@ -18,7 +18,7 @@ import { DatePickerContextProvider, type DatePickerDependencies } from '@kbn/ml- import { UI_SETTINGS } from '@kbn/data-plugin/common'; import { LogRateAnalysisReduxProvider } from '@kbn/aiops-log-rate-analysis/state'; -import type { AiopsAppDependencies } from '../../hooks/use_aiops_app_context'; +import type { AiopsAppContextValue } from '../../hooks/use_aiops_app_context'; import { AiopsAppContext } from '../../hooks/use_aiops_app_context'; import { DataSourceContext } from '../../hooks/use_data_source'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; @@ -36,8 +36,8 @@ export interface LogRateAnalysisAppStateProps { dataView: DataView; /** The saved search to analyze. */ savedSearch: SavedSearch | null; - /** App dependencies */ - appDependencies: AiopsAppDependencies; + /** App context value */ + appContextValue: AiopsAppContextValue; /** Optional flag to indicate whether to show contextual insights */ showContextualInsights?: boolean; /** Optional flag to indicate whether kibana is running in serverless */ @@ -47,7 +47,7 @@ export interface LogRateAnalysisAppStateProps { export const LogRateAnalysisAppState: FC = ({ dataView, savedSearch, - appDependencies, + appContextValue, showContextualInsights = false, showFrozenDataTierChoice = true, }) => { @@ -60,13 +60,13 @@ export const LogRateAnalysisAppState: FC = ({ } const datePickerDeps: DatePickerDependencies = { - ...pick(appDependencies, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), + ...pick(appContextValue, ['data', 'http', 'notifications', 'theme', 'uiSettings', 'i18n']), uiSettingsKeys: UI_SETTINGS, showFrozenDataTierChoice, }; return ( - + diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx index e7c33dd43d18f..7bf43037f45c0 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx @@ -60,8 +60,6 @@ export interface LogRateAnalysisContentProps { onAnalysisCompleted?: (d: LogRateAnalysisResultsData) => void; /** Optional callback that exposes current window parameters */ onWindowParametersChange?: (wp?: WindowParameters, replace?: boolean) => void; - /** Identifier to indicate the plugin utilizing the component */ - embeddingOrigin: string; } export const LogRateAnalysisContent: FC = ({ @@ -70,7 +68,6 @@ export const LogRateAnalysisContent: FC = ({ barHighlightColorOverride, onAnalysisCompleted, onWindowParametersChange, - embeddingOrigin, }) => { const dispatch = useAppDispatch(); @@ -218,7 +215,6 @@ export const LogRateAnalysisContent: FC = ({ searchQuery={searchQuery} barColorOverride={barColorOverride} barHighlightColorOverride={barHighlightColorOverride} - embeddingOrigin={embeddingOrigin} /> )} {showNoAutoRunEmptyPrompt && ( diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx index dace975115deb..96b1f3f2c80e4 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx @@ -21,7 +21,7 @@ import { UI_SETTINGS } from '@kbn/data-plugin/common'; import { LogRateAnalysisReduxProvider } from '@kbn/aiops-log-rate-analysis/state'; import { timeSeriesDataViewWarning } from '../../../application/utils/time_series_dataview_check'; -import { AiopsAppContext, type AiopsAppDependencies } from '../../../hooks/use_aiops_app_context'; +import { AiopsAppContext, type AiopsAppContextValue } from '../../../hooks/use_aiops_app_context'; import { DataSourceContext } from '../../../hooks/use_data_source'; import { AIOPS_STORAGE_KEYS } from '../../../types/storage'; @@ -39,7 +39,7 @@ export interface LogRateAnalysisContentWrapperProps { /** The data view to analyze. */ dataView: DataView; /** App dependencies */ - appDependencies: AiopsAppDependencies; + appContextValue: AiopsAppContextValue; /** Timestamp for start of initial analysis */ initialAnalysisStart?: number | WindowParameters; /** Optional time range */ @@ -57,13 +57,11 @@ export interface LogRateAnalysisContentWrapperProps { onAnalysisCompleted?: (d: LogRateAnalysisResultsData) => void; /** Optional flag to indicate whether kibana is running in serverless */ showFrozenDataTierChoice?: boolean; - /** Identifier to indicate the plugin utilizing the component */ - embeddingOrigin: string; } export const LogRateAnalysisContentWrapper: FC = ({ dataView, - appDependencies, + appContextValue, initialAnalysisStart, timeRange, esSearchQuery, @@ -71,7 +69,6 @@ export const LogRateAnalysisContentWrapper: FC { if (!dataView) return null; @@ -82,13 +79,13 @@ export const LogRateAnalysisContentWrapper: FC + @@ -103,7 +100,6 @@ export const LogRateAnalysisContentWrapper: FC diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx index acaa2fb27d998..862de229958f0 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx @@ -19,7 +19,6 @@ import { FilterStateStore } from '@kbn/es-query'; import { useUrlState, usePageUrlState } from '@kbn/ml-url-state'; import type { SearchQueryLanguage } from '@kbn/ml-query-utils'; import type { WindowParameters } from '@kbn/aiops-log-rate-analysis'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; import { useAppDispatch, useCurrentSelectedSignificantItem, @@ -311,7 +310,6 @@ export const LogRateAnalysisPage: FC = ({ = ({ @@ -162,9 +160,8 @@ export const LogRateAnalysisResults: FC = ({ searchQuery, barColorOverride, barHighlightColorOverride, - embeddingOrigin, }) => { - const { analytics, http } = useAiopsAppContext(); + const { analytics, http, embeddingOrigin } = useAiopsAppContext(); const { dataView } = useDataSource(); const dispatch = useAppDispatch(); @@ -351,7 +348,7 @@ export const LogRateAnalysisResults: FC = ({ overrides, sampleProbability, }, - headers: { [AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin }, + headers: { [AIOPS_ANALYSIS_RUN_ORIGIN]: embeddingOrigin }, }; }, [ analysisType, diff --git a/x-pack/plugins/aiops/public/embeddables/change_point_chart/embeddable_change_point_chart_factory.tsx b/x-pack/plugins/aiops/public/embeddables/change_point_chart/embeddable_change_point_chart_factory.tsx index 7e0e00b7ac02d..7cf39eb1cf4ae 100644 --- a/x-pack/plugins/aiops/public/embeddables/change_point_chart/embeddable_change_point_chart_factory.tsx +++ b/x-pack/plugins/aiops/public/embeddables/change_point_chart/embeddable_change_point_chart_factory.tsx @@ -23,6 +23,7 @@ import { initializeTitles, useBatchedPublishingSubjects, } from '@kbn/presentation-publishing'; + import fastIsEqual from 'fast-deep-equal'; import { cloneDeep } from 'lodash'; import React, { useMemo } from 'react'; @@ -231,10 +232,9 @@ export const getChangePointChartEmbeddableFactory = ( const lastReloadRequestTime = useObservable(reload$, Date.now()); const timeRange = useObservable(timeRange$, undefined); - let embeddingOrigin; - if (apiHasExecutionContext(parentApi)) { - embeddingOrigin = parentApi.executionContext.type; - } + const embeddingOrigin = apiHasExecutionContext(parentApi) + ? parentApi.executionContext.type + : undefined; return ( (undefined); +export const AiopsAppContext = createContext(undefined); /** * Custom hook to get AIOps app dependency context. */ -export const useAiopsAppContext = (): AiopsAppDependencies => { +export const useAiopsAppContext = (): AiopsAppContextValue => { const aiopsAppContext = useContext(AiopsAppContext); // if `undefined`, throw an error diff --git a/x-pack/plugins/aiops/public/index.ts b/x-pack/plugins/aiops/public/index.ts index 6b34bd1d77c91..a498ce71544f8 100755 --- a/x-pack/plugins/aiops/public/index.ts +++ b/x-pack/plugins/aiops/public/index.ts @@ -15,7 +15,7 @@ export function plugin() { export type { AiopsPluginStart, AiopsPluginSetup } from './types'; -export type { AiopsAppDependencies } from './hooks/use_aiops_app_context'; +export type { AiopsAppContextValue } from './hooks/use_aiops_app_context'; export type { LogRateAnalysisAppStateProps } from './components/log_rate_analysis'; export type { LogRateAnalysisContentWrapperProps } from './components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper'; export type { LogCategorizationAppStateProps } from './components/log_categorization'; diff --git a/x-pack/plugins/aiops/public/shared_components/change_point_detection.tsx b/x-pack/plugins/aiops/public/shared_components/change_point_detection.tsx index 8746730f74134..9afbd9e1c4c8d 100644 --- a/x-pack/plugins/aiops/public/shared_components/change_point_detection.tsx +++ b/x-pack/plugins/aiops/public/shared_components/change_point_detection.tsx @@ -6,7 +6,7 @@ */ import { css } from '@emotion/react'; import type { ChangePointDetectionViewType } from '@kbn/aiops-change-point-detection/constants'; -import { EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; +import { AIOPS_EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; import type { CoreStart } from '@kbn/core-lifecycle-browser'; import { UI_SETTINGS } from '@kbn/data-service'; import type { TimeRange } from '@kbn/es-query'; @@ -21,7 +21,7 @@ import { type ChangePointAnnotation, } from '../components/change_point_detection/change_point_detection_context'; import { ChartGridEmbeddableWrapper } from '../embeddables/change_point_chart/embeddable_chart_component_wrapper'; -import { AiopsAppContext, type AiopsAppDependencies } from '../hooks/use_aiops_app_context'; +import { AiopsAppContext, type AiopsAppContextValue } from '../hooks/use_aiops_app_context'; import { DataSourceContextProvider } from '../hooks/use_data_source'; import { FilterQueryContextProvider } from '../hooks/use_filters_query'; import { ReloadContextProvider } from '../hooks/use_reload'; @@ -85,18 +85,19 @@ const ChangePointDetectionWrapper: FC = ({ lastReloadRequestTime, }) => { const deps = useMemo(() => { - const { http, uiSettings, notifications, ...startServices } = coreStart; - const { lens, data, usageCollection, fieldFormats } = pluginStart; + const { charts, lens, data, usageCollection, fieldFormats, share, storage, unifiedSearch } = + pluginStart; return { - http, - uiSettings, + charts, data, - notifications, lens, usageCollection, fieldFormats, - ...startServices, + unifiedSearch, + share, + storage, + ...coreStart, }; }, [coreStart, pluginStart]); @@ -105,11 +106,11 @@ const ChangePointDetectionWrapper: FC = ({ uiSettingsKeys: UI_SETTINGS, }; - const aiopsAppContextValue = useMemo(() => { + const aiopsAppContextValue = useMemo(() => { return { - embeddingOrigin: embeddingOrigin ?? EMBEDDABLE_ORIGIN, + embeddingOrigin: embeddingOrigin ?? AIOPS_EMBEDDABLE_ORIGIN.DEFAULT, ...deps, - } as unknown as AiopsAppDependencies; + }; }, [deps, embeddingOrigin]); const [manualReload$] = useState>( diff --git a/x-pack/plugins/aiops/public/shared_components/pattern_analysis.tsx b/x-pack/plugins/aiops/public/shared_components/pattern_analysis.tsx index af474f4f5ef3e..78261cd1f62f0 100644 --- a/x-pack/plugins/aiops/public/shared_components/pattern_analysis.tsx +++ b/x-pack/plugins/aiops/public/shared_components/pattern_analysis.tsx @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; +import { AIOPS_EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; import type { Category } from '@kbn/aiops-log-pattern-analysis/types'; import type { CoreStart } from '@kbn/core-lifecycle-browser'; import { UI_SETTINGS } from '@kbn/data-service'; @@ -21,7 +21,7 @@ import type { RandomSamplerProbability, } from '../components/log_categorization/sampling_menu/random_sampler'; import { PatternAnalysisEmbeddableWrapper } from '../embeddables/pattern_analysis/pattern_analysys_component_wrapper'; -import { AiopsAppContext, type AiopsAppDependencies } from '../hooks/use_aiops_app_context'; +import { AiopsAppContext, type AiopsAppContextValue } from '../hooks/use_aiops_app_context'; import { DataSourceContextProvider } from '../hooks/use_data_source'; import { FilterQueryContextProvider } from '../hooks/use_filters_query'; import { ReloadContextProvider } from '../hooks/use_reload'; @@ -82,19 +82,19 @@ const PatternAnalysisWrapper: FC = ({ onChange, }) => { const deps = useMemo(() => { - const { http, uiSettings, notifications, ...startServices } = coreStart; - const { lens, data, usageCollection, fieldFormats, charts } = pluginStart; + const { lens, data, usageCollection, fieldFormats, charts, share, storage, unifiedSearch } = + pluginStart; return { - http, - uiSettings, data, - notifications, lens, usageCollection, fieldFormats, charts, - ...startServices, + share, + storage, + unifiedSearch, + ...coreStart, }; }, [coreStart, pluginStart]); @@ -103,11 +103,11 @@ const PatternAnalysisWrapper: FC = ({ uiSettingsKeys: UI_SETTINGS, }; - const aiopsAppContextValue = useMemo(() => { + const aiopsAppContextValue = useMemo(() => { return { - embeddingOrigin: embeddingOrigin ?? EMBEDDABLE_ORIGIN, + embeddingOrigin: embeddingOrigin ?? AIOPS_EMBEDDABLE_ORIGIN.DEFAULT, ...deps, - } as unknown as AiopsAppDependencies; + }; }, [deps, embeddingOrigin]); const [manualReload$] = useState>( diff --git a/x-pack/plugins/aiops/server/routes/categorization_field_validation/route_handler_factory.ts b/x-pack/plugins/aiops/server/routes/categorization_field_validation/route_handler_factory.ts index 950b6a9551d68..d0bfc4cb8a2db 100644 --- a/x-pack/plugins/aiops/server/routes/categorization_field_validation/route_handler_factory.ts +++ b/x-pack/plugins/aiops/server/routes/categorization_field_validation/route_handler_factory.ts @@ -13,7 +13,7 @@ import type { } from '@kbn/core/server'; import { categorizationExamplesProvider } from '@kbn/ml-category-validator'; import type { UsageCounter } from '@kbn/usage-collection-plugin/server'; -import { AIOPS_TELEMETRY_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN } from '@kbn/aiops-common/constants'; import { AIOPS_API_ENDPOINT } from '@kbn/aiops-common/constants'; import type { CategorizationFieldValidationSchema } from '@kbn/aiops-log-pattern-analysis/schema'; @@ -34,7 +34,7 @@ export const routeHandlerFactory: ( const { headers } = request; trackAIOpsRouteUsage( `POST ${AIOPS_API_ENDPOINT.CATEGORIZATION_FIELD_VALIDATION}`, - headers[AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN], + headers[AIOPS_ANALYSIS_RUN_ORIGIN], usageCounter ); diff --git a/x-pack/plugins/aiops/server/routes/log_rate_analysis/route_handler_factory.ts b/x-pack/plugins/aiops/server/routes/log_rate_analysis/route_handler_factory.ts index e6e680c46a055..4421e8122d86e 100644 --- a/x-pack/plugins/aiops/server/routes/log_rate_analysis/route_handler_factory.ts +++ b/x-pack/plugins/aiops/server/routes/log_rate_analysis/route_handler_factory.ts @@ -16,7 +16,7 @@ import { withSpan } from '@kbn/apm-utils'; import type { Logger } from '@kbn/logging'; import { createExecutionContext } from '@kbn/ml-route-utils'; import type { UsageCounter } from '@kbn/usage-collection-plugin/server'; -import { AIOPS_TELEMETRY_ID, AIOPS_PLUGIN_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN, AIOPS_PLUGIN_ID } from '@kbn/aiops-common/constants'; import type { AiopsLogRateAnalysisSchema, AiopsLogRateAnalysisApiVersion as ApiVersion, @@ -50,7 +50,7 @@ export function routeHandlerFactory( trackAIOpsRouteUsage( `POST ${AIOPS_API_ENDPOINT.LOG_RATE_ANALYSIS}`, - headers[AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN], + headers[AIOPS_ANALYSIS_RUN_ORIGIN], usageCounter ); diff --git a/x-pack/plugins/aiops/server/routes/log_rate_analysis_field_candidates/route_handler_factory.ts b/x-pack/plugins/aiops/server/routes/log_rate_analysis_field_candidates/route_handler_factory.ts index b640927588ef1..22ab36fa81fb9 100644 --- a/x-pack/plugins/aiops/server/routes/log_rate_analysis_field_candidates/route_handler_factory.ts +++ b/x-pack/plugins/aiops/server/routes/log_rate_analysis_field_candidates/route_handler_factory.ts @@ -14,7 +14,7 @@ import type { } from '@kbn/core/server'; import { createExecutionContext } from '@kbn/ml-route-utils'; import type { UsageCounter } from '@kbn/usage-collection-plugin/server'; -import { AIOPS_TELEMETRY_ID, AIOPS_PLUGIN_ID } from '@kbn/aiops-common/constants'; +import { AIOPS_ANALYSIS_RUN_ORIGIN, AIOPS_PLUGIN_ID } from '@kbn/aiops-common/constants'; import type { AiopsLogRateAnalysisSchema, AiopsLogRateAnalysisApiVersion as ApiVersion, @@ -44,7 +44,7 @@ export function routeHandlerFactory( trackAIOpsRouteUsage( `POST ${AIOPS_API_ENDPOINT.LOG_RATE_ANALYSIS_FIELD_CANDIDATES}`, - headers[AIOPS_TELEMETRY_ID.AIOPS_ANALYSIS_RUN_ORIGIN], + headers[AIOPS_ANALYSIS_RUN_ORIGIN], usageCounter ); diff --git a/x-pack/plugins/aiops/tsconfig.json b/x-pack/plugins/aiops/tsconfig.json index c606b479284c4..a90c72660f069 100644 --- a/x-pack/plugins/aiops/tsconfig.json +++ b/x-pack/plugins/aiops/tsconfig.json @@ -24,7 +24,6 @@ "@kbn/core-execution-context-browser", "@kbn/core-http-server", "@kbn/core-lifecycle-browser", - "@kbn/core-theme-browser", "@kbn/core-ui-settings-browser-mocks", "@kbn/core", "@kbn/data-plugin", diff --git a/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx b/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx index 874183dcc4d2c..146a3efc9cfcd 100644 --- a/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx +++ b/x-pack/plugins/ml/public/application/aiops/change_point_detection.tsx @@ -13,6 +13,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { ChangePointDetection } from '@kbn/aiops-plugin/public'; +import { AIOPS_EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; import { useDataSource } from '../contexts/ml/data_source_context'; import { useMlKibana } from '../contexts/kibana'; @@ -48,7 +49,8 @@ export const ChangePointDetectionPage: FC = () => { dataView={dataView} savedSearch={savedSearch} showFrozenDataTierChoice={showNodeInfo} - appDependencies={{ + appContextValue={{ + embeddingOrigin: AIOPS_EMBEDDABLE_ORIGIN.ML_AIOPS_LABS, ...pick(services, [ 'analytics', 'application', diff --git a/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx b/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx index 1ca0fc8ec2ef4..fea9b0d7e8810 100644 --- a/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx +++ b/x-pack/plugins/ml/public/application/aiops/log_categorization.tsx @@ -8,9 +8,13 @@ import type { FC } from 'react'; import React from 'react'; import { pick } from 'lodash'; + import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; + import { FormattedMessage } from '@kbn/i18n-react'; import { LogCategorization } from '@kbn/aiops-plugin/public'; +import { AIOPS_EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; + import { useDataSource } from '../contexts/ml/data_source_context'; import { useMlKibana } from '../contexts/kibana'; import { useEnabledFeatures } from '../contexts/ml'; @@ -40,24 +44,27 @@ export const LogCategorizationPage: FC = () => { dataView={dataView} savedSearch={savedSearch} showFrozenDataTierChoice={showNodeInfo} - appDependencies={pick(services, [ - 'analytics', - 'application', - 'charts', - 'data', - 'executionContext', - 'fieldFormats', - 'http', - 'i18n', - 'lens', - 'notifications', - 'share', - 'storage', - 'theme', - 'uiActions', - 'uiSettings', - 'unifiedSearch', - ])} + appContextValue={{ + embeddingOrigin: AIOPS_EMBEDDABLE_ORIGIN.ML_AIOPS_LABS, + ...pick(services, [ + 'analytics', + 'application', + 'charts', + 'data', + 'executionContext', + 'fieldFormats', + 'http', + 'i18n', + 'lens', + 'notifications', + 'share', + 'storage', + 'theme', + 'uiActions', + 'uiSettings', + 'unifiedSearch', + ]), + }} /> )} diff --git a/x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx b/x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx index f97387fa4c50d..d24b5ab8498b0 100644 --- a/x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx +++ b/x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx @@ -11,6 +11,8 @@ import { pick } from 'lodash'; import { FormattedMessage } from '@kbn/i18n-react'; import { LogRateAnalysis } from '@kbn/aiops-plugin/public'; +import { AIOPS_EMBEDDABLE_ORIGIN } from '@kbn/aiops-common/constants'; + import { useDataSource } from '../contexts/ml/data_source_context'; import { useMlKibana } from '../contexts/kibana'; import { HelpMenu } from '../components/help_menu'; @@ -37,25 +39,28 @@ export const LogRateAnalysisPage: FC = () => { savedSearch={savedSearch} showContextualInsights={showContextualInsights} showFrozenDataTierChoice={showNodeInfo} - appDependencies={pick(services, [ - 'analytics', - 'application', - 'charts', - 'data', - 'executionContext', - 'fieldFormats', - 'http', - 'i18n', - 'lens', - 'notifications', - 'share', - 'storage', - 'theme', - 'uiActions', - 'uiSettings', - 'unifiedSearch', - 'observabilityAIAssistant', - ])} + appContextValue={{ + embeddingOrigin: AIOPS_EMBEDDABLE_ORIGIN.ML_AIOPS_LABS, + ...pick(services, [ + 'analytics', + 'application', + 'charts', + 'data', + 'executionContext', + 'fieldFormats', + 'http', + 'i18n', + 'lens', + 'notifications', + 'share', + 'storage', + 'theme', + 'uiActions', + 'uiSettings', + 'unifiedSearch', + 'observabilityAIAssistant', + ]), + }} /> )} diff --git a/x-pack/plugins/ml/tsconfig.json b/x-pack/plugins/ml/tsconfig.json index b625562ab2674..4f1d63728ab33 100644 --- a/x-pack/plugins/ml/tsconfig.json +++ b/x-pack/plugins/ml/tsconfig.json @@ -131,6 +131,7 @@ "@kbn/json-schemas", "@kbn/ml-field-stats-flyout", "@kbn/ml-parse-interval", - "@kbn/ml-validators" + "@kbn/ml-validators", + "@kbn/aiops-common" ] } diff --git a/x-pack/plugins/observability_solution/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx b/x-pack/plugins/observability_solution/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx index c85a5b072cb7a..a399414f24c54 100644 --- a/x-pack/plugins/observability_solution/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx +++ b/x-pack/plugins/observability_solution/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx @@ -207,7 +207,6 @@ export const LogRateAnalysis: FC = ({ r = ({ r barColorOverride={colorTransformer(Color.color0)} barHighlightColorOverride={colorTransformer(Color.color1)} onAnalysisCompleted={onAnalysisCompleted} - appDependencies={pick(services, [ - 'analytics', - 'application', - 'data', - 'executionContext', - 'charts', - 'fieldFormats', - 'http', - 'notifications', - 'share', - 'storage', - 'uiSettings', - 'unifiedSearch', - 'theme', - 'lens', - 'i18n', - ])} + appContextValue={{ + embeddingOrigin: 'observability_log_threshold_alert_details', + ...pick(services, [ + 'analytics', + 'application', + 'data', + 'executionContext', + 'charts', + 'fieldFormats', + 'http', + 'notifications', + 'share', + 'storage', + 'uiSettings', + 'unifiedSearch', + 'theme', + 'lens', + 'i18n', + ]), + }} /> diff --git a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/log_rate_analysis.tsx b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/log_rate_analysis.tsx index e2cd954087a3b..f2285b3529f65 100644 --- a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/log_rate_analysis.tsx +++ b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/alert_details_app_section/log_rate_analysis.tsx @@ -185,7 +185,6 @@ export function LogRateAnalysis({ diff --git a/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/alert_details/components/custom_panels/custom_kql/log_rate_analysis_panel.tsx b/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/alert_details/components/custom_panels/custom_kql/log_rate_analysis_panel.tsx index 13c2bcf82de82..e94b8d5baed55 100644 --- a/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/alert_details/components/custom_panels/custom_kql/log_rate_analysis_panel.tsx +++ b/x-pack/plugins/observability_solution/slo/public/components/slo/burn_rate/alert_details/components/custom_panels/custom_kql/log_rate_analysis_panel.tsx @@ -279,7 +279,6 @@ export function LogRateAnalysisPanel({ slo, alert, rule }: Props) { From 296a49cbc82f9a649b92b2f6c635729bd416e717 Mon Sep 17 00:00:00 2001 From: wajihaparvez Date: Mon, 7 Oct 2024 11:36:07 -0400 Subject: [PATCH 29/62] Update visuals on Manage & Share Dashboards and Tutorials + consistency edits (#195152) ## Summary Updated visuals on the [Manage and Share Dashboards](https://www.elastic.co/guide/en/kibana/master/_manage_dashboards.html) pages and [Tutorials](https://www.elastic.co/guide/en/kibana/master/_tutorials.html) + made some consistency edits to the text. Rel:[#457](https://github.com/elastic/platform-docs-team/issues/457) and [#466](https://github.com/elastic/platform-docs-team/issues/466) --------- Co-authored-by: florent-leborgne --- .../lens_layerVisualizationTypeMenu_7.16.png | Bin 39341 -> 0 bytes .../tutorial-top-values-of-field-8.16.0.png | Bin 0 -> 1023985 bytes .../images/view-details-dashboards-8.16.0.png | Bin 0 -> 27681 bytes docs/user/dashboard/lens-advanced.asciidoc | 49 ++++++++---------- docs/user/dashboard/share-dashboards.asciidoc | 4 +- ...create-a-dashboard-of-lens-panels.asciidoc | 29 ++++++----- .../dashboard/view-dashboard-usage.asciidoc | 6 ++- 7 files changed, 46 insertions(+), 42 deletions(-) delete mode 100644 docs/user/dashboard/images/lens_layerVisualizationTypeMenu_7.16.png create mode 100644 docs/user/dashboard/images/tutorial-top-values-of-field-8.16.0.png create mode 100644 docs/user/dashboard/images/view-details-dashboards-8.16.0.png diff --git a/docs/user/dashboard/images/lens_layerVisualizationTypeMenu_7.16.png b/docs/user/dashboard/images/lens_layerVisualizationTypeMenu_7.16.png deleted file mode 100644 index 6ee73e9a67662581891ac587aacc81cda5abe92c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39341 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
ME*0c{I#O(~KC__k?uPNa3eYYqZPDuk6I?W$_ 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ⅇO+uIhu_WTu{OzQpRs^xgGC>umi?BH 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

()0h7w#?Xv@3`<_=Bb#P>tiP9O!4FT8T{0=q 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

>r};WkzXo(%r;XTqCnmC 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%0D*4tmc1lwM)mHucBTbZ&16mY|dsC`-N5l49v1 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

%wROC6}2Y+@XKRL7^l^1=1ff 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

u757nmRlTA;n;*rkIpv(K-t=qcdd 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 kVV3@Ou5DHJ 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

h@+iE;smC6u}X_-Ur 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≺S8r|n_)AOs)<4Vtegw2cP5g==Wc%l5g6-m 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ⅈ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 ALjV8( diff --git a/docs/management/connectors/images/servicenow-connector-oauth.png b/docs/management/connectors/images/servicenow-connector-oauth.png index 8f818185f686b183549107a24e106ff4a8eb0d39..9b553ae97fc849d06145baa61d06fb316ea317b5 100644 GIT binary patch literal 282710 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�hCXCjMO~ho%2vH~y+Dpwu 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 z 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

C(ezBhW+TjHQ;3%wx8&PfJ%# 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 z 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뭤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%0D!76Ba_Uzw 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,>5?KJQ=Rfe1at0AU29N`(+3eL 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�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 literal 0 HcmV?d00001 diff --git a/docs/user/dashboard/images/view-details-dashboards-8.16.0.png b/docs/user/dashboard/images/view-details-dashboards-8.16.0.png new file mode 100644 index 0000000000000000000000000000000000000000..2c1494d5e5ad64a764a44e4f4d0e565aa9df02ef GIT binary patch literal 27681 zcmeEug+o-`^EV*M0@8|vw1|MT)Y1(C(p>_wNG#pmAtl`)Ee+D$UDCaD$C69KyMFue z_xK;Y%iX=_-g|oH%$fPjT!Q64NMN85p&=k3U`R=dDk2~t&%@I(fG6HUfe@GXlcyM+5|50s_JdtCV^L zUibqGBXuc|tSkZ@JPklVLc~RQ1WzHt{}2LA5Rm_oMnHhq1pgpM1t6fn&$#ff_BX`; z=KO~A@0`f<-yZ!tjS%yzkdTsylob4|WN2e#WMTW+(oX*8LlOc4lDUbpx}CbL4A9UL z%&7m#(!hw(32gPN2m-GY5S|1Z+3Axzfz2&!flhps|HuJ^r+?jMq9p%E7CSRON_AOz zauG`#BXSN#W=3X8el&7&a$cKHAfTeC_`iz7ulOiG+u2zGnV1|M9T^?j7%gp#nOL~F zxtW+*nOIpF;5is^XgufBn$y&WGV<*$bR z^Z92#jhsyW+meOtzlH@LAk(iWOe~DdOn+C*&II&_V!xjJv)Dhz_0Q&be^myQH*qpD zR~Iz_!)F!VHGURW4mRF@wDW%+{kNz8EUIE_WFuk;hL^PC|1VwsRrr4&{$B7OZEF0t zO*Urs|84Srp8Q@?#M0c-M#)Ow(1@SqUq$}s*8k-GHDaKgjS0MO`oE_9SN8vN?_c?O znSRmZf9Ug1;{W3=ocjD|yiEV$B!0AXk=|tl1VIETQ6Xg~#QoIADJqlr-P5f<7Z({8 z6_MUcQBml7`+W1G%rv0zk$Wc3EQlkjiIYQ&xO2$3a|i-0A6PEU#u^;z+Lq|8QWNAX!uLA)$~X;{NIQiTtMeIOI2hZ^O3s zi?@tM+2Y>sh8+}QXUp`nD&4DmQ}|pN+n+TFTuIK=Smq7H-8LwLMiOaee}E!6m$nHq zbnJAWy-`*se-=)}t!+Bx_8J)9UMKa3Dd)uos1xjbpX{NOVe?cIRiGE%5NWQp-3nLw zJP^s(&^WqdpRamO+w=wEe%&8eJa6YQa@fQQ8sti3bG#SPrO2cD1G@xaAS2<5*B@^i zaa+LxHWl7Vv(DP=f00plR3yTeC8HuZSgcvv8J&6<@KDToPwg$D7vZ=RA5A0IH=5P+ zY2=XaWc*0)%w^^A^fv`1Lat@$zI3Ma{e?Q|T-kJr5c~)Frx{bJrJ_1d zrk9j9rWLYs%oE3=SdGvU&$jdm^gI*!TuX|yT7=RpM`fl;bn^K3j8=SR3q0Kjc`O=l zD?XRM3Z=p0vJf1s=#al(72X6g z0P_Q@^#x)pR>;G zgq0{3i4vNew$p23i#!&VF83rZQqGUE+3!W9)h+tI52=z!;-40U>_B844rV9~#Um!b zaZGx&FBr9dI-h1uqwpDZopkjN6o=A|?F8us?3{=MVsZOdb64c{wcRyji=Bcrdx-^B z98uBHZPCE8>1J>Drc1uo)Y}I$<1_t9U>GoZONM|8F?FM|URdt(yp3VWPf^T^;?Ms; z;4iE0D4fT#g3``iW4TC<-Ps?tuk3u+?^<)ezQ~!4y27^y21KdeE{rzy+MJZ)#MWPlHaXU z<6*ZDOl{a5I!1AO^u+iv+n+=aOPpYKhvdV89n;y5zL5)ITI(LAnv^*7X^~edt4^b6 z2pLJP7l-ldeNj6~;?`r^86AN+8FTR%dC|iu+*+>Xb(-s)OEi5ve2{UKnHCIPvx+UQ z4~kXQa_JPQ$d4augxK-BU%TE+>68cA9%jQPXHKpub>6f*;ZHly2YfW9}2 zy$q1oCi(jDDJi(ZF+~N1IwjPhy!ib_e-sCp=%6b=Nn93ERJFDjE&_NT&zK*wjH;Gr zAwtNv`(oo*RR-OhE9_b3!i34VEN9EOfmn#7!g*V>wb6iDl<8za|7w@?SsGaHY>#S2 zt3=4xh1LC9hLHJ4i|~A&V2ifEL#`Y1PZY*V70ia2CpY$4qnR9522%pSwILvCw%z2! zhSQ>yIv1@~KMD2ja(~Ua(kvgr-HH59V`OVNpdsV4BLIp2#&D{%2gy~%dT*qT-r7e$ zRR*nXUgYxB28RJ@rmD#Iv2?xOk5G&{dlgQ`LYTH)ZUKs%&uMzu+qtY?Zdeb76~a*Q zUdJ38dPdJxnVNcIK+F=^jHUva8qW-f`3_r4Zw4ytP4{@GW~&B>HD69Vz7_hD9+35q zEhr zWlJ5rtpJsI5+m~*&Vq8@-J;NS(p2AVX1;_(LC#-r!l0Ji2C5TgYk;kWBIMOyK2M>jztVfX zXXMu?aPjc1UHfa&D~I>7IPxbxe=h<^$&g}PGdDGEC|kQEN28~?Fogf zjsxd;#SJV5wskl|ZgmoBVA|>{;c)QZZ*=5IsI|C#+Of0oJNaRGz#FdetGU?Epu=gU z)IyGD^G~1W{yl?Zi=fVkvD{SI&*lzi=MH;-`xEP5e|#~!+8Ml7pON#-{Y|xo7qj$# zdEkGmVF~lnc~zlj*p$0JoXRu2k<4oB9TLg}*0u|=7jw`bn#9nY?+hcJR>9K|FCStc zQvG|13!dSYh3Lb~iZG4DKe3%l%JTnk#Qttg*%01)R)c1Q1q_F2Dy5k*vynC~%0NPi z%~@sso?u?c2AGHqy&Jo8LFVf0C!Y=H5}(;m@s{Y9^uJ_}*ph4b`~+=^HCn=yKcGd$ zE^7wnW9|N6rT2*0a zT>%AB8=zo5PH^e_2Vy=!qzX-(T%OYfb+X4K^N#gJ(+rH|NN@bi5WyuPG7b1hgn-o6 z))qx2ftjzE^W`0QPB{XQF%)DjZnc&MM)Vq@_yfVQk@qu+y8VI-*&A8|t_^#_`_%N@ zsc$ZzH5^9#UjXZU(Go7OeOiqlpGFOmk8Q^DT?8GoKI>xsftIh9sSwq0!+0_@^lt+_KedfOj`682A9$B%`!~lJy9uRKBe4^NBra-eA93i%5ktoB zHly+)jt?2>V}!967R;=J?dfL%THZPG%IEZ&orOOGZu|)XtG9idE5FlNt#xC}<{%HF zu((+}?9c2>8XgOEhnu*o7Hcy2qF~`9TI;_&u%syjf&@SF?S(EEC^Vr zvz_*Jz>*YbXa%)k_P%=Q_g4mPrSf(@ebKv@3Y7L17R%AS>tYvxBd2~WuqMwU;DePjh_WD`H`{oC=N#(}K`*(i) zPtI0s**Pme=v#f*mH<6?KeAc>yzVcqmuEhC;(T=yGD2;cwxHWkq}e1+^v-nm4ER>9 zy69~0CUK%fX~1j=1^g3knT+LVU7#G0?s#lQY(~q)O&cao#7MXxVg3eGEXTHn5>{k` z8!&w;h5czZPGafD9tyorK=Bs3H`nv6_mDNqhlD9e;|sl70xsj|6)N#v#}0ZmMv0vR z-6j{YmIl2RkHtOSNN2}0W71Q`&kzh*)BYyLiNGh~->s)7G$VKi)9UvIP69<*ohtP? zc$2*jXJJ+rZ8aLerdgFZMvXUc`Os3@aes&MY3_{hhxIt9@0X1|clf+7ku7jAg+R;&FjA(9=gFN<)^S6XzRL?OZY5g=_J$F2=Ex)}{=;q$7WU8HI31d3cH4nA7%L$} zo?Qm7UH`C+uUS9kPk;aA8SOfhc6?D_GE~E z-!{D|5G0;DRZ`0)iQ*5YGr$p*$wxJ&cTx8bHz=<6G&Pg=OEAaOcwO@~m^&I%dkKVo z`7y{7YO=WNTmuDKEj#TUIG(w-DQvv+b}T5p_QXjb_LR&j(yn{IS#UA`s9z!HQ}F7^ zoY}z{4sDHi2Jkg zh*vsum2;0Up(U1fE;_3PA~?q>+D*1e_nsf_wKkd5zc1~u8V`T^VvknZA+?)oIa$CS z^-9X%{KKqvNNEX#+#o zeK|(v0NeuJh=!yO)c7`sBM@bd+76{n8?mQ3Yu+cE<>5o7N_D7RVf&+=Uh#}tjESs9 zQN{iC_QMO#KE5x>=Y)DA$s=LA5jYDU<{h_R)!A+-g4uTE<^9@WPFux*Qw=6Yz2>(J zTFq|)CpMj_V~);u&ET?upZaMVZ`jo_O?sbSu;;b_V={+j+)7Jm%;Qs#iS^#8$3yf= zhs18x$CrSQElwBI|qZXA z9rwSc2Y5tK*H=3AcZ?EzJ!Fp$=RnixZbkGI%_aIi>sv`b0>969L zybO7ebUciR!wL``B`=WUX!b1nV;?OuQJ9^!jJ;Rppf zPu!#@zJLPl)7?4BILW%Qz>1hOLznTjT>n5q_CFSbE7lm*#3Sg zsw#3%5$6P>!32e1ko9>#?rWKE9A0WnUHBEvhVL~a@o3~s#AS&%qdJ4}xSeO0xb@_r zU^uuDec|f9@0Q2&4O!68if(6N1AJvXYG4A<7Sk@)Eqq+zi9Z~MtzZlx;p6j^J59LK z&cRwE84Y49*>qF^Sw@%zMAlQDTMZ1_1`$smH{kwc9t(7(KQt~>tovcNvmo_aHmT_G zTeAVDV;`g5Wg%9xZsnaDXUlxurX<)L&~E!{1>wDs!Elj@Vu7+0xAkiFU^1JC=TC$J z{{29*08>PCpXtl;7OA^y`&a~y_MQHG;#rR(jfxNGVC;3!Z~`S;?%neYe>fPF6Ckiz z+BB#7I+U0JuP0*E6Jh1xaR!DbcKq8UCR<~Ox-**8FR210-a z`isFh_QJTGvGTRok|o;QvEOG@^&CGh9rBkp#r6-N-_%hQJ!^-=w7l+{ES&z7vTIg# z^#zNd?R*~KJmq3`Kg0=qzbTVg#l>kQ=qZ)Rnxm}pki_b-VCfPb!SANWsaM>trEl1N zL9Si{@^8LKVox94xYR!+BlRGIx#(?#|2H!fFF?LmTs!PkPfmL#LtEL5%IL&!3J;ILX1L;S$FnbSY-$ z2^-W7L>fbjAq6bFxSrizbZb?6P$G2-zZi#0_25EB3AvG_ao&W1RK8G0(FP~bl#h*^ z{byqgop*N$;#i2MMKVP6T^!#I?j1M}`pz9LNNvt$SZKgbaul!1>l9Bw%&jKFV1S{dDvC0uHD&m%2ytNQ^Qilxt6#$vA}=&*O#n0(?(L$*K1 z4lTc^*T0OQS1awu62Oc$=RVn$RZws{onmNWp~F=4>J75eDlT8`kY+uCBk2xb43tR z0TrnRFM%~xP3IS_@%L3`({b=6T5F!f<7hz*YR;`mg+pbrPl?|38Z`tesFxdv)$Bd( zy#0w4fJstd7iH>Fdwsq~PqGfVU}UvjzDkfQdOp9}6T!5EbtUeqHI&}+v(GFE&A5~F zQ`qFa&I6+^xuyNyYSAe>UeW3>#j7?92RK%I?OU$;R_iSxYwc3>Tf^?BE?*wno3`O# z=vvCye8P-0c;m#=XmC67q-ZW0gCa&G@cu2_F*9zsKVP%NjlW=w({A$i!`H2z+a=FH z8Kv3c`vi)&_^YurY~^P(a;alOM<_%T_2S>oCZ?x>x5wMxVWwOz>j}5~`b9;04ehhf zJ)O#jNq8KAllM(44@d#x%iK1da{Y#u;r!T0K6@cdRkkq4SeE010@0!iD)O^OI>P77$d?|KEkjb^E zt)&jnwD~?H7GYY71(|@Vy6_t3#UqGTiYknG`8;{$8e1BYd-&tdfpkkaVQ&mmM|2=T z=2H`MOEC?55jKGLaHqngPg2t&544f0SgQteiKZza=8b}|KLSlPr|X+(2CeFe_Vm(d z_|6mLJ3EQ5^%xyL2Cj7O(!vEZIaA}2Pw99a*x3C^udAx^0_N#w>-DL=e-q0V+4bX$<_YNOc4MY;nmSmGX@9@emv1rI%`2zzey12cfWSaXu5W3 z+yfj}*57H)Yn>imev_@<*ErXnk!E_;d0YhdN97ydc`C1FPPU@&f#-^HAZ(Tkm%+oP zPWLMUotJ9Kx29O!`)ykxb!!1O`&dH1`M`oSk%H*j@mXiaP!#ywZ`^4Qblr8J(<;^G zCUA@0Z{TsQYkIw}lc>=lgnl2&7wJ50U03#*PP@S(by;V`?daYNQeL)oE)WtYYBjdK zm{%Hp541k490Md7sRB$!?;~b*r<@ z(|C;v1EbvGq;OI`O+De1A4Gor!tV`ds?6eHM1Fzu6{bw>dvpa*g)&O9 zF981LIoQE`j>TgA$*eJ^oRr?p)z~mEN_M%Tc}0MXK?K`r53ZFJ8X64CmwuNxwc-7a zA||5D6)Df`<5>MlXco#W7$ z8j_+5WB00hOz2y~!|qP9+S2CzyvJ1LpkM)?nfQa)c)bb6@wM*ov5O!9Q{O&xM6huywv>;JaAo1MWyMeC z9w{L%zRjjIzB8%Z+>GNtQX z{)&tXwgQ%$zFp*z?eL{q*S4KJr$5uTUhBTa*T>vz2yeK^_uF;vA9wY?YwC%2Os%yx zye~X!_YYamig4u-XmEhWg_F$h$&Z4Dw01hSi*8Eo_fB#l$;IQuI_Er$yiacm_~t&s zJ!+X31H@dP%kX!Kun^~|Ru<9cal)>_mBU(lBzHP3wjKp(ED#}U#W!iTg>eiiIxEU! zu-N!B3N)uY>GWZoNh8QYF*F<-cahICNGfg9`olJ*Ap~)VC&R>`M7D|cf|}h24i6rH zW%QymAxSkgHM&qG8mMlglR}!uwTW5zoM&^hM^75p=t|>Qu@>jm`Ltdt7;ax?@%4a) zlBg?;N8*^8FNG~D{Gaf-oPCAc$~^O%y^$h64;LMm?Bkj)Ag(xbT=ea1*cZ&*w^yh3 zPI)R4%-|)@2luNRXp0e~(V5kt6X5Mgw7*x{5@)l~zw?NV*)pCnyjRSxE0bi-a3S5} zTFO$upZ_P`{q3oo$;5XYMkt%#d?x8#cPJrMEo}1W?cgaukuY!&YG#Rb;PDcu4K8?i z?-wn^`_56dZQSINDQjZ16?25ySnL_diuE(R`%MATE?P+89?dy0><*UB?lPK%(_-DP zVZ^FD59A5JY(PY#^%}^Jf67J8Fv(?~-RnWU_8Lj}pr`KzAmhBtYMrgKq0RJk;I%B# z4!h9c58`frGiG5<9YS@=!`YyZC3ETnjmK?jC%aW<*Ow+|9W9F5YG#tTY4MX*f*n)f z`5f6jRTr=oOE)dsKs@7E`|CL$_Nl-Qd^h&fK-=@(NyTP2=fwk|`=Dze*?i<*aj{w& zD>#sLceuHC6VPx$>j-@g0;xgy?wj`#$_-pxqz;V1e4pFvb@zh@chgXVFYeWxYS?8>v`la4NRBnl|t)e5?M8U+b$<3A;IAJ zYL$6sqpxsY(wQpK$l^OAA6#juwApx{YM>ny1|aNOiuAm{lJK}W;B0G>OXiRjqb801 zkP1ZY6pm?g#k&akspaHtkP3%9tCf8m(6ZeJe0}vOgw7%ry8Qij* z2`vShz*!rs*ADxek1rGzOz@1@xxH!j4HOn!MwX6!g-%cC^Km6dVd5!_wn4_E#2f2#UC{2r zIm>w(gq!aGYjd|Qf#m=i{>JgY#BHJ?Dj!_r&0T;DGd9+l8TT*d98LJl1n~94HNQOP zR_UkhQS@dDwdEe^hco3_b4%_u7Gn*LmQ729%_6p2!;`|q?W`2lZ5oeLawbe$_?;s_!du!-`cR?C$+JinHwtw+wIj;E@+f&D+xw zU=Q`%j1qQvHzJPjOwO?d;aLS4ZZG8XdRNJV1qtpG#*!JZUvWSAZL-(ilh;GIvwR%C zE#VyaBsH+#j1ALu*Ab&^9DU}^&{q z5qrZRtc;U}KEkt)2kk2wLA>(%0!|>v)VOmQanXFV_nRH|pG(rO2*@Obt!sPCN_ih* zIhWj&T;26cE2N@d*B#Uw4dByi*OomcYB+2x;#d~RCtiC}{hQ%lFika=7Rr3;%1%dA)j)RAAVc=_JlTQYZnI}L@mM)1|JK{&9Vp#OS6|n!HQ=TL7xim)N-1TimhT)L zRy$FzmVL1*6CRIL!J}Tbo30`?Z&sek&%pIKyD!!_q+cQ$uvOl&Hr#YH=S*Cu23$~)*!R` zS)fACZND31v3JlDA#ne_L&@3;8CeYAQm9(|#p<(f4a+ZOA+Z5MRFU?F$!`@vI(+p) zZsR-K`BWn}0P!Y15er5o!u1+C^ZPr$@a|wd39^sa+s;;|v@lH`m$UEl8P;>)>$9E3 zY9S|jSY(IEcV<67_4>kz@dvyy+)Zv3d(IN4oT zH~O#J`+q#LqG?_@E0h9Jo>b&1Yz0q|5@|9pPFI(a<-pj(rd9N6CB1MLZ?PEv7R7KK zk5}8Y5P|qEJ#F=GcFn)yhP>ar!qzd+dt+kp3O~cv^?-f9Ig63>_kpcNbx7L)j4A-ax85p!3l35SVR*!!( z_y2W?P4R3ryd#JkW}}UQaZdkvOl{psj575x=GpV7|%$ZF@g2Mj@r@tgx^^jDVXgqH+n{dF|=V9_M z7;9r0)P_}*emOTc2IAwntXH?O(sS;(kPCW^K6Y}R`T zgI2f$$dGL|2WjEU#R_1);zQiUA%O7XH;v-o42PWLMZ?79O5*o2ug#ZE+sSu(s(hR{ ziq93(n4L{QnjEf)!5!l-4n{$pa%_fQU97@wjbwuZ&s2lf5;U-6)y4jfEd-Gw*b()z z@yENfRX@IABa6{G=d;5Vztt=&X5;!WFNe302XkYYLe^=*xPV8@-I{PZ&^udi-g_o#xg#fJ;nde z=CJ2KYMLtv&+D9{su*cHDVcm$|85cC@Y%4tX7e0jH!z=VTJpdMW@e@peK7@(2WDe+ z9wYnV2qhiw%6q5Rd^=VN$0*|&Q|Dngjd$%@U04oHW=SSyiZ|cjEYe|y4H9;U%zTMN z%wHSO3)+p$n*q@bnEgGAI0+&_{Ak#UOpFzk!Y5*c$l0dh;SSTf76oC)7Hmi_c^5)! zLEX%2>ZRw)yMcrw*|`f^yK*;hIc!$iz}MjDOsqP+#UwAER;(p=vfj5=)ui*vmZn+* zMbF^EVirtwicV#ZftUG!LU{xFNcrX3WF=AAx1Z^m*_$T7)V;lVybm4RnS&c=@ zE4gABJl36l$zR4iW71P9u&$HtVaeypTLr~UgX8vXK98#;*_DbtFG^C=lHPm!_-E_h zJ&9t{~ z#z0<;=k;+dLf!}*!Ta=%0!Hp{9$+Iup2gL;fIann_oMhbo9E&M#NWx%c4dg8uPYqJ zQA{W{s-8rY<(n4sIGWd}N@dWXNoRG-zG|5(9MWTx`N=ecGQu$q$)38B2lW@zo&;n` z6&v-g;lcZeA;C28l{#=ezcK%nY?M>dWRghy`uc{Jss%8eSHDboAYSu>P8~zxL&KX5 z+uWF^eXC2;j6WVvTLkuLMLSA$WbWh$;antNJ11||6B)N1+TzO5R*vvTPHCM6Dz-R5 zov$qV^tZGUrT_x_}n#;y-RWN#eVJ)GgPZ?2{$^L^TYXq&^hOJ8Y zHrIqa+6x$&1oOSDeCsPK%?Id2pA`c%t7RL%XH=;%?) zY)R6S#vqpbyhmuW#rNZ4izsH*V5v;@eytSM7R75-ApGX5uS zZHn;vfJFr+Yfy8L1#7s+?lalN;b}6^TfKR$dA^KxF{Qls)Tf(6lU-G&lX0PhY#Paz zDJWQl6rmHz8aL{v+r}mEuna43|Gu+XvO0bB%Ikybt!O%&FRQb>Wt7U|s|Nj>sqUp4t8F^I zt+p&8lgLbz`&O#KybHAzk*~aQXLSx8mMhTHG(UzXmRE_q3TDFwChM6PUcmDuizls< zGuN^|%A7Y|GkJS+F{7e&%Qt_eV5DPoGrw8joIOy`JfEV>PqUIl!bxk5+*dkjg$LEQ`Nm%^DA=`5+Cl$hpz$a6?yNs$LWsw zu1v0QNQQ%sdT=$OO;(E3H$T-2v~%AS9(DV>4(}XEICa<;q{u23mZ>-qfR!_f%JQ0Z zvL3Spi4TdJN5$o^_3y?0*r{Knt2}u@tx56roms!%Smvkh8&TXv=Gz{V=eu9zg`61L ze9hJi41wk&*X}@<pxRJLPmg>8Rwl`mI;)w@jwVB3 zOz&zf)52+O70o*RMiqyAn60q$dXqdy#XWg;#mN5M$@q^f7cu)li?7{X;{&ejHvXkQ z-J^ikybQfV^Ufb0gblO0yIe^!HGd$t{g5xt&ss&fF&=SFjZ;A)70pajy4XJF%@>x} zORp6PjEhs;>%KFTEsYtWl$`)BB-Sley?<5oJ*^|eh)rsP7xNg)of(C z7p>!El`khH$6txonWA1GQ}U@I7ub zyRD2id4jAU`}w$1#9f1Y~80_S(Q_*V!%(za+w~3 zu6gx+Krs%dI*Ll=Pp*D0#v-8KRi$MdN`&L?AoJIjiVFcaj$b)5iTjK6vkGtupkY}j z4lPWL;~DAp=8JvtWGib~`5J{xiKuG?_@@Cp^MTcgP3PwFQ~f$R&gqp+yikL znajIS_kH8%K83#zWEy#@k=KRSx|0jj6A98ee%rSpRW&ldWebzOXmK#HI64u&q!Z2F zec#xZLYc9k>S|J~oH>j`UEBI~>e3<=vR7o)ooxd%4XR8pTO+bqcL2)|)lgRQ@5?ZLDEZqPl-BQPjY!H? zVFGB%e2p!)VHh5B-^Ds@r-k34;2~)V9-OO?ix@0cf59z6yDGnU0ZZs0s!6ZSy)k6K zz9ARMk@{iS4F%x#v z3UlD5dW*%UEAOTys}}4z(>HBfdK(&QYd7}wWJ&sD6{aFn{qT2lst`DpinE3+wa!vz zj7O3a&)Kh?v-WvxbrfmBnI4iI1zm2Nv>e$-nR*3F*xYrl3y)5!B<_RAzv7!B1w z#37*=T&eR86c`Nq$Zn7$g59O=6ks?_IxS-j9&|&YDG|tramo~5Oq%hThOjNnj$aVm z(tx?BRbqP#DD45LX#*V3g`ak$xdI5gp~z2L(A_7~ESUTQ1$@WZc6m@TFer&j+OS62 zll3h*2w~+K|b6ex44EyL+*Die^j!58Pd6Y9b8`6trLOZEQAah?A{j7c_b%(IGxriRtbb zm?L!tycTbTZy=FwMZ8lUYNYbr#Av#P*rUy0P5B7#D!XgLz)(ffkKK^eA6n?zAq}yU zy5i76zG@q{AEMp#memGfFCpO1Jll0h*ANPPqbsXmSmmxVbuzw0>&L~Ffn9!EDY}jF z%|gB`-fn)SH0vYN{tTFt@8xCW34p%9PslH)or+!=)uK$(f6VEngG$7S&rj{Md}gaE zTnss$rqd#lrSxiv5Wa!>`1ohL%%Qqf76W+h@zT)Qn|C)W10rRT|IV$u*mnQprn z%a(Jf$MEyFVhf~8*h@(B@uz3II4l{~;p;!JudN<2oa0qB(9)t7RUgtxAcqn7Iz5j3 z*aB?BS+QaE>uJ-ZwJbvHSIW0)*`V`d@x_v z`etRolzp7+g3u`d;J7{;%X_F}bhSPK$h@a!$&NtM! zs3`JW92NQ!@C*=dp22HXl;KQ(Lg5W4^>cg%lkzP)cWqdO1WcXB$9#_GFyY;Zb8czh zH$`|EfFM#!&9B0fm+{qdm<|&Ix%N!&#w(;1EIZ$`~XR!XkhBgg>6{u0Db zZ>qU5C5{XcIH-R^y}b#9TN!t2HRDVS6)T0RzA=7AKzLK~>wf`2=omF_t`q|~;P69B zU$Tqs-J9&@qS;DBfoMm2%Un#_!R+4T=3ZjgBHsCC70QUoD0+%a9si(=9Fr)n#zwfK ziQ~BE$!SyWfxSZqDoJVhQZ5#|m!!9u`A;kbDnlCyJtvT?DuvC`Ti`2M=}$lNKtL4v z#Q2!6D5YHHkfpnwlplHrI004m#Yr7=GF#RFBxH(8wls-coDbYxv0MTcSRQomM-5POc@UOyydf&Mct^L`zv0 zycVU>!w6(0U`xJQBg*h63sfV2$|nD0WgG7~T4)CidC=-t)cqbbwGlR|AbEsP?8k}q$3fX>gBg!WkiqwPxRaLNXPBC;Y-e>>s+nlZh3UE?g^%NzH!|L2nr&+EFflo7jio{@>IJw-A?tNGh7_^m2f7?8`tE^dnU#FBV{KXXT zqoqk*xyC%>!}#L2#>?*fE$_SakEQexz*8AJ?|8DKkG>S2CSLj>L=I6jFG9PvjJQ;P z_sa;jqAv3t3;Dm%yH2{0SF^3fo7!JXYL?^++d>WBF@}d+cTohX#jHsLjZwTj22H8n zZybLhmfNB4ivjt*!v^U!)K%xf>KajZe!%NK2#!?nYr zwksM13^ru*0LWltNYLwJQ3g(aD0KC`Tt9>qfps>l;gVLd{KZRQgBCS|SDOv2-vZcp zCsbOt-*j-^?z8vYX>Rqfb)%MXVRryzjsQ2{bC%f)ljnT}oin`z$V-D{j8m&bqWnS8 zw6T{VM+#~I*h)8~wo?uPbqyV;Mc}(W!_-S17X2nzbF*8-fxA`M64p8NwTrncUm9xT zCHb)P^+hCZKkr+6c*UP;{k9%n3QT-cg&b81bk>SqAoA|-w0>{ff#9XXmSv79jR9MLAs zBeJRbaCFo3tzL6a$u+l!fc9jomO|sbN8Mqc;$K9Ml^g<+=69PQub-f|^^Mw} zpwqZp{b)S{okd;-rTIN zFPR@Qmk5KwqYN%Q&=0DxJi=I5914zniEjz}7NTqTb5o^?4|HNPAiAV`yz@oaq&2*a zm1S}-F{Qln6zfuGv(x8j3jNT=L+N}u@js}sZ_0jqcVO`Tx)A7QP&wCNo&$_Q@OjzJ z)nXd6RLHzJaLq)=sM4%aEb^*BWne}6MfGoQB?ciQI+eApbpbvD|6d#D9oEFs{(Vpo zgacv$6zRQ469hz%-jQBJdat4P2uQEeq#6N{UJ|4RsRGh_4I~ulLI@xoLiw%FdEav$ z&vWueuG#Efd+ki_nVq@k`}xK!_2}O@KEZ+K&2t>UXO&DiLL}Gg__-9n-nw>+QD+AG zvI6RdeXN?L^rHC!nZoqMi?w#@OCJ_V8lcWW@UfT-#V6E+dd%!4d$5R1eK0K4NVrzY z-8V91XsCaTGar@M9St4Gw@Gu--gh=$ezxRT|!NKBMerGIn9OIL#qGopj5 zZEuU@rl)*X4~T|Xlq=*8mWvlJJ^12f7{2^dypP_TivHRqp-#q_F4!^iiHq^4=2?Hx zpdmJ+3GP2Wq`L{*Q38H(ls<`NjlnhkDKqAFfP~ z=G~$4A71W#&JPO>4P{Z8D%Wc8v!g#KN#o8SS3*s z!`6J7p=~FC-dh>9LDG|4RJ48@oYJOa?-mb-T4e-Hr-U?9BlM~h?4bf6 z@!HBd_}U9o#|L`=2#uK?TvstQMZR2jPd^rlZ=MG#gX+FjJbfb@x|YJ^si;Y8^de<2|`|Dxy2VXGFQ`NxyB(&1}ob! zgmTWjA??TR#JZN9ZBj(Hy@=o!FQu-{6G|q!v2psL9ihk8)IK1M_*(JG_2-9vvNeHw4h> z@WnmgoknCIcbW0*;gQmwtMeGQJYtEVj6F9?*d-)$G>SIXOX|@Tcb+je4ebz(;HWOT zk3tU3865>)8nqr&i`K{*tW)8qeAQE0XJ}a5zX&nLrJOB4&STS-FiOoGGXAo$t^#>; zi7)lTE;j_fd>@;lKzC5^k7@pYnvxgq`(%W+f*bNj)jRWKi%oP$05ZfdB^i%frGHK( zKHbl>tE#Ro<342V{nz(T&?^W{OCx>xD$hlU*wvyOd0F?A48$De&#oL@OEGmz|5AZ{ zUkA%BVGcF1+91^|ln&_4kL{pcn@~zr25D-+>upbEGY{W-hJ^xohT3oRejBzdZ@_1! zBG<9!M_%t8!Ox6PgEf`uh84}V{D(kme^!9NM>NrlFK7drFgrHL$N!ud|C%Q=)sP@* z8M&{TSq!e~dHlSKlIdb7(%YmqnAyWS47(_`%rn71Y;G=fPjYk>eqsF_bcJhB?^=mg zPP-BJhKs*PRAiHZ`HKM4S$&zp7yD%pkG|zg?Ag03=S64LN5+oQIvyEJDF+|EOnBY* zcuOR3XzNrHKqlbfi$;T9qeXB@m=5dsrvCXJ2jUdiIL9L(xEWT*(8x$TU<(6Nls#%u zv>`*Lg?T4a?Np>El-j1KJ6fed;2pA+Z_B_tK=2?JrB}xA6X8+xA zqP`6NyDKh}J2l9Pi^F*1e82tm{4RmXLvghnewDP#Mx*!~krGm=M;stiKTWMd)m(H7 z*16bfAVZ3j<~bu*T19e2>oyxeXZ`{=`^ybHtgnJYwVILI$Cb!x+ln|%^fcV1l^K8{ zHz%P?0N|7O`7@s%8k6mBY!m27dy2Mu8gLfZbT$9%_$~PyKAFWiN%uj)Ej(cXm=g4O zv;V$bf_InETgy#G2u#<+3Gh0}eA?Y&a@t}(dV|sEl+=Ewj94}}6NRX3s)ZBhY+GxX z+FCvP?FIIy^2E0XZ;8|GE1@H-P~NWO=SvUWgsNxZmubV^t@KX%%$eFk`SC1LkxcqFiOAv>IxX(+5zG zURZ!|Rg5IfVi6I6HJxqtyJL?)erRa6`_Cm74(-B}lt%_efG~{%`l>cD1b+|xe7Wn2 z=K^~xxm_+hQMA^vPlA*B0AM$3*duNbq}U1j_9VD(O}qJR6ifl$G_MRQEmE_EUmyj? z%Iz&PC9de&M7rYXBp5IznEbV7cHSC$jsoShMBM8H{Z-anHBp2~WbHZp9 ztNh}9v)xkzNf316JlE?%k&leo5o)xjOQ!Klw1OXXaZeHYQ~XV>pUQXHc(2W59Tqg^@loX zFfaI#?t1mzh`mJp^G=Nmkaot!;o4U3vm#J*BhIKP}Kd4H8 z4bjs_qNWwyp2f^E6TyVLzQkdfweJt4x;+sKCeE!w`v-`Fge}JcHHIc5GhC%HZ(YNgG)T? zihvr!P3oN7e8)4{JYI&sWz4^KgJGEPE(1eumB+fX-)VtR1E~bxrM9|m8Zjl$kE*bn zcNK51a=^{n7@vM@S52UPTDo&R8_efB!=m=#<@Z{|Cpm3{&#p;20 zr;JVyTBhm>2l_hVY(cir<0m@~PU8sUtmkA>m`l}N|&XE zxg?mf71h#qy0=DF^1d}=o0DZkO-)l33-qxmkq?{tKCe@40a_!`&Oqli?WUKS_T@*` zjew&aMf2rJKwMLywBqecz;+F~?gKiX>EiIC`i_QQj&Voj0*8RP$Jl3cali~Oc(&e6CNlSV zS<|sagWp~IS?EGeU`vhM!!U{Ww_tQ#MJmvcy)0zxplEvX(8p|!TX67dS!$8t7ctVx zL8K7p9_)TSn3TPns>$G6tLpr#f0Yzk-~^*`ee%JJzWyxJji4p%n^xPk0k3pC;9`W% zDm+>5)c5aw;e9=EQ1V_S8stLDjd$)gJv!3)1o{3t(%s-aR)S zgBHr*@Z@wazO~buXj5&5^It%Pojz63iKEU7`j7rsfj6p#ldXktiBN`1x4GBISyV_v z40gx**C!*);D^0=A^{T)Yl34VBMOF29paNvL&LS9tcngr$0=W=ALNM+ZEis*!PQ6g z({EBlAXGEYb%KB*)c5ZpQy}DKD4}cBdY^8YmtVvm8(!}LgpWHPs)sEyu6NbMK+}{X zqvG%XgbYC78abY#TSd41|M+0DIRuP@hB>qiW^EGw;(37&%en{lo;#XzHzjXbhR zy%HHR`mYbnp@ZuER&R+Io*-^LettHMaB4pCQ5{Dh0`2HDhK1_gBErJz->!PY`3|H^ zseWIi{715PB2BMGP2N{PUG6+b`VQ~slJ9|CbprgP{i(g_Wes(6lg{&sITd~0Ss#Pa zHRVG5rjwsb$VM@Dgvd*rc@se2e21Fe><`2hc1hq=lg43peTAdpzIoA(=g!iA#DYcS z!RfgQO-xL?@ca+@-KfwuaCy_7Jh-TvU<`&)*`yCkU#Xs_>q|E!)d{#PLP_Fan})k- z)o+0E)b4lo7MliKK(h%VMFn+>lDAQC(*(`sOouA1n?Z98&1DsurT|lv1-~q=I7-D{ zV$HQ0y-6J1;)Z1sqvO^yS}#UvDKeju=m?~J@y?7GUawLk_b$^_j9{;_~pm>{@3CL;94VO^glAy$=syX!dNZZ~^y&jqbl}rI!*h*jKix_h5rOK>k_gHsF z@sowyUhfq_;M4^~>j%;D*^uG>!Dq*_uP$iAXvFR)-e-g9yhwUw(w{hI{mhA#it=hP z@99l54_%*!^`Z~?|Dk*RP8m!_t{l^hN@j~@lZv%Hne~yXWLsV8O<(z@+pY3k)SJgg ziN};!GdD%*4)4k6t!o{$j>A(R#%2i&%dU-wbvlpnR8d@mdtlph`}JYdk)jX>^Kl`Z zqp*%_$Eg-V-e&*9(tO3F_9^6rwVhqD*@Cc7fGePBZrjL*IjvOWS;vcl4v(YrF7{5` zpXhm}oHF#*8<|+0DHK-pcfKT2H*(wRx8)$R6ViUHK=`Fmis38PQJ#Gto@4KV*}2-X zxkqUa5DF<}8_L1H5vDg>B82Q>pZ|Dh5IQ1s-2Q+Fl!U)gAQ7hOdc&nr)2{lin~}_G zyodjYM9J@jc->x2V`tb~sNsCIhf;POF{GwOrIa>Zf6Q{yT`Cf;pBwoVE}G$e*xeY? z%2%Y7dQ@H4QTP)e*+-Z1YG+p#pV*QkHR7+|nT@t7%n|RrpMA!xk~UB<64AWEdU;ty z$`GJSvt~vvy5;e0&2jcPbiQ%Jacp{^cdj`T9HbF(9}#Ds#q_Zf0@OvjC|q!YEn8AD zR2tK}tCGs%s5eItz~s1VmnSZE?K|k$IZpuszBF6jxw`2pLFM?5_ZC?RMS0T*nbMwS z-RtL($yDZpWCJNR$yVwHaGzH#J1+K6Oe_Jw#Ym4R-QEpoy+E!EHrc5~<>`=+qJrX}EiZ3o-XY^U#RbR#z zjGI{Iq?NYbH%8O7Kl;$FY^K#VHl@<6FCBKxM3(+L_q}J*mL~t$ayyZwf3yW-R=bZV z($I=>$Bc^{Iig&vS|#lqb<7Iyh{3?50Xug>hr4gQ@$U*EKp~Kdifi z^>UN1(U7M}-UO6qB?~^c`c6W_lFq92)IBVzV?dW9ufNs_t9?k3-DFOkw!4Qq2bTh0 z%biod4c6beaJRUQb_zVSEc-d(#`HA-?*&?q!UPPP>Cf=8-30GMIbZW`<0L~z$M6Rj z=trG3i~5KQexC>JI;gx8dAZ~_Q^-;JO~{22Vt#i-95wKf|7ml;V#xXU$C-c}ChbDB z^%eG9#og&>mY^kEqgH7poEx<=ghBboRd0%{;MYFvn|Xq!wHqMW2`WeUV|qpjHg{Z# zh#hW;^Tjxn8Ny+rlrpPxi`>JNMjb+O&+xSK^TDNAZ6#}m= zeC!umnyayZ%b)f6$s!2dT@&g9JHNK` zBrK!d1>>!lF^^(q{Aj0r~3r48_`OFZ`p<{3tQgl!7E*lRu`ivKcV?K7bSyLyqqYzr(S z@8R#OBva3g_Loc1nlS}LlQxu3vA->5)G|C`P{%tYh0%kE$<)QsoQ&bz8Fb2A^#yZA28AgS%%sF z)+r^g@yEWoNnA^-L7|^zR7%>PpClQ_My4AA`Qp}?c<}j~Fn|=QVpJI$ySjPeCUA%w z17)OPCSHNtoWY$A^(MzdSa-!}5CSMC*lJ&Hx6D}@s`3S5K zms}rxM@h?TiTIIU@atqgW2#jaA31Q5IZs#`Y~w6`>vV&XyC%yJE|n(e$W18jWgU5y z%}Iu=l0YcJ=)_qm;XAHEC}c&e6WuP9xi|ZT8sIVf5FEhCMsc2pR_8Tj;4%fvtcSj1 zO(GGONWNlK8$+xMgVMNxSq744>=TN@i~1l}DF`jPJQvB&FfUj8#BM~g&S{2`ORs!H zTdJN))U){G?DWs&?gC&&3%Jv0WdWF{?t39nY1typF$TWi@ROuyhV(w4q^S2+F?KWl~6UbdWxC2Gz_&ke@8MxXR1 zzx_S{472+FHMrqc&~F3DpFoA=M?%T-n>9Eq&LA5e$4wZ>i5)&))Jt&ILTfl&M?&}d zPO$Z)(sGTY4H0fr4}mxyt?AA20&+slU5dsg+X_53l~PEX+9uSC0~d1Z~ut>SaoTvLho+~*b}=&K(*u@Es{b2v5j8;0(Qo_me2 zT1>z}3oJIBIhy(s+_2&_V`OSs&K7iO60%gxR5kgMZH+fYj2E6{1j4$s0 zKo)NwQb+%gdkXOFwFg{UUSAv{uH8mY>YJtt+K-7KLQKh`Kq7*;;HC$}H(M!27ELE{4TbKGNAIdof7(5W z>)kt0jdd+(`OyguVtzt7kg}8$$WB=YNAg!zZ&9#(X znNYIlQwBMUU7poQx1LjDl~3yj!`9K$wro2+0TZ)c_w}*de86@yA{5_7znE43h$b;* zGiCG}r_q6PhUKvER?>}UUwlhuTYN`7M*(w6SCO{(U>Q7uN8kCvSq4!(+~mskwH|1p z(kf!kxZ0wW%QNB&4q>Y|6f>@(_U9=ap7%H7T_So~lJcxo7I+VXiEZLkpOp4T1Ktr! zX&~i~jjWL8+e|2IS##$EZxNf!OOCC9zDYHy5pAsG1dD2h2Au|u8{qSF?*GWaex=i`2sJ!o|7eaJryTxKc^4ITrwNTU zulj^R4-F@6RDYOAH7OVGbr*DG6p=KWA0O@mk-xWl1e(!GuAQ&m#0fvPGN~k1HA{z}^#lf8SyU?k;nqZ}N(C<2nUtTo%2YgugnSyIGff44Kwe zSz4iIG`O=g=!li%YGIxxR9-6_7bmcHZMsa*jzP+zpe#~93lVnD9dAt! zl`3UNI~9C1EElFU#6$5I1qjTYuT+akBA&LcWo3v`8LD!;1s(DIpxh}dD?1e&&NzC2 z3l9$uKmTx|E!MBrwy2hp<7r$zO3~Jw;Y?+q$kb?mOyT&oQ*dH+byX~>eQZqYm8t2l zdi1bGY?Wfq=eoKyI;_ka9NcSogk9RA|15TvY$Ld=zT3yyLo6J6jjxdwwbR-kgoTxD72=kYOL4y zl@8^M=EIqNMDI*1 zkXrVI;2q9yT=HeyJUoRM3`T6(J{6RTzT?CdE5iC`L;l&K!JPPbb5&s}Pe|}Mv&Y?} z>W0?k>&WlDJEYB<3dC+gJkedpr|;bpOj=Uba+>+})Ko1#b0>QH_>6aT$vePNC6f-T zd9yKF`Cg1fb(1A!&j0mS5t99&$e8+SNYhqFfIr_{w=f1xJmB5mEwP5mo)Ks0psT6NRI7`b1CIS6NtF=mF~pg>lBS zg20Kft+E91Bm}l|2Oj5ICU^32?EWZ4a9w+2V@c5Qtq{=LnfX{e@0@2Zu($2FoC-@8 z&XoV_wz$`pxkp^g?6nj+4^ge0Ib)gcp{pkB53q{@0a%7j&5Er}b{zo2 zJFceL-BRGV3TpHt literal 0 HcmV?d00001 diff --git a/docs/user/dashboard/lens-advanced.asciidoc b/docs/user/dashboard/lens-advanced.asciidoc index 2d57ee2741b3f..88dbe958b146a 100644 --- a/docs/user/dashboard/lens-advanced.asciidoc +++ b/docs/user/dashboard/lens-advanced.asciidoc @@ -6,7 +6,7 @@ In this tutorial, you'll use the ecommerce sample data to analyze sales trends, When you're done, you'll have a complete overview of the sample web logs data. [role="screenshot"] -image::images/lens_timeSeriesDataTutorialDashboard_8.3.png[Final dashboard with ecommerce sample data] +image::images/lens_timeSeriesDataTutorialDashboard_8.3.png[Final dashboard with eCommerce sample data] Before you begin, you should be familiar with the <>. @@ -14,17 +14,17 @@ Before you begin, you should be familiar with the <>. [[add-the-data-and-create-the-dashboard-advanced]] === Add the data and create the dashboard -Add the sample ecommerce data, and create and set up the dashboard. +Add the sample eCommerce data, and create and set up the dashboard. . On the home page, click *Try sample data*. -. Click *Other sample data sets*. +. Expand *Other sample data sets*. . On the *Sample eCommerce orders* card, click *Add data*. Create the dashboard where you'll display the visualization panels. -. Open the main menu, then click *Dashboard*. +. Open the main menu, then click *Dashboards*. . On the *Dashboards* page, click *Create dashboard*. @@ -42,7 +42,7 @@ Open the visualization editor, then make sure the correct fields appear. [[custom-time-interval]] === Create visualizations with custom time intervals -When you create visualizations with time series data, you can use the default time interval, or increase and decrease the interval. For performance reasons, the visualization editor allows you to choose the minimum time interval, but not the exact time interval. The interval limit is controlled by the <> setting and <>. +When you create visualizations with time series data, you can use the default time interval or increase and decrease the interval. For performance reasons, the visualization editor allows you to choose the minimum time interval, but not the exact time interval. The interval limit is controlled by the <> setting and <>. To analyze the data with a custom time interval, create a bar chart that shows you how many orders were made at your store every hour: @@ -55,13 +55,13 @@ The visualization editor creates a bar chart. [role="screenshot"] image::images/lens_clickAndDragZoom_7.16.gif[Cursor clicking and dragging across the bars to zoom in on the data] -. In the layer pane, click *Count of Records*. +. In the layer pane, click *Count of records*. .. Click *Advanced*. .. From the *Normalize by unit* dropdown, select *per hour*, then click *Close*. + -*Normalize by unit* converts `Count of Records` into `Count of records per hour` by dividing by 24. +*Normalize by unit* converts `Count of records` into `Count of records per hour` by dividing by 24. .. In the *Name* field, enter `Number of orders`. @@ -87,7 +87,7 @@ To identify the 75th percentile of orders, add a reference line: .. To display the name, select *Name* from *Text decoration*. -.. From the *Icon* dropdown, select *Tag*. +.. From the *Icon decoration* dropdown, select *Tag*. .. In the *Color* field, enter `#E7664C`. @@ -120,12 +120,12 @@ Create the 95th price distribution percentile: . In the *Name* field, enter `95th`, then click *Close*. -To copy a function, you drag it to the *Drop a field or click to add* field within the same group. To create the 90th percentile, duplicate the `95th` percentile: +To copy a function, you drag it to the *Add or drag-and-drop a field* area within the same group. To create the 90th percentile, duplicate the `95th` percentile: . Drag the *95th* field to *Add or drag-and-drop a field* for *Vertical axis*. + [role="screenshot"] -image::images/lens_advanced_2_2.gif[Easily duplicate the items with drag and drop] +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt8fb6969daa820faf/6700642c363a96bb08f48bee/drag-and-drop-a-field-8.16.0.gif[Easily duplicate the items with drag and drop] . Click *95th [1]*, then enter `90` in the *Percentile* field. @@ -162,7 +162,7 @@ To analyze multiple visualization types, create an area chart that displays the Add a layer to display the customer traffic: -. In the layer pane, click *Add layer > Visualization*. +. In the layer pane, click *Add layer > Visualization > Line*. . From the *Available fields* list, drag *customer_id* to the *Vertical Axis* field in the second layer. @@ -178,11 +178,6 @@ image::images/lens_advancedTutorial_numberOfCustomers_8.5.0.png[Number of custom . From the *Available fields* list, drag *order_date* to the *Horizontal Axis* field in the second layer. -. In the second layer, open the *Layer visualization type* menu, then click *Line*. -+ -[role="screenshot"] -image::images/lens_layerVisualizationTypeMenu_7.16.png[Layer visualization type menu] - . To change the position of the legend, open the *Legend* menu, then select the *Alignment* arrow that points up. + [role="screenshot"] @@ -251,7 +246,7 @@ Configure the cumulative sum of store orders: . From the *Available fields* list, drag *Records* to the workspace. -. In the layer pane, click *Count of Records*. +. In the layer pane, click *Count of records*. . Click the *Cumulative sum* function. @@ -271,6 +266,8 @@ Filter the results to display the data for only Saturday and Sunday: + The <> displays all documents where `day_of_week` matches `Saturday` or `Sunday`. +. Click *Close*. + . Open the *Legend* menu, then click *Hide* next to *Display*. + [role="screenshot"] @@ -282,7 +279,7 @@ image::images/lens_areaChartCumulativeNumberOfSalesOnWeekend_7.16.png[Area chart [[compare-time-ranges]] === Compare time ranges -With *Time shift*, you can compare the data from different time ranges. To make sure the data correctly displays, choose a multiple of the date histogram interval when you use multiple time shifts. For example, you are unable to use a *36h* time shift for one series, and a *1d* time shift for the second series if the interval is *days*. +With *Time shift*, you can compare the data from different time ranges. To make sure the data displays correctly, choose a multiple of the date histogram interval when you use multiple time shifts. For example, you are unable to use a *36h* time shift for one series, and a *1d* time shift for the second series if the interval is *days*. To compare two time ranges, create a line chart that compares the sales in the current week with sales from the previous week: @@ -292,11 +289,11 @@ To compare two time ranges, create a line chart that compares the sales in the c . From the *Available fields* list, drag *Records* to the workspace. -. To duplicate *Count of Records*, drag *Count of Records* to *Add or drag-and-drop a field* for *Vertical axis* in the layer pane. +. To duplicate *Count of records*, drag *Count of records* to *Add or drag-and-drop a field* for *Vertical axis* in the layer pane. -To create a week-over-week comparison, shift *Count of Records [1]* by one week: +To create a week-over-week comparison, shift *Count of records [1]* by one week: -. In the layer pane, click *Count of Records [1]*. +. In the layer pane, click *Count of records [1]*. . Click *Advanced*, select *1 week ago* from the *Time shift* dropdown, then click *Close*. + @@ -322,9 +319,9 @@ To compare time range changes as a percent, create a bar chart that compares the . From the *Available fields* list, drag *Records* to the workspace. -. In the layer pane, click *Count of Records*. +. In the layer pane, click *Count of records*. -. Click *Formula*, then enter `count() / count(shift='1w') - 1`. +. Click *Formula*, then enter `count() / count(shift='1w') - 1` in the *Formula* field. . In the *Name* field, enter `Percent of change`. @@ -375,15 +372,15 @@ image::images/lens_table_over_time.png[Date histogram table with groups for the [discrete] === Save the dashboard -Now that you have a complete overview of your ecommerce sales data, save the dashboard. +Now that you have a complete overview of your eCommerce sales data, save the dashboard. . In the toolbar, click *Save*. -. On the *Save dashboard* window, enter `Ecommerce sales`, then click *Save*. +. On the *Save dashboard* window, enter `eCommerce sales`. . Select *Store time with dashboard*. . Click *Save*. [role="screenshot"] -image::images/lens_timeSeriesDataTutorialDashboard_8.3.png[Final dashboard with ecommerce sample data] +image::images/lens_timeSeriesDataTutorialDashboard_8.3.png[Final dashboard with eCommerce sample data] diff --git a/docs/user/dashboard/share-dashboards.asciidoc b/docs/user/dashboard/share-dashboards.asciidoc index 60b802821eef8..4e8f1839ae9b2 100644 --- a/docs/user/dashboard/share-dashboards.asciidoc +++ b/docs/user/dashboard/share-dashboards.asciidoc @@ -4,7 +4,9 @@ [[share-the-dashboard]] == Share dashboards -To share the dashboard with a larger audience, click *Share* in the toolbar. For detailed information about the sharing options, refer to <>. +To share a dashboard with a larger audience, click *Share* in the toolbar. For detailed information about the sharing options, refer to <>. + +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/blt49f2b5a80ec89a34/66b9e919af508f4ac182c194/share-dashboard.gif[getting a shareable link for a dashboard] TIP: When sharing a dashboard with a link while a panel is in maximized view, the generated link will also open the dashboard on the same maximized panel view. diff --git a/docs/user/dashboard/tutorial-create-a-dashboard-of-lens-panels.asciidoc b/docs/user/dashboard/tutorial-create-a-dashboard-of-lens-panels.asciidoc index 7ad4b5848f4e0..eef89b6448e7a 100644 --- a/docs/user/dashboard/tutorial-create-a-dashboard-of-lens-panels.asciidoc +++ b/docs/user/dashboard/tutorial-create-a-dashboard-of-lens-panels.asciidoc @@ -20,13 +20,13 @@ Add the sample web logs data, and create and set up the dashboard. . On the home page, click *Try sample data*. -. Click *Other sample data sets*. +. Expand *Other sample data sets*. . On the *Sample web logs* card, click *Add data*. Create the dashboard where you'll display the visualization panels. -. Open the main menu, then click *Dashboard*. +. Open the main menu, then click *Dashboards*. . Click *Create dashboard*. @@ -57,7 +57,10 @@ To create the visualizations in this tutorial, you'll use the following fields: * *referer.keyword* -To see the most frequent values in a field, hover over the field name, then click *i*. +Click a field name to view more details, such as its top values and distribution. + +[role="screenshot"] +image::https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltff29bc11413cc5d8/66fdc386762d3a15135abec4/tutorial-field-top-values-distribution.gif[Clicking a field name to view more details] [discrete] [[view-the-number-of-website-visitors]] @@ -141,9 +144,9 @@ image::images/lens_lineChartMetricOverTimeBottomAxis_8.7.png[Bottom axis menu] Since you removed the axis labels, add a panel title: -. Open the panel menu, then select *Panel settings*. +. Open the panel menu, then select *Settings*. -. In the *Title* field, enter `Median of bytes`, then click *Save*. +. In the *Title* field, enter `Median of bytes`, then click *Apply*. + [role="screenshot"] image::images/lens_lineChartMetricOverTime_8.4.0.png[Line chart that displays metric data over time] @@ -167,7 +170,7 @@ The visualization editor automatically applies the *Unique count* function. If y . Drag *request.keyword* to the workspace. + [role="screenshot"] -image::images/lens_end_to_end_2_1_1.png[Vertical bar chart with top values of request.keyword by most unique visitors] +image::images/tutorial-top-values-of-field-8.16.0.png[Vertical bar chart with top values of request.keyword by most unique visitors] + When you drag a text or IP address field to the workspace, the editor adds the *Top values* function ranked by *Count of records* to show the most frequent values. @@ -208,7 +211,7 @@ Create a proportional visualization that helps you determine if your users trans . Click the *Sum* quick function, then click *Close*. -. From the *Available fields* list, drag *bytes* to the *Break down by* field in the layer pane. +. From the *Available fields* list, drag *bytes* to the *Breakdown* field in the layer pane. To select documents based on the number range of a field, use the *Intervals* function. When the ranges are non numeric, or the query requires multiple clauses, you could use the *Filters* function. @@ -245,9 +248,9 @@ image::images/lens_pieChartCompareSubsetOfDocs_7.16.png[Pie chart that compares Add a panel title: -. Open the panel menu, then select *Panel settings*. +. Open the panel menu, then select *Settings*. -. In the *Title* field, enter `Sum of bytes from large requests`, then click *Save*. +. In the *Title* field, enter `Sum of bytes from large requests`, then click *Apply*. [discrete] [[histogram]] @@ -278,9 +281,9 @@ image::images/lens_barChartDistributionOfNumberField_7.16.png[Bar chart that dis Add a panel title: -. Open the panel menu, then select *Panel settings*. +. Open the panel menu, then select *Settings*. -. In the *Title* field, enter `Website traffic`, then click *Save*. +. In the *Title* field, enter `Website traffic`, then click *Apply*. [discrete] [[treemap]] @@ -342,9 +345,9 @@ image::images/lens_treemapMultiLevelChart_7.16.png[Treemap visualization] Add a panel title: -. Open the panel menu, then select *Panel settings*. +. Open the panel menu, then select *Settings*. -. In the *Title* field, enter `Page views by location and referrer`, then click *Save*. +. In the *Title* field, enter `Page views by location and referrer`, then click *Apply*. [float] [[arrange-the-lens-panels]] diff --git a/docs/user/dashboard/view-dashboard-usage.asciidoc b/docs/user/dashboard/view-dashboard-usage.asciidoc index 0bb35fe0ba4de..5ac7e72c3e246 100644 --- a/docs/user/dashboard/view-dashboard-usage.asciidoc +++ b/docs/user/dashboard/view-dashboard-usage.asciidoc @@ -1,7 +1,9 @@ = View dashboard usage -You can check how much a dashboard is being used from its details, with a graph showing the total number of views during the last 90 days. +You can check how much a dashboard is being used by clicking its *View details* icon in your list of dashboards. -You can access a dashboard details by clicking its associated information icon from your list of dashboards. +image:images/view-details-dashboards-8.16.0.png[View details icon in the list of dashboards, width=105%] + +These details include a graph showing the total number of views during the last 90 days. image:images/dashboard-usage-count.png[Graph showing the number of views during the last 90 days] \ No newline at end of file From c4599e0ade1aa259bc8ca62ed9a45af33d71816c Mon Sep 17 00:00:00 2001 From: Ilya Nikokoshev Date: Mon, 7 Oct 2024 18:57:49 +0300 Subject: [PATCH 30/62] [Auto Import] Ask LLM to map to non-reserved ECS fields (#195168) ## Release Note Automatic Import does not ask the LLM to map the fields to the reserved ECS fields anymore. ## Summary Previously we have given the LLM the whole list of ECS fields, but later failed the validation if the LLM's suggested a mapping into one of the reserved fields (like `event.created`). With these changes, we hide the reserved fields from the LLM when creating the prompt, so the likelihood of this happening is reduced. We test with the Teleport integration (see GitHub). --------- Co-authored-by: Elastic Machine --- .../integration_assistant/common/ecs.ts | 2 +- .../server/graphs/ecs/constants.ts | 4 +- .../server/graphs/ecs/model.ts | 3 +- .../server/graphs/ecs/validate.test.ts | 62 ++++++++++++++++++- .../server/graphs/ecs/validate.ts | 11 +++- 5 files changed, 75 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/integration_assistant/common/ecs.ts b/x-pack/plugins/integration_assistant/common/ecs.ts index bdc2b885febe1..9fd2ac2c1835f 100644 --- a/x-pack/plugins/integration_assistant/common/ecs.ts +++ b/x-pack/plugins/integration_assistant/common/ecs.ts @@ -5,7 +5,7 @@ * 2.0. */ -interface EcsFields { +export interface EcsFields { [key: string]: string; } diff --git a/x-pack/plugins/integration_assistant/server/graphs/ecs/constants.ts b/x-pack/plugins/integration_assistant/server/graphs/ecs/constants.ts index 62cce199cfe0b..48cac5626f9fe 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/ecs/constants.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/ecs/constants.ts @@ -5,9 +5,7 @@ * 2.0. */ -interface EcsFields { - [key: string]: string; -} +import { EcsFields } from '../../../common/ecs'; export const ECS_TYPES: EcsFields = { '@timestamp': 'date', diff --git a/x-pack/plugins/integration_assistant/server/graphs/ecs/model.ts b/x-pack/plugins/integration_assistant/server/graphs/ecs/model.ts index 67dbc747152f5..8ef46aa2869dc 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/ecs/model.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/ecs/model.ts @@ -10,6 +10,7 @@ import { mergeAndChunkSamples } from './chunk'; import { ECS_EXAMPLE_ANSWER, ECS_FIELDS } from './constants'; import { createPipeline } from './pipeline'; import type { EcsBaseNodeParams } from './types'; +import { removeReservedFields } from './validate'; export function modelSubOutput({ state }: EcsBaseNodeParams): Partial { return { @@ -33,7 +34,7 @@ export function modelInput({ state }: EcsBaseNodeParams): Partial { it('processMapping()', async () => { @@ -122,3 +129,56 @@ describe('findDuplicateFields', () => { ]); }); }); + +describe('removeReservedFields', () => { + it('should remove reserved fields from the mapping', () => { + const ecsMapping = { + 'ecs.version': 'Version', + 'event.category': 'Category', + 'source.ip': 'IP', + }; + + const expectedMapping = { + 'source.ip': 'IP', + }; + + const result = removeReservedFields(ecsMapping); + expect(result).toEqual(expectedMapping); + }); + + it('should remove all fields if all are reserved', () => { + const ecsMapping = Object.fromEntries(ECS_RESERVED.map((key) => [key, key])); + const result = removeReservedFields(ecsMapping); + expect(result).toEqual({}); + }); + + it('should return the same mapping if there are no reserved fields', () => { + const ecsMapping = { + 'source.ip': 'Some IP', + 'destination.ip': 'Another IP', + }; + + const result = removeReservedFields(ecsMapping); + expect(result).toEqual(ecsMapping); + }); + + it('should handle an empty mapping', () => { + const ecsMapping = {}; + + const result = removeReservedFields(ecsMapping); + expect(result).toEqual({}); + }); + + it('should not modify the original mapping object', () => { + const ecsMapping = { + 'ecs.version': 'Version', + 'source.ip': 'IP', + }; + + const ecsMappingCopy = { ...ecsMapping }; + + const result = removeReservedFields(ecsMapping); + expect(ecsMapping).toEqual(ecsMappingCopy); + expect(ecsMapping).not.toEqual(result); + }); +}); diff --git a/x-pack/plugins/integration_assistant/server/graphs/ecs/validate.ts b/x-pack/plugins/integration_assistant/server/graphs/ecs/validate.ts index 87005e3553e90..62f88f2d234f2 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/ecs/validate.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/ecs/validate.ts @@ -5,7 +5,7 @@ * 2.0. */ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { ECS_FULL } from '../../../common/ecs'; +import { EcsFields, ECS_FULL } from '../../../common/ecs'; import { mergeSamples } from '../../util/samples'; import { ECS_RESERVED } from './constants'; import type { EcsBaseNodeParams } from './types'; @@ -122,6 +122,15 @@ export function findDuplicateFields(prefixedSamples: string[], ecsMapping: AnyOb return results; } +// Produces a version of ECS mapping without reserved fields. +export function removeReservedFields(mapping: EcsFields): EcsFields { + const mappingCopy = { ...mapping }; + for (const field of ECS_RESERVED) { + delete mappingCopy[field]; + } + return mappingCopy; +} + // Function to find invalid ECS fields export function findInvalidEcsFields(currentMapping: AnyObject): string[] { const results: string[] = []; From 77c89d22f7863e8e55214c3aa79dc16026cc08e3 Mon Sep 17 00:00:00 2001 From: Ignacio Rivas Date: Mon, 7 Oct 2024 18:07:41 +0200 Subject: [PATCH 31/62] [Remote clusters] Per cluster status call (#194420) --- .../connection_status/connection_status.js | 6 +-- .../server/routes/api/get_route.ts | 46 +++++++++++++------ 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/components/connection_status/connection_status.js b/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/components/connection_status/connection_status.js index 5cdbfe596135f..1804bdd1385bb 100644 --- a/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/components/connection_status/connection_status.js +++ b/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/components/connection_status/connection_status.js @@ -9,7 +9,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { i18n } from '@kbn/i18n'; -import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiIconTip } from '@elastic/eui'; +import { EuiHealth, EuiFlexGroup, EuiFlexItem, EuiIconTip } from '@elastic/eui'; import { SNIFF_MODE, PROXY_MODE } from '../../../../../../common/constants'; @@ -24,7 +24,7 @@ export function ConnectionStatus({ isConnected, mode }) { return ( - @@ -35,7 +35,7 @@ export function ConnectionStatus({ isConnected, mode }) { : i18n.translate('xpack.remoteClusters.connectedStatus.notConnectedAriaLabel', { defaultMessage: 'Not connected', })} - + {!isConnected && mode === SNIFF_MODE && ( diff --git a/x-pack/plugins/remote_clusters/server/routes/api/get_route.ts b/x-pack/plugins/remote_clusters/server/routes/api/get_route.ts index e4541414acfe2..96805e10357cd 100644 --- a/x-pack/plugins/remote_clusters/server/routes/api/get_route.ts +++ b/x-pack/plugins/remote_clusters/server/routes/api/get_route.ts @@ -5,15 +5,16 @@ * 2.0. */ -import { get } from 'lodash'; +import { get, chunk, assign } from 'lodash'; -import type { IndicesResolveClusterResponse } from '@elastic/elasticsearch/lib/api/types'; import { RequestHandler } from '@kbn/core/server'; import { deserializeCluster } from '../../../common/lib'; import { API_BASE_PATH } from '../../../common/constants'; import { licensePreRoutingFactory } from '../../lib/license_pre_routing_factory'; import { RouteDependencies } from '../../types'; +const CLUSTER_STATUS_CHUNK_SIZE = 10; + export const register = (deps: RouteDependencies): void => { const { router, @@ -35,15 +36,32 @@ export const register = (deps: RouteDependencies): void => { const clustersByName = await clusterClient.asCurrentUser.cluster.remoteInfo(); const clusterNames = (clustersByName && Object.keys(clustersByName)) || []; - // Retrieve the cluster information for all the configured remote clusters. - // _none is never a valid index/alias/data-stream name so that way we can avoid - // using * which could be computationally expensive. - let clustersStatus: IndicesResolveClusterResponse = {}; - if (clusterNames.length > 0) { - clustersStatus = await clusterClient.asCurrentUser.indices.resolveCluster({ - name: clusterNames.map((cluster) => `${cluster}:_none`), - }); - } + const clusterNamesChunks = chunk(clusterNames, CLUSTER_STATUS_CHUNK_SIZE); + const promises = clusterNamesChunks.map(async (clustersChunk) => { + try { + return await clusterClient.asCurrentUser.indices.resolveCluster( + { + name: clustersChunk.map((cluster) => `${cluster}:*`), + filter_path: '*.connected', + }, + { + // Set a longer timeout given that sometimes unresponsive clusters + // can take a while to respond. + // We should be able to be more aggresive with this timeout once + // https://github.com/elastic/elasticsearch/issues/114020 is resolved. + requestTimeout: '60s', + } + ); + } catch (error) { + return Promise.resolve(null); + } + }); + + const resolvedClusterStatus = await Promise.all(promises); + // Flatten the resolved cluster status and filter out any null values + const flattenedClusterStatus = resolvedClusterStatus.flat().filter(Boolean); + // Combine the resolved cluster status into a single object + const clusterStatus = assign({}, ...flattenedClusterStatus); const body = clusterNames.map((clusterName: string): any => { const cluster = clustersByName[clusterName]; @@ -70,9 +88,9 @@ export const register = (deps: RouteDependencies): void => { config.isCloudEnabled ), isConfiguredByNode, - // We prioritize the cluster status from the resolve cluster api, and fallback to - // the cluster connected status in case its not present. - isConnected: clustersStatus[clusterName]?.connected || cluster.connected, + // We prioritize the cluster status from the resolve cluster API, and fallback to + // the cluster connected status in case it's not present. + isConnected: clusterStatus[clusterName]?.connected || cluster.connected, }; }); From 3b70d999150210f3915243837d9a4796e77f36a1 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Mon, 7 Oct 2024 09:17:10 -0700 Subject: [PATCH 32/62] [DOCS] Additional fields in ServiceNow ITSM and SecOps connectors (#195122) --- .../action-types/servicenow-sir.asciidoc | 18 +++++++++++++- .../action-types/servicenow.asciidoc | 23 ++++++++++++++++-- .../images/servicenow-connector-basic.png | Bin 253117 -> 255423 bytes .../images/servicenow-connector-oauth.png | Bin 310717 -> 282710 bytes .../images/servicenow-params-test.png | Bin 120657 -> 110026 bytes .../images/servicenow-sir-connector-basic.png | Bin 253532 -> 257005 bytes .../images/servicenow-sir-connector-oauth.png | Bin 311621 -> 283686 bytes .../images/servicenow-sir-params-test.png | Bin 194080 -> 106751 bytes 8 files changed, 38 insertions(+), 3 deletions(-) diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 164fe70a6d55b..4c3b6d15bf59e 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -64,12 +64,28 @@ The username for HTTP basic authentication. You can test connectors as you're creating or editing the connector in {kib}. For example: [role="screenshot"] -image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] +image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test, width=75%] {sn-sir} actions have the following configuration properties. Additional comments:: Additional information for the client, such as how to troubleshoot the issue. +Additional fields:: +An object that contains custom field identifiers and their values. +These fields must exist in the Elastic ServiceNow application and must be specified in JSON format. ++ +-- +For example: +[source,sh] +---- +{ + "u_cmdb_ci": "host-a", + "u_company": "My company", + "u_assignment_group": "Testing" +} +---- +Note that the default source field names in the Elastic ServiceNow application are prefixed with "u_". +-- Category:: The category of the incident. Correlation display:: diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index 11fe55ade7f95..83f8bd050d044 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -64,12 +64,28 @@ The username for HTTP basic authentication. When you create or edit a connector, use the *Test* tab to test its actions: [role="screenshot"] -image::management/connectors/images/servicenow-params-test.png[ServiceNow params test] +image::management/connectors/images/servicenow-params-test.png[ServiceNow params test, width=75%] {sn-itsm} actions have the following configuration properties. Additional comments:: Additional information for the client, such as how to troubleshoot the issue. +Additional fields:: +An object that contains custom field identifiers and their values. ++ +-- +These fields must exist in the Elastic ServiceNow application and must be specified in JSON format. +For example: +[source,sh] +---- +{ + "u_cmdb_ci": "host-a", + "u_company": "My company", + "u_assignment_group": "Testing" +} +---- +Note that the default source field names in the Elastic ServiceNow application are prefixed with "u_". +-- Category:: The category of the incident. Correlation display:: @@ -86,6 +102,9 @@ NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that Description:: The details about the incident. +Event action:: +The type of action to test: resolve or trigger. +When you test a resolve action, you must provide a correlation identifier. Impact:: The effect an incident has on business. It can be measured by the number of affected users or by how critical it is to the business in question. @@ -94,7 +113,7 @@ The severity of the incident. Short description:: A short description for the incident, used for searching the contents of the knowledge base. Subcategory:: -The category of the incident. +The subcategory of the incident. Urgency:: The extent to which the incident resolution can delay. diff --git a/docs/management/connectors/images/servicenow-connector-basic.png b/docs/management/connectors/images/servicenow-connector-basic.png index 4cf1f19fe8173a1ffa548188d2f2b4ba74839216..2897b7e80cae5ecfa07c680721e432026300363f 100644 GIT binary patch literal 255423 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 QxTi<9+2dd~|=oRR|F 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