From 0bcde83489679def9b45b24abdbb45ccba45506b Mon Sep 17 00:00:00 2001 From: Adam Demjen Date: Wed, 3 May 2023 09:45:03 -0400 Subject: [PATCH 1/4] Add telemetry to ELSER deployment buttons + error --- .../text_expansion_callout.test.tsx | 56 ++++++++++++++++--- .../ml_inference/text_expansion_callout.tsx | 13 ++++- .../ml_inference/text_expansion_errors.tsx | 2 + 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.test.tsx index 9480f4b1a0ce5..dfb3b031698fd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.test.tsx @@ -100,7 +100,12 @@ describe('TextExpansionCallOut', () => { describe('DeployModel', () => { it('renders deploy button', () => { const wrapper = shallow( - {}} isCreateButtonDisabled={false} isDismissable={false} /> + {}} + ingestionMethod="crawler" + isCreateButtonDisabled={false} + isDismissable={false} + /> ); expect(wrapper.find(EuiButton).length).toBe(1); const button = wrapper.find(EuiButton); @@ -108,7 +113,12 @@ describe('TextExpansionCallOut', () => { }); it('renders disabled deploy button if it is set to disabled', () => { const wrapper = shallow( - {}} isCreateButtonDisabled isDismissable={false} /> + {}} + ingestionMethod="crawler" + isCreateButtonDisabled + isDismissable={false} + /> ); expect(wrapper.find(EuiButton).length).toBe(1); const button = wrapper.find(EuiButton); @@ -116,13 +126,23 @@ describe('TextExpansionCallOut', () => { }); it('renders dismiss button if it is set to dismissable', () => { const wrapper = shallow( - {}} isCreateButtonDisabled={false} isDismissable /> + {}} + ingestionMethod="crawler" + isCreateButtonDisabled={false} + isDismissable + /> ); expect(wrapper.find(TextExpansionDismissButton).length).toBe(1); }); it('does not render dismiss button if it is set to non-dismissable', () => { const wrapper = shallow( - {}} isCreateButtonDisabled={false} isDismissable={false} /> + {}} + ingestionMethod="crawler" + isCreateButtonDisabled={false} + isDismissable={false} + /> ); expect(wrapper.find(TextExpansionDismissButton).length).toBe(0); }); @@ -144,7 +164,12 @@ describe('TextExpansionCallOut', () => { describe('ModelDeployed', () => { it('renders start button', () => { const wrapper = shallow( - {}} isDismissable={false} isStartButtonDisabled={false} /> + {}} + ingestionMethod="crawler" + isDismissable={false} + isStartButtonDisabled={false} + /> ); expect(wrapper.find(EuiButton).length).toBe(1); const button = wrapper.find(EuiButton); @@ -152,7 +177,12 @@ describe('TextExpansionCallOut', () => { }); it('renders disabled start button if it is set to disabled', () => { const wrapper = shallow( - {}} isDismissable={false} isStartButtonDisabled /> + {}} + ingestionMethod="crawler" + isDismissable={false} + isStartButtonDisabled + /> ); expect(wrapper.find(EuiButton).length).toBe(1); const button = wrapper.find(EuiButton); @@ -160,13 +190,23 @@ describe('TextExpansionCallOut', () => { }); it('renders dismiss button if it is set to dismissable', () => { const wrapper = shallow( - {}} isDismissable isStartButtonDisabled={false} /> + {}} + ingestionMethod="crawler" + isDismissable + isStartButtonDisabled={false} + /> ); expect(wrapper.find(TextExpansionDismissButton).length).toBe(1); }); it('does not render dismiss button if it is set to non-dismissable', () => { const wrapper = shallow( - {}} isDismissable={false} isStartButtonDisabled={false} /> + {}} + ingestionMethod="crawler" + isDismissable={false} + isStartButtonDisabled={false} + /> ); expect(wrapper.find(TextExpansionDismissButton).length).toBe(0); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx index a72a328188c6f..e69cb0af09a10 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx @@ -31,9 +31,11 @@ import { KibanaLogic } from '../../../../../shared/kibana'; import { useTextExpansionCallOutData } from './text_expansion_callout_data'; import { getTextExpansionError, TextExpansionCalloutLogic } from './text_expansion_callout_logic'; import { TextExpansionErrors } from './text_expansion_errors'; +import { IndexViewLogic } from '../../index_view_logic'; export interface TextExpansionCallOutState { dismiss: () => void; + ingestionMethod: string; isCreateButtonDisabled: boolean; isDismissable: boolean; isStartButtonDisabled: boolean; @@ -61,9 +63,10 @@ export const TextExpansionDismissButton = ({ export const DeployModel = ({ dismiss, + ingestionMethod, isCreateButtonDisabled, isDismissable, -}: Pick) => { +}: Pick) => { const { createTextExpansionModel } = useActions(TextExpansionCalloutLogic); return ( @@ -117,6 +120,7 @@ export const DeployModel = ({ createTextExpansionModel(undefined)} @@ -193,9 +197,10 @@ export const ModelDeploymentInProgress = ({ export const ModelDeployed = ({ dismiss, + ingestionMethod, isDismissable, isStartButtonDisabled, -}: Pick) => { +}: Pick) => { const { startTextExpansionModel } = useActions(TextExpansionCalloutLogic); return ( @@ -249,6 +254,7 @@ export const ModelDeployed = ({ startTextExpansionModel(undefined)} @@ -327,6 +333,7 @@ export const ModelStarted = ({ export const TextExpansionCallOut: React.FC = (props) => { const { dismiss, isDismissable, show } = useTextExpansionCallOutData(props); + const { ingestionMethod } = useValues(IndexViewLogic); const { createTextExpansionModelError, fetchTextExpansionModelError, @@ -354,6 +361,7 @@ export const TextExpansionCallOut: React.FC = (props) return ( @@ -365,6 +373,7 @@ export const TextExpansionCallOut: React.FC = (props) return ( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx index d9b1d1f1f2bc2..be0491614465f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx @@ -16,12 +16,14 @@ import { i18n } from '@kbn/i18n'; import { HttpLogic } from '../../../../../shared/http'; import { ML_NOTIFICATIONS_PATH } from '../../../../routes'; +import { SendEnterpriseSearchTelemetry } from '../../../../../shared/telemetry'; export const TextExpansionErrors = ({ error }: { error: { title: string; message: string } }) => { const { http } = useValues(HttpLogic); return ( <> +

{error.message}

From 2a4edd3a276bbcbac0c4287075d9427b9934a24f Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 3 May 2023 13:51:15 +0000 Subject: [PATCH 2/4] [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' --- .../ml_inference/text_expansion_callout.tsx | 13 ++++++++++--- .../ml_inference/text_expansion_errors.tsx | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx index e69cb0af09a10..89cb65a5d8265 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout.tsx @@ -28,10 +28,11 @@ import { FormattedMessage, FormattedHTMLMessage } from '@kbn/i18n-react'; import { docLinks } from '../../../../../shared/doc_links'; import { KibanaLogic } from '../../../../../shared/kibana'; +import { IndexViewLogic } from '../../index_view_logic'; + import { useTextExpansionCallOutData } from './text_expansion_callout_data'; import { getTextExpansionError, TextExpansionCalloutLogic } from './text_expansion_callout_logic'; import { TextExpansionErrors } from './text_expansion_errors'; -import { IndexViewLogic } from '../../index_view_logic'; export interface TextExpansionCallOutState { dismiss: () => void; @@ -66,7 +67,10 @@ export const DeployModel = ({ ingestionMethod, isCreateButtonDisabled, isDismissable, -}: Pick) => { +}: Pick< + TextExpansionCallOutState, + 'dismiss' | 'ingestionMethod' | 'isCreateButtonDisabled' | 'isDismissable' +>) => { const { createTextExpansionModel } = useActions(TextExpansionCalloutLogic); return ( @@ -200,7 +204,10 @@ export const ModelDeployed = ({ ingestionMethod, isDismissable, isStartButtonDisabled, -}: Pick) => { +}: Pick< + TextExpansionCallOutState, + 'dismiss' | 'ingestionMethod' | 'isDismissable' | 'isStartButtonDisabled' +>) => { const { startTextExpansionModel } = useActions(TextExpansionCalloutLogic); return ( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx index be0491614465f..a46105586af1e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_errors.tsx @@ -15,8 +15,8 @@ import { i18n } from '@kbn/i18n'; import { HttpLogic } from '../../../../../shared/http'; -import { ML_NOTIFICATIONS_PATH } from '../../../../routes'; import { SendEnterpriseSearchTelemetry } from '../../../../../shared/telemetry'; +import { ML_NOTIFICATIONS_PATH } from '../../../../routes'; export const TextExpansionErrors = ({ error }: { error: { title: string; message: string } }) => { const { http } = useValues(HttpLogic); From c6d48d2e63c9da1140eb4a6799713e654b76a698 Mon Sep 17 00:00:00 2001 From: Adam Demjen Date: Wed, 3 May 2023 10:34:40 -0400 Subject: [PATCH 3/4] Fix missing type --- .../pipelines/ml_inference/text_expansion_callout_data.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx index 3f864f030e3f1..2ee2a0b8cd505 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx @@ -11,6 +11,7 @@ import { useValues } from 'kea'; import { TextExpansionCallOutProps, TextExpansionCallOutState } from './text_expansion_callout'; import { TextExpansionCalloutLogic } from './text_expansion_callout_logic'; +import { IndexViewLogic } from '../../index_view_logic'; export const TEXT_EXPANSION_CALL_OUT_DISMISSED_KEY = 'enterprise-search-text-expansion-callout-dismissed'; @@ -20,6 +21,7 @@ const isDismissed = () => localStorage.getItem(TEXT_EXPANSION_CALL_OUT_DISMISSED export const useTextExpansionCallOutData = ({ isDismissable = false, }: TextExpansionCallOutProps): TextExpansionCallOutState => { + const { ingestionMethod } = useValues(IndexViewLogic); const { isCreateButtonDisabled, isStartButtonDisabled } = useValues(TextExpansionCalloutLogic); const [show, setShow] = useState(() => { @@ -48,6 +50,7 @@ export const useTextExpansionCallOutData = ({ return { dismiss, + ingestionMethod, isCreateButtonDisabled, isDismissable, isStartButtonDisabled, From 54034a52eddfa47a11b5f8fea6a9ef13fca1ab3b Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 3 May 2023 15:12:50 +0000 Subject: [PATCH 4/4] [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' --- .../pipelines/ml_inference/text_expansion_callout_data.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx index 2ee2a0b8cd505..6cffd3c331a3e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/text_expansion_callout_data.tsx @@ -9,9 +9,10 @@ import { useCallback, useEffect, useState } from 'react'; import { useValues } from 'kea'; +import { IndexViewLogic } from '../../index_view_logic'; + import { TextExpansionCallOutProps, TextExpansionCallOutState } from './text_expansion_callout'; import { TextExpansionCalloutLogic } from './text_expansion_callout_logic'; -import { IndexViewLogic } from '../../index_view_logic'; export const TEXT_EXPANSION_CALL_OUT_DISMISSED_KEY = 'enterprise-search-text-expansion-callout-dismissed';