From 40cef1108cd57384562cdebf40e9b1582a286568 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Tue, 26 Apr 2022 12:40:23 +0200 Subject: [PATCH] [Synthetics] Remove deprecated api (index pattern) usage (#130949) --- x-pack/plugins/synthetics/kibana.json | 1 + .../plugins/synthetics/public/apps/plugin.ts | 2 ++ .../synthetics/public/apps/uptime_app.tsx | 6 +++--- .../alerts/alert_query_bar/query_bar.tsx | 6 +++--- .../alerts/alerts_containers/use_snap_shot.ts | 6 +++--- .../filters_expression_select.tsx | 8 +++---- .../monitor_status_alert/add_filter_btn.tsx | 6 +++--- .../overview/filter_group/filter_group.tsx | 8 +++---- .../filter_group/selected_filters.tsx | 10 ++++----- .../overview/query_bar/query_bar.tsx | 6 +++--- .../overview/query_bar/use_query_bar.ts | 6 +++--- ...ntext.tsx => uptime_data_view_context.tsx} | 21 +++++++++---------- .../plugins/synthetics/public/hooks/index.ts | 2 +- .../public/hooks/update_kuery_string.ts | 8 +++---- .../lazy_wrapper/monitor_status.tsx | 6 +++--- 15 files changed, 52 insertions(+), 50 deletions(-) rename x-pack/plugins/synthetics/public/contexts/{uptime_index_pattern_context.tsx => uptime_data_view_context.tsx} (50%) diff --git a/x-pack/plugins/synthetics/kibana.json b/x-pack/plugins/synthetics/kibana.json index d65a89a16161fe..bb827019fc70ab 100644 --- a/x-pack/plugins/synthetics/kibana.json +++ b/x-pack/plugins/synthetics/kibana.json @@ -8,6 +8,7 @@ "cases", "embeddable", "discover", + "dataViews", "encryptedSavedObjects", "features", "inspector", diff --git a/x-pack/plugins/synthetics/public/apps/plugin.ts b/x-pack/plugins/synthetics/public/apps/plugin.ts index 4a3b3668dab0a6..7f1a7733766880 100644 --- a/x-pack/plugins/synthetics/public/apps/plugin.ts +++ b/x-pack/plugins/synthetics/public/apps/plugin.ts @@ -38,6 +38,7 @@ import { IStorageWrapper } from '@kbn/kibana-utils-plugin/public'; import { Start as InspectorPluginStart } from '@kbn/inspector-plugin/public'; import { CasesUiStart } from '@kbn/cases-plugin/public'; import { CloudSetup } from '@kbn/cloud-plugin/public'; +import { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import { PLUGIN } from '../../common/constants/plugin'; import { LazySyntheticsPolicyCreateExtension, @@ -67,6 +68,7 @@ export interface ClientPluginsStart { share: SharePluginStart; triggersActionsUi: TriggersAndActionsUIPublicPluginStart; cases: CasesUiStart; + dataViews: DataViewsPublicPluginStart; } export interface UptimePluginServices extends Partial { diff --git a/x-pack/plugins/synthetics/public/apps/uptime_app.tsx b/x-pack/plugins/synthetics/public/apps/uptime_app.tsx index 1ca9573308dbc3..9887fa81393bc9 100644 --- a/x-pack/plugins/synthetics/public/apps/uptime_app.tsx +++ b/x-pack/plugins/synthetics/public/apps/uptime_app.tsx @@ -33,7 +33,7 @@ import { UptimeAlertsFlyoutWrapper } from '../components/overview'; import { store, storage } from '../state'; import { kibanaService } from '../state/kibana_service'; import { ActionMenu } from '../components/common/header/action_menu'; -import { UptimeIndexPatternContextProvider } from '../contexts/uptime_index_pattern_context'; +import { UptimeDataViewContextProvider } from '../contexts/uptime_data_view_context'; export interface UptimeAppColors { danger: string; @@ -124,7 +124,7 @@ const Application = (props: UptimeAppProps) => { - +
{
-
+
diff --git a/x-pack/plugins/synthetics/public/components/overview/alerts/alert_query_bar/query_bar.tsx b/x-pack/plugins/synthetics/public/components/overview/alerts/alert_query_bar/query_bar.tsx index b990fb70a224c0..288cd7232a3d5f 100644 --- a/x-pack/plugins/synthetics/public/components/overview/alerts/alert_query_bar/query_bar.tsx +++ b/x-pack/plugins/synthetics/public/components/overview/alerts/alert_query_bar/query_bar.tsx @@ -11,7 +11,7 @@ import { i18n } from '@kbn/i18n'; import { QueryStringInput } from '@kbn/unified-search-plugin/public'; import { isValidKuery } from '../../query_bar/query_bar'; import * as labels from '../translations'; -import { useIndexPattern } from '../../../../hooks'; +import { useUptimeDataView } from '../../../../hooks'; interface Props { query: string; @@ -19,7 +19,7 @@ interface Props { } export const AlertQueryBar = ({ query = '', onChange }: Props) => { - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); const [inputVal, setInputVal] = useState(query); @@ -31,7 +31,7 @@ export const AlertQueryBar = ({ query = '', onChange }: Props) => { return ( { diff --git a/x-pack/plugins/synthetics/public/components/overview/alerts/alerts_containers/use_snap_shot.ts b/x-pack/plugins/synthetics/public/components/overview/alerts/alerts_containers/use_snap_shot.ts index e6aee6207093ea..7fd0f0b3a410bc 100644 --- a/x-pack/plugins/synthetics/public/components/overview/alerts/alerts_containers/use_snap_shot.ts +++ b/x-pack/plugins/synthetics/public/components/overview/alerts/alerts_containers/use_snap_shot.ts @@ -6,7 +6,7 @@ */ import { useFetcher } from '@kbn/observability-plugin/public'; -import { useIndexPattern, generateUpdatedKueryString } from '../../../../hooks'; +import { useUptimeDataView, generateUpdatedKueryString } from '../../../../hooks'; import { fetchSnapshotCount } from '../../../../state/api'; export const useSnapShotCount = ({ query, filters }: { query: string; filters: [] | string }) => { @@ -15,9 +15,9 @@ export const useSnapShotCount = ({ query, filters }: { query: string; filters: [ ? '' : JSON.stringify(Array.from(Object.entries(filters))); - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); - const [esKuery, error] = generateUpdatedKueryString(indexPattern, query, parsedFilters); + const [esKuery, error] = generateUpdatedKueryString(dataView, query, parsedFilters); const { data, loading } = useFetcher( () => diff --git a/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx b/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx index e34caf1b95b8b6..37201798388992 100644 --- a/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx +++ b/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx @@ -10,7 +10,7 @@ import { EuiButtonIcon, EuiExpression, EuiFlexGroup, EuiFlexItem, EuiSpacer } fr import { FieldValueSuggestions } from '@kbn/observability-plugin/public'; import { filterLabels } from '../../filter_group/translations'; import { alertFilterLabels, filterAriaLabels } from './translations'; -import { useIndexPattern } from '../../../../contexts/uptime_index_pattern_context'; +import { useUptimeDataView } from '../../../../contexts/uptime_data_view_context'; import { FILTER_FIELDS } from '../../../../../common/constants'; import { useGetUrlParams } from '../../../../hooks'; @@ -122,7 +122,7 @@ export const FiltersExpressionsSelect: React.FC = (curr) => curr.selectedItems.length > 0 || newFilters?.includes(curr.fieldName) ); - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); return ( <> @@ -130,11 +130,11 @@ export const FiltersExpressionsSelect: React.FC = ({ description, id, title, value, fieldName, ariaLabel, selectedItems }) => ( - {indexPattern && ( + {dataView && ( { diff --git a/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_status_alert/add_filter_btn.tsx b/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_status_alert/add_filter_btn.tsx index 58b8e7bb085da5..81e782696d58fe 100644 --- a/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_status_alert/add_filter_btn.tsx +++ b/x-pack/plugins/synthetics/public/components/overview/alerts/monitor_status_alert/add_filter_btn.tsx @@ -8,7 +8,7 @@ import React, { useState } from 'react'; import { EuiButtonEmpty, EuiContextMenuItem, EuiContextMenuPanel, EuiPopover } from '@elastic/eui'; import * as labels from '../translations'; -import { useIndexPattern } from '../../../../contexts/uptime_index_pattern_context'; +import { useUptimeDataView } from '../../../../contexts/uptime_data_view_context'; interface Props { newFilters: string[]; @@ -21,7 +21,7 @@ export const AddFilterButton: React.FC = ({ newFilters, onNewFilter, aler const getSelectedItems = (fieldName: string) => alertFilters?.[fieldName] ?? []; - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); const onButtonClick = () => { setPopover(!isPopoverOpen); @@ -65,7 +65,7 @@ export const AddFilterButton: React.FC = ({ newFilters, onNewFilter, aler onClick={onButtonClick} size="s" flush="left" - isLoading={!indexPattern} + isLoading={!dataView} > {labels.ADD_FILTER} diff --git a/x-pack/plugins/synthetics/public/components/overview/filter_group/filter_group.tsx b/x-pack/plugins/synthetics/public/components/overview/filter_group/filter_group.tsx index d73c2df73919b6..8a0ac4cbe81b18 100644 --- a/x-pack/plugins/synthetics/public/components/overview/filter_group/filter_group.tsx +++ b/x-pack/plugins/synthetics/public/components/overview/filter_group/filter_group.tsx @@ -13,7 +13,7 @@ import { FieldValueSuggestions, useInspectorContext } from '@kbn/observability-p import { useFilterUpdate } from '../../../hooks/use_filter_update'; import { useSelectedFilters } from '../../../hooks/use_selected_filters'; import { SelectedFilters } from './selected_filters'; -import { useIndexPattern } from '../../../contexts/uptime_index_pattern_context'; +import { useUptimeDataView } from '../../../contexts/uptime_data_view_context'; import { useGetUrlParams } from '../../../hooks'; import { EXCLUDE_RUN_ONCE_FILTER } from '../../../../common/constants/client_defaults'; @@ -40,7 +40,7 @@ export const FilterGroup = () => { const { filtersList } = useSelectedFilters(); - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); const onFilterFieldChange = useCallback( (fieldName: string, values: string[], notValues: string[]) => { @@ -52,12 +52,12 @@ export const FilterGroup = () => { return ( <> - {indexPattern && + {dataView && filtersList.map(({ field, label, selectedItems, excludedItems }) => ( void; } export const SelectedFilters = ({ onChange }: Props) => { - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); const { filtersList } = useSelectedFilters(); - if (!indexPattern) return null; + if (!dataView) return null; return ( @@ -26,7 +26,7 @@ export const SelectedFilters = ({ onChange }: Props) => { ...selectedItems.map((value) => ( { onChange( field, @@ -51,7 +51,7 @@ export const SelectedFilters = ({ onChange }: Props) => { ...excludedItems.map((value) => ( { onChange( field, diff --git a/x-pack/plugins/synthetics/public/components/overview/query_bar/query_bar.tsx b/x-pack/plugins/synthetics/public/components/overview/query_bar/query_bar.tsx index c2ecc5a2991782..3784bc58b76b26 100644 --- a/x-pack/plugins/synthetics/public/components/overview/query_bar/query_bar.tsx +++ b/x-pack/plugins/synthetics/public/components/overview/query_bar/query_bar.tsx @@ -11,7 +11,7 @@ import { EuiFlexItem } from '@elastic/eui'; import { QueryStringInput } from '@kbn/unified-search-plugin/public'; import { SyntaxType, useQueryBar } from './use_query_bar'; import { KQL_PLACE_HOLDER, SIMPLE_SEARCH_PLACEHOLDER } from './translations'; -import { useGetUrlParams, useIndexPattern } from '../../../hooks'; +import { useGetUrlParams, useUptimeDataView } from '../../../hooks'; const SYNTAX_STORAGE = 'uptime:queryBarSyntax'; @@ -35,7 +35,7 @@ export const QueryBar = () => { const { query, setQuery, submitImmediately } = useQueryBar(); - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); const [inputVal, setInputVal] = useState(query.query as string); @@ -49,7 +49,7 @@ export const QueryBar = () => { return ( { } ); - const indexPattern = useIndexPattern(); + const dataView = useUptimeDataView(); const [, updateUrlParams] = useUrlParams(); const [esFilters, error] = generateUpdatedKueryString( - indexPattern, + dataView, query.language === SyntaxType.kuery ? (query.query as string) : undefined, paramFilters, excludedFilters diff --git a/x-pack/plugins/synthetics/public/contexts/uptime_index_pattern_context.tsx b/x-pack/plugins/synthetics/public/contexts/uptime_data_view_context.tsx similarity index 50% rename from x-pack/plugins/synthetics/public/contexts/uptime_index_pattern_context.tsx rename to x-pack/plugins/synthetics/public/contexts/uptime_data_view_context.tsx index 765d9f8527c88f..518d2061d87ae6 100644 --- a/x-pack/plugins/synthetics/public/contexts/uptime_index_pattern_context.tsx +++ b/x-pack/plugins/synthetics/public/contexts/uptime_data_view_context.tsx @@ -7,27 +7,26 @@ import React, { createContext, useContext } from 'react'; import { useFetcher } from '@kbn/observability-plugin/public'; -import { DataPublicPluginStart, IndexPattern } from '@kbn/data-plugin/public'; +import { DataViewsPublicPluginStart, DataView } from '@kbn/data-views-plugin/public'; import { useHasData } from '../components/overview/empty_state/use_has_data'; -export const UptimeIndexPatternContext = createContext({} as IndexPattern); +export const UptimeDataViewContext = createContext({} as DataView); -export const UptimeIndexPatternContextProvider: React.FC<{ data: DataPublicPluginStart }> = ({ - children, - data: { indexPatterns }, -}) => { +export const UptimeDataViewContextProvider: React.FC<{ + dataViews: DataViewsPublicPluginStart; +}> = ({ children, dataViews }) => { const { settings, data: indexStatus } = useHasData(); const heartbeatIndices = settings?.heartbeatIndices || ''; - const { data } = useFetcher>(async () => { + const { data } = useFetcher>(async () => { if (heartbeatIndices && indexStatus?.indexExists) { - // this only creates an index pattern in memory, not as saved object - return indexPatterns.create({ title: heartbeatIndices }); + // this only creates an dateView in memory, not as saved object + return dataViews.create({ title: heartbeatIndices }); } }, [heartbeatIndices, indexStatus?.indexExists]); - return ; + return ; }; -export const useIndexPattern = () => useContext(UptimeIndexPatternContext); +export const useUptimeDataView = () => useContext(UptimeDataViewContext); diff --git a/x-pack/plugins/synthetics/public/hooks/index.ts b/x-pack/plugins/synthetics/public/hooks/index.ts index e96d746a05514f..b93373481f9f39 100644 --- a/x-pack/plugins/synthetics/public/hooks/index.ts +++ b/x-pack/plugins/synthetics/public/hooks/index.ts @@ -13,4 +13,4 @@ export * from './use_cert_status'; export * from './use_telemetry'; export * from './use_url_params'; export * from './use_breakpoints'; -export { useIndexPattern } from '../contexts/uptime_index_pattern_context'; +export { useUptimeDataView } from '../contexts/uptime_data_view_context'; diff --git a/x-pack/plugins/synthetics/public/hooks/update_kuery_string.ts b/x-pack/plugins/synthetics/public/hooks/update_kuery_string.ts index 8d31ef0abbd91a..a8884279f49bae 100644 --- a/x-pack/plugins/synthetics/public/hooks/update_kuery_string.ts +++ b/x-pack/plugins/synthetics/public/hooks/update_kuery_string.ts @@ -6,7 +6,7 @@ */ import { fromKueryExpression, toElasticsearchQuery } from '@kbn/es-query'; -import type { IndexPattern } from '@kbn/data-plugin/public'; +import { DataView } from '@kbn/data-views-plugin/public'; import { combineFiltersAndUserSearch, stringifyKueries } from '../../common/lib'; const getKueryString = (urlFilters: string, excludedFilters?: string): string => { @@ -42,7 +42,7 @@ const getKueryString = (urlFilters: string, excludedFilters?: string): string => }; export const generateUpdatedKueryString = ( - indexPattern: IndexPattern | null, + dataView: DataView | null, filterQueryString = '', urlFilters: string, excludedFilters?: string @@ -55,10 +55,10 @@ export const generateUpdatedKueryString = ( // this try catch is necessary to evaluate user input in kuery bar, // this error will be actually shown in UI for user to see try { - if ((filterQueryString || urlFilters || excludedFilters) && indexPattern) { + if ((filterQueryString || urlFilters || excludedFilters) && dataView) { const ast = fromKueryExpression(combinedFilterString); - const elasticsearchQuery = toElasticsearchQuery(ast, indexPattern); + const elasticsearchQuery = toElasticsearchQuery(ast, dataView); esFilters = JSON.stringify(elasticsearchQuery); } diff --git a/x-pack/plugins/synthetics/public/lib/alert_types/lazy_wrapper/monitor_status.tsx b/x-pack/plugins/synthetics/public/lib/alert_types/lazy_wrapper/monitor_status.tsx index 362263fa006ab4..10aa71fa533e3f 100644 --- a/x-pack/plugins/synthetics/public/lib/alert_types/lazy_wrapper/monitor_status.tsx +++ b/x-pack/plugins/synthetics/public/lib/alert_types/lazy_wrapper/monitor_status.tsx @@ -13,7 +13,7 @@ import { store } from '../../../state'; import { ClientPluginsStart } from '../../../apps/plugin'; import { kibanaService } from '../../../state/kibana_service'; import { AlertMonitorStatus } from '../../../components/overview/alerts/alerts_containers/alert_monitor_status'; -import { UptimeIndexPatternContextProvider } from '../../../contexts/uptime_index_pattern_context'; +import { UptimeDataViewContextProvider } from '../../../contexts/uptime_data_view_context'; interface Props { core: CoreStart; @@ -27,9 +27,9 @@ export default function MonitorStatusAlert({ core, plugins, params }: Props) { return ( - + - + );