diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index e29f0fa2ac0ed..60d841d390feb 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -427,7 +427,7 @@ The plugin exposes the static DefaultEditorController class to consume. |{kib-repo}blob/{branch}/x-pack/plugins/aiops/README.md[aiops] -|The plugin provides APIs and components for AIOps features, including the “Explain log rate spikes” UI, maintained by the ML team. +|The plugin provides APIs and components for AIOps features, including the “Log rate analysis” UI, maintained by the ML team. |{kib-repo}blob/{branch}/x-pack/plugins/alerting/README.md[alerting] diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index cbd77c47c15e3..1928cfb97bdfe 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -7,6 +7,10 @@ The following pages have moved or been deleted. -- +[role="exclude",id="explain-log-rate-spikes"] +== Explain log rate spikes +Refer to <>. + [role="exclude",id="snapshot-repositories"] == Snapshot and Restore Refer to {ref}/snapshot-restore.html[Snapshot and Restore]. diff --git a/docs/user/ml/images/ml-explain-log-rate-before.png b/docs/user/ml/images/ml-explain-log-rate-before.png deleted file mode 100644 index 2fcfae8951567..0000000000000 Binary files a/docs/user/ml/images/ml-explain-log-rate-before.png and /dev/null differ diff --git a/docs/user/ml/images/ml-explain-log-rate.png b/docs/user/ml/images/ml-explain-log-rate.png deleted file mode 100644 index c5353fab29f5e..0000000000000 Binary files a/docs/user/ml/images/ml-explain-log-rate.png and /dev/null differ diff --git a/docs/user/ml/images/ml-log-rate-analysis-before.png b/docs/user/ml/images/ml-log-rate-analysis-before.png new file mode 100644 index 0000000000000..cfa4b8f5fdd6f Binary files /dev/null and b/docs/user/ml/images/ml-log-rate-analysis-before.png differ diff --git a/docs/user/ml/images/ml-log-rate-analysis.png b/docs/user/ml/images/ml-log-rate-analysis.png new file mode 100644 index 0000000000000..4d12c1410b105 Binary files /dev/null and b/docs/user/ml/images/ml-log-rate-analysis.png differ diff --git a/docs/user/ml/index.asciidoc b/docs/user/ml/index.asciidoc index e5a8f6712a6b2..e7a60df8d289e 100644 --- a/docs/user/ml/index.asciidoc +++ b/docs/user/ml/index.asciidoc @@ -117,27 +117,27 @@ AIOps Labs is a part of {ml-app} in {kib} which provides features that use advanced statistical methods to help you interpret your data and its behavior. [discrete] -[[explain-log-rate-spikes]] -=== Explain log rate spikes +[[log-rate-analysis]] +=== Log rate analysis preview::[] -Explain log rate spikes is a feature that uses advanced statistical methods to -identify reasons for increases in log rates. It makes it easy to find and -investigate causes of unusual spikes by using the analysis workflow view. +Log rate analysis is a feature that uses advanced statistical methods to +identify reasons for increases or decreases in log rates. It makes it easy to find and +investigate causes of unusual spikes or drops by using the analysis workflow view. Examine the histogram chart of the log rates for a given {data-source}, and find the reason behind a particular change possibly in millions of log events across multiple fields and values. -You can find explain log rate spikes under **{ml-app}** > **AIOps Labs** where +You can find log rate analysis under **{ml-app}** > **AIOps Labs** where you can select the {data-source} or saved search that you want to analyze. [role="screenshot"] -image::user/ml/images/ml-explain-log-rate-before.png[Log event histogram chart] +image::user/ml/images/ml-log-rate-analysis-before.png[Log event histogram chart] -Select a spike in the log event histogram chart to start the analysis. It +Select a spike or drop in the log event histogram chart to start the analysis. It identifies statistically significant field-value combinations that contribute to -the spike and displays them in a table. You can optionally choose to summarize +the spike or drop and displays them in a table. You can optionally choose to summarize the results into groups. The table also shows an indicator of the level of impact and a sparkline showing the shape of the impact in the chart. Hovering over a row displays the impact on the histogram chart in more detail. You can @@ -153,7 +153,7 @@ analyzed data. You can move the brushes to redefine both the baseline and the deviation and rerun the analysis with the modified values. [role="screenshot"] -image::user/ml/images/ml-explain-log-rate.png[Log rate spike explained] +image::user/ml/images/ml-log-rate-analysis.png[Log rate spike explained] [discrete] @@ -205,7 +205,7 @@ image::user/ml/images/ml-change-point-detection.png[Change point detection UI] Select a function and a metric field, then pick a date range to start detecting change points in the defined range. Optionally, you can split the data by a field. If the cardinality of the split field exceeds 10,000, then only the first -10,000, sorted by document count, are analyzed. You can configure a maximum of 6 +10,000, sorted by document count, are analyzed. You can configure a maximum of 6 combinations of a function applied to a metric field, partitioned by a split field to identify change points. @@ -222,4 +222,4 @@ change; lower values indicate more significant changes. You can use the change point type selector to filter the results by specific types of change points. [role="screenshot"] -image::user/ml/images/ml-change-point-detection-selected.png[Selected change points] \ No newline at end of file +image::user/ml/images/ml-change-point-detection-selected.png[Selected change points] diff --git a/packages/deeplinks/ml/deep_links.ts b/packages/deeplinks/ml/deep_links.ts index f08a1c03e5d0d..d0c79bcec7648 100644 --- a/packages/deeplinks/ml/deep_links.ts +++ b/packages/deeplinks/ml/deep_links.ts @@ -19,7 +19,7 @@ export type LinkId = | 'resultExplorer' | 'analyticsMap' | 'aiOps' - | 'explainLogRateSpikes' + | 'logRateAnalysis' | 'logPatternAnalysis' | 'changePointDetections' | 'modelManagement' diff --git a/packages/default-nav/ml/default_navigation.ts b/packages/default-nav/ml/default_navigation.ts index 5eb99482fd68c..ebd72f5915201 100644 --- a/packages/default-nav/ml/default_navigation.ts +++ b/packages/default-nav/ml/default_navigation.ts @@ -121,7 +121,7 @@ export const defaultNavigation: MlNodeDefinition = { }), children: [ { - link: 'ml:explainLogRateSpikes', + link: 'ml:logRateAnalysis', }, { link: 'ml:logPatternAnalysis', diff --git a/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts b/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts index 2a243080b9e46..b9b1c287dce73 100644 --- a/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts +++ b/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts @@ -59,11 +59,11 @@ const allNavLinks: AppDeepLinkId[] = [ 'ml:changePointDetections', 'ml:dataFrameAnalytics', 'ml:dataVisualizer', - 'ml:explainLogRateSpikes', 'ml:fileUpload', 'ml:filterListsSettings', 'ml:indexDataVisualizer', 'ml:logPatternAnalysis', + 'ml:logRateAnalysis', 'ml:memoryUsage', 'ml:modelManagement', 'ml:nodes', diff --git a/packages/shared-ux/chrome/navigation/src/ui/__snapshots__/default_navigation.test.tsx.snap b/packages/shared-ux/chrome/navigation/src/ui/__snapshots__/default_navigation.test.tsx.snap index 232d6b7dc610e..4ac12bcbb1135 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/__snapshots__/default_navigation.test.tsx.snap +++ b/packages/shared-ux/chrome/navigation/src/ui/__snapshots__/default_navigation.test.tsx.snap @@ -486,21 +486,21 @@ Array [ "children": undefined, "deepLink": Object { "baseUrl": "/mocked", - "href": "http://mocked/ml:explainLogRateSpikes", - "id": "ml:explainLogRateSpikes", - "title": "Deeplink ml:explainLogRateSpikes", - "url": "/mocked/ml:explainLogRateSpikes", + "href": "http://mocked/ml:logRateAnalysis", + "id": "ml:logRateAnalysis", + "title": "Deeplink ml:logRateAnalysis", + "url": "/mocked/ml:logRateAnalysis", }, "href": undefined, - "id": "ml:explainLogRateSpikes", + "id": "ml:logRateAnalysis", "isActive": false, "path": Array [ "rootNav:ml", "aiops_labs", - "ml:explainLogRateSpikes", + "ml:logRateAnalysis", ], "renderItem": undefined, - "title": "Deeplink ml:explainLogRateSpikes", + "title": "Deeplink ml:logRateAnalysis", }, Object { "children": undefined, diff --git a/x-pack/packages/ml/agg_utils/src/type_guards.ts b/x-pack/packages/ml/agg_utils/src/type_guards.ts index b5c19bd8c31fd..ffc0d5943adb7 100644 --- a/x-pack/packages/ml/agg_utils/src/type_guards.ts +++ b/x-pack/packages/ml/agg_utils/src/type_guards.ts @@ -11,7 +11,7 @@ import type { SignificantTerm } from './types'; /** * Type guard for a significant term. - * Note this is used as a custom type within Explain Log Rate Spikes + * Note this is used as a custom type within Log Rate Analysis * for a p-value based variant, not a generic significant terms * aggregation type. * @param arg The unknown type to be evaluated diff --git a/x-pack/packages/ml/agg_utils/src/types.ts b/x-pack/packages/ml/agg_utils/src/types.ts index b07cced67b517..9c55d5480381b 100644 --- a/x-pack/packages/ml/agg_utils/src/types.ts +++ b/x-pack/packages/ml/agg_utils/src/types.ts @@ -58,7 +58,7 @@ export interface HistogramField { /** * Significant term meta data for a field/value pair. - * Note this is used as a custom type within Explain Log Rate Spikes + * Note this is used as a custom type within Log Rate Analysis * for a p-value based variant, not a generic significant terms * aggregation type. */ diff --git a/x-pack/plugins/aiops/README.md b/x-pack/plugins/aiops/README.md index 9bfd64f9bf3a3..2d07e0c34653a 100755 --- a/x-pack/plugins/aiops/README.md +++ b/x-pack/plugins/aiops/README.md @@ -1,6 +1,6 @@ # aiops -The plugin provides APIs and components for AIOps features, including the “Explain log rate spikes” UI, maintained by the ML team. +The plugin provides APIs and components for AIOps features, including the “Log rate analysis” UI, maintained by the ML team. --- diff --git a/x-pack/plugins/aiops/common/api/index.ts b/x-pack/plugins/aiops/common/api/index.ts index f1f57fea9742e..43639107cfc2d 100644 --- a/x-pack/plugins/aiops/common/api/index.ts +++ b/x-pack/plugins/aiops/common/api/index.ts @@ -6,19 +6,22 @@ */ import type { - AiopsExplainLogRateSpikesSchema, - AiopsExplainLogRateSpikesApiAction, -} from './explain_log_rate_spikes'; + AiopsLogRateAnalysisSchema, + AiopsLogRateAnalysisApiAction, +} from './log_rate_analysis'; import { streamReducer } from './stream_reducer'; -export const API_ENDPOINT = { - EXPLAIN_LOG_RATE_SPIKES: '/internal/aiops/explain_log_rate_spikes', +export const AIOPS_API_ENDPOINT = { + LOG_RATE_ANALYSIS: '/internal/aiops/log_rate_analysis', } as const; -export interface ApiExplainLogRateSpikes { - endpoint: typeof API_ENDPOINT.EXPLAIN_LOG_RATE_SPIKES; +type AiopsApiEndpointKeys = keyof typeof AIOPS_API_ENDPOINT; +export type AiopsApiEndpoint = typeof AIOPS_API_ENDPOINT[AiopsApiEndpointKeys]; + +export interface AiopsApiLogRateAnalysis { + endpoint: AiopsApiEndpoint; apiVersion: string; reducer: typeof streamReducer; - body: AiopsExplainLogRateSpikesSchema; - actions: AiopsExplainLogRateSpikesApiAction; + body: AiopsLogRateAnalysisSchema; + actions: AiopsLogRateAnalysisApiAction; } diff --git a/x-pack/plugins/aiops/common/api/explain_log_rate_spikes/actions.ts b/x-pack/plugins/aiops/common/api/log_rate_analysis/actions.ts similarity index 98% rename from x-pack/plugins/aiops/common/api/explain_log_rate_spikes/actions.ts rename to x-pack/plugins/aiops/common/api/log_rate_analysis/actions.ts index 79a80c0040e2f..b0ab5ae260955 100644 --- a/x-pack/plugins/aiops/common/api/explain_log_rate_spikes/actions.ts +++ b/x-pack/plugins/aiops/common/api/log_rate_analysis/actions.ts @@ -148,7 +148,7 @@ export function updateLoadingStateAction( }; } -export type AiopsExplainLogRateSpikesApiAction = +export type AiopsLogRateAnalysisApiAction = | ApiActionAddSignificantTerms | ApiActionAddSignificantTermsGroup | ApiActionAddSignificantTermsHistogram diff --git a/x-pack/plugins/aiops/common/api/explain_log_rate_spikes/index.ts b/x-pack/plugins/aiops/common/api/log_rate_analysis/index.ts similarity index 74% rename from x-pack/plugins/aiops/common/api/explain_log_rate_spikes/index.ts rename to x-pack/plugins/aiops/common/api/log_rate_analysis/index.ts index 52e26a534baa9..4687bb8872840 100644 --- a/x-pack/plugins/aiops/common/api/explain_log_rate_spikes/index.ts +++ b/x-pack/plugins/aiops/common/api/log_rate_analysis/index.ts @@ -18,7 +18,7 @@ export { updateLoadingStateAction, API_ACTION_NAME, } from './actions'; -export type { AiopsExplainLogRateSpikesApiAction } from './actions'; +export type { AiopsLogRateAnalysisApiAction } from './actions'; -export { aiopsExplainLogRateSpikesSchema } from './schema'; -export type { AiopsExplainLogRateSpikesSchema } from './schema'; +export { aiopsLogRateAnalysisSchema } from './schema'; +export type { AiopsLogRateAnalysisSchema } from './schema'; diff --git a/x-pack/plugins/aiops/common/api/explain_log_rate_spikes/schema.ts b/x-pack/plugins/aiops/common/api/log_rate_analysis/schema.ts similarity index 90% rename from x-pack/plugins/aiops/common/api/explain_log_rate_spikes/schema.ts rename to x-pack/plugins/aiops/common/api/log_rate_analysis/schema.ts index 2f1bd9dbf9e24..b7ff67caf51ed 100644 --- a/x-pack/plugins/aiops/common/api/explain_log_rate_spikes/schema.ts +++ b/x-pack/plugins/aiops/common/api/log_rate_analysis/schema.ts @@ -7,7 +7,7 @@ import { schema, TypeOf } from '@kbn/config-schema'; -export const aiopsExplainLogRateSpikesSchema = schema.object({ +export const aiopsLogRateAnalysisSchema = schema.object({ start: schema.number(), end: schema.number(), searchQuery: schema.string(), @@ -38,4 +38,4 @@ export const aiopsExplainLogRateSpikesSchema = schema.object({ sampleProbability: schema.maybe(schema.number()), }); -export type AiopsExplainLogRateSpikesSchema = TypeOf; +export type AiopsLogRateAnalysisSchema = TypeOf; diff --git a/x-pack/plugins/aiops/common/api/stream_reducer.test.ts b/x-pack/plugins/aiops/common/api/stream_reducer.test.ts index 710f575242b74..c119dcfc54c02 100644 --- a/x-pack/plugins/aiops/common/api/stream_reducer.test.ts +++ b/x-pack/plugins/aiops/common/api/stream_reducer.test.ts @@ -14,7 +14,7 @@ import { resetAllAction, resetGroupsAction, updateLoadingStateAction, -} from './explain_log_rate_spikes'; +} from './log_rate_analysis'; import { initialState, streamReducer } from './stream_reducer'; describe('streamReducer', () => { diff --git a/x-pack/plugins/aiops/common/api/stream_reducer.ts b/x-pack/plugins/aiops/common/api/stream_reducer.ts index c78c94987e0ad..278c3843a2811 100644 --- a/x-pack/plugins/aiops/common/api/stream_reducer.ts +++ b/x-pack/plugins/aiops/common/api/stream_reducer.ts @@ -7,7 +7,7 @@ import type { SignificantTerm, SignificantTermGroup } from '@kbn/ml-agg-utils'; -import { API_ACTION_NAME, AiopsExplainLogRateSpikesApiAction } from './explain_log_rate_spikes'; +import { API_ACTION_NAME, AiopsLogRateAnalysisApiAction } from './log_rate_analysis'; interface StreamState { ccsWarning: boolean; @@ -31,7 +31,7 @@ export const initialState: StreamState = { export function streamReducer( state: StreamState, - action: AiopsExplainLogRateSpikesApiAction | AiopsExplainLogRateSpikesApiAction[] + action: AiopsLogRateAnalysisApiAction | AiopsLogRateAnalysisApiAction[] ): StreamState { if (Array.isArray(action)) { return action.reduce(streamReducer, state); diff --git a/x-pack/plugins/aiops/common/constants.ts b/x-pack/plugins/aiops/common/constants.ts index 823ef05b1ed3f..38551abe2331c 100644 --- a/x-pack/plugins/aiops/common/constants.ts +++ b/x-pack/plugins/aiops/common/constants.ts @@ -7,6 +7,6 @@ export const SPIKE_ANALYSIS_THRESHOLD = 0.02; -// For the technical preview of Explain Log Rate Spikes we use a hard coded seed. +// For the technical preview of Log Rate Analysis we use a hard coded seed. // In future versions we might use a user specific seed or let the user costumise it. export const RANDOM_SAMPLER_SEED = 3867412; diff --git a/x-pack/plugins/aiops/common/index.ts b/x-pack/plugins/aiops/common/index.ts index e4ef3c5a10af0..d9d9b9cb4d385 100755 --- a/x-pack/plugins/aiops/common/index.ts +++ b/x-pack/plugins/aiops/common/index.ts @@ -15,12 +15,6 @@ export const PLUGIN_ID = 'aiops'; */ export const PLUGIN_NAME = 'AIOps'; -/** - * This is an internal hard coded feature flag so we can easily turn on/off the - * "Explain log rate spikes UI" during development until the first release. - */ -export const AIOPS_ENABLED = true; - /** * This is an internal hard coded feature flag so we can easily turn on/off the * "Change Point Detection UI" during development until the first release. diff --git a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts index 2f77eabb3a75b..c27c8d66de53a 100644 --- a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts +++ b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.test.ts @@ -7,7 +7,7 @@ import type { SignificantTerm } from '@kbn/ml-agg-utils'; -import type { GroupTableItem } from '../../components/spike_analysis_table/types'; +import type { GroupTableItem } from '../../components/log_rate_analysis_results_table/types'; import { buildExtendedBaseFilterCriteria } from './build_extended_base_filter_criteria'; diff --git a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts index afeeb09dbb80d..87cc5afc65e25 100644 --- a/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts +++ b/x-pack/plugins/aiops/public/application/utils/build_extended_base_filter_criteria.ts @@ -15,7 +15,7 @@ import type { SignificantTerm } from '@kbn/ml-agg-utils'; import { buildBaseFilterCriteria } from '@kbn/ml-query-utils'; -import type { GroupTableItem } from '../../components/spike_analysis_table/types'; +import type { GroupTableItem } from '../../components/log_rate_analysis_results_table/types'; /* * Contains utility functions for building and processing queries. diff --git a/x-pack/plugins/aiops/public/application/utils/time_series_dataview_check.tsx b/x-pack/plugins/aiops/public/application/utils/time_series_dataview_check.tsx index 2d879534dd9ff..a8ebcfa92f9cf 100644 --- a/x-pack/plugins/aiops/public/application/utils/time_series_dataview_check.tsx +++ b/x-pack/plugins/aiops/public/application/utils/time_series_dataview_check.tsx @@ -14,7 +14,7 @@ import { i18n } from '@kbn/i18n'; export function timeSeriesDataViewWarning( dataView: DataView, - feature: 'change_point_detection' | 'log_categorization' | 'explain_log_rate_spikes' + feature: 'change_point_detection' | 'log_categorization' | 'log_rate_analysis' ) { if (dataView.isTimeBased()) { return null; @@ -29,9 +29,9 @@ export function timeSeriesDataViewWarning( description = i18n.translate('xpack.aiops.logCategorizationTimeSeriesWarning.description', { defaultMessage: 'Log pattern analysis only runs over time-based indices.', }); - } else if (feature === 'explain_log_rate_spikes') { - description = i18n.translate('xpack.aiops.logRateSpikesTimeSeriesWarning.description', { - defaultMessage: 'Log rate spikes only runs over time-based indices.', + } else if (feature === 'log_rate_analysis') { + description = i18n.translate('xpack.aiops.logRateAnalysisTimeSeriesWarning.description', { + defaultMessage: 'Log rate analysis only runs over time-based indices.', }); } diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_points_table.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_points_table.tsx index b49b3d41e5689..bed4d0ad31ca8 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_points_table.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_points_table.tsx @@ -148,12 +148,9 @@ export const ChangePointsTable: FC = ({ })} > - {i18n.translate( - 'xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueLabel', - { - defaultMessage: 'p-value', - } - )} + {i18n.translate('xpack.aiops.changePointDetection.pValueLabel', { + defaultMessage: 'p-value', + })} diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/charts_grid.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/charts_grid.tsx index 15aca07a1fb3b..303dea7f03f9c 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/charts_grid.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/charts_grid.tsx @@ -131,7 +131,7 @@ export const ChartsGrid: FC = ({ changePoints: changePointsDict { title: ( ), diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/field_filter_apply_button.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/field_filter_apply_button.tsx similarity index 93% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/field_filter_apply_button.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis/field_filter_apply_button.tsx index cbe3c8845e202..0243ce1877952 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/field_filter_apply_button.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/field_filter_apply_button.tsx @@ -30,7 +30,7 @@ export const FieldFilterApplyButton: FC = ({ disabled={disabled} > diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/field_filter_popover.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/field_filter_popover.tsx similarity index 93% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/field_filter_popover.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis/field_filter_popover.tsx index 80333d4b01b5b..46f816c86543b 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/field_filter_popover.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/field_filter_popover.tsx @@ -105,7 +105,7 @@ export const FieldFilterPopover: FC = ({ color="text" > @@ -116,7 +116,7 @@ export const FieldFilterPopover: FC = ({ @@ -168,12 +168,12 @@ export const FieldFilterPopover: FC = ({ > {fieldSearchText.length > 0 ? ( ) : ( )} @@ -189,12 +189,12 @@ export const FieldFilterPopover: FC = ({ > {fieldSearchText.length > 0 ? ( ) : ( )} diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/index.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis/index.ts similarity index 58% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/index.ts rename to x-pack/plugins/aiops/public/components/log_rate_analysis/index.ts index 243066a924f8d..dd759c559e1ac 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/index.ts +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/index.ts @@ -8,23 +8,23 @@ /** * The usage of the components in this folder works like this: * - * - * - * + * + * + * * - * - `ExplainLogRateSpikesAppState`: Manages and passes down url/app state related data, e.g. search parameters. - * - `ExplainLogRateSpikesPageProps`: The overall page layout. Includes state management for data selection + * - `LogRateAnalysisAppState`: Manages and passes down url/app state related data, e.g. search parameters. + * - `LogRateAnalysisPageProps`: The overall page layout. Includes state management for data selection * like date range, data fetching for the document count chart, window parameters for the analysis. - * - `ExplainLogRateSpikesAnalysis`: Hosts the analysis results table including code to fetch its data. + * - `LogRateAnalysisResults`: Hosts the analysis results table including code to fetch its data. * While for example the earliest/latest parameter can still be `undefined` on load in the upper component, * this component expects all necessary parameters/props already to be defined. The reason is the usage of * data fetching hooks which cannot be called conditionally, so the pattern used here is to only load this * whole component conditionally on the outer level. */ -export type { ExplainLogRateSpikesAppStateProps } from './explain_log_rate_spikes_app_state'; -import { ExplainLogRateSpikesAppState } from './explain_log_rate_spikes_app_state'; +export type { LogRateAnalysisAppStateProps } from './log_rate_analysis_app_state'; +import { LogRateAnalysisAppState } from './log_rate_analysis_app_state'; // required for dynamic import using React.lazy() // eslint-disable-next-line import/no-default-export -export default ExplainLogRateSpikesAppState; +export default LogRateAnalysisAppState; diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx similarity index 80% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx index f60386049b86b..7df5d3afce690 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_app_state.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_app_state.tsx @@ -22,14 +22,14 @@ import { AiopsAppContext } from '../../hooks/use_aiops_app_context'; import { DataSourceContext } from '../../hooks/use_data_source'; import { AIOPS_STORAGE_KEYS } from '../../types/storage'; -import { SpikeAnalysisTableRowStateProvider } from '../spike_analysis_table/spike_analysis_table_row_provider'; +import { LogRateAnalysisResultsTableRowStateProvider } from '../log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider'; -import { ExplainLogRateSpikesPage } from './explain_log_rate_spikes_page'; +import { LogRateAnalysisPage } from './log_rate_analysis_page'; import { timeSeriesDataViewWarning } from '../../application/utils/time_series_dataview_check'; const localStorage = new Storage(window.localStorage); -export interface ExplainLogRateSpikesAppStateProps { +export interface LogRateAnalysisAppStateProps { /** The data view to analyze. */ dataView: DataView; /** The saved search to analyze. */ @@ -40,7 +40,7 @@ export interface ExplainLogRateSpikesAppStateProps { stickyHistogram?: boolean; } -export const ExplainLogRateSpikesAppState: FC = ({ +export const LogRateAnalysisAppState: FC = ({ dataView, savedSearch, appDependencies, @@ -48,7 +48,7 @@ export const ExplainLogRateSpikesAppState: FC }) => { if (!dataView) return null; - const warning = timeSeriesDataViewWarning(dataView, 'explain_log_rate_spikes'); + const warning = timeSeriesDataViewWarning(dataView, 'log_rate_analysis'); if (warning !== null) { return <>{warning}; @@ -65,13 +65,13 @@ export const ExplainLogRateSpikesAppState: FC - + - + - + diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/index.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/index.ts similarity index 70% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/index.ts rename to x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/index.ts index 3d530abc985c5..e4dffd40bbf4c 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/index.ts +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/index.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { ExplainLogRateSpikesContentWrapper } from './explain_log_rate_spikes_content_wrapper'; +import { LogRateAnalysisContentWrapper } from './log_rate_analysis_content_wrapper'; // required for dynamic import using React.lazy() // eslint-disable-next-line import/no-default-export -export default ExplainLogRateSpikesContentWrapper; +export default LogRateAnalysisContentWrapper; diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx similarity index 85% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx index f5b10309ef5c2..ca04bac7d4e23 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content.tsx @@ -22,11 +22,11 @@ import { useData } from '../../../hooks/use_data'; import { DocumentCountContent } from '../../document_count_content/document_count_content'; import { - ExplainLogRateSpikesAnalysis, - type ExplainLogRateSpikesAnalysisResults, -} from '../explain_log_rate_spikes_analysis'; -import type { GroupTableItem } from '../../spike_analysis_table/types'; -import { useSpikeAnalysisTableRowContext } from '../../spike_analysis_table/spike_analysis_table_row_provider'; + LogRateAnalysisResults, + type LogRateAnalysisResultsData, +} from '../log_rate_analysis_results'; +import type { GroupTableItem } from '../../log_rate_analysis_results_table/types'; +import { useLogRateAnalysisResultsTableRowContext } from '../../log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider'; const DEFAULT_SEARCH_QUERY = { match_all: {} }; @@ -37,13 +37,13 @@ export function getDocumentCountStatsSplitLabel( if (significantTerm) { return `${significantTerm?.fieldName}:${significantTerm?.fieldValue}`; } else if (group) { - return i18n.translate('xpack.aiops.spikeAnalysisPage.documentCountStatsSplitGroupLabel', { + return i18n.translate('xpack.aiops.logRateAnalysis.page.documentCountStatsSplitGroupLabel', { defaultMessage: 'Selected group', }); } } -export interface ExplainLogRateSpikesContentProps { +export interface LogRateAnalysisContentProps { /** The data view to analyze. */ dataView: DataView; setGlobalState?: (params: Dictionary) => void; @@ -59,10 +59,10 @@ export interface ExplainLogRateSpikesContentProps { /** Optional color override for the highlighted bar color for charts */ barHighlightColorOverride?: string; /** Optional callback that exposes data of the completed analysis */ - onAnalysisCompleted?: (d: ExplainLogRateSpikesAnalysisResults) => void; + onAnalysisCompleted?: (d: LogRateAnalysisResultsData) => void; } -export const ExplainLogRateSpikesContent: FC = ({ +export const LogRateAnalysisContent: FC = ({ dataView, setGlobalState, initialAnalysisStart: incomingInitialAnalysisStart, @@ -90,7 +90,7 @@ export const ExplainLogRateSpikesContent: FC = setPinnedGroup, setSelectedSignificantTerm, setSelectedGroup, - } = useSpikeAnalysisTableRowContext(); + } = useLogRateAnalysisResultsTableRowContext(); const { documentStats, earliest, latest } = useData( dataView, @@ -146,7 +146,7 @@ export const ExplainLogRateSpikesContent: FC = )} {earliest !== undefined && latest !== undefined && windowParameters !== undefined && ( - = title={

@@ -179,8 +179,8 @@ export const ExplainLogRateSpikesContent: FC = body={

} diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content_wrapper.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx similarity index 82% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content_wrapper.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx index ad9eac2725ebb..1c5db1135d9b3 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content_wrapper.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper.tsx @@ -25,13 +25,13 @@ import { AiopsAppContext, type AiopsAppDependencies } from '../../../hooks/use_a import { DataSourceContext } from '../../../hooks/use_data_source'; import { AIOPS_STORAGE_KEYS } from '../../../types/storage'; -import { SpikeAnalysisTableRowStateProvider } from '../../spike_analysis_table/spike_analysis_table_row_provider'; -import { ExplainLogRateSpikesContent } from './explain_log_rate_spikes_content'; -import type { ExplainLogRateSpikesAnalysisResults } from '../explain_log_rate_spikes_analysis'; +import { LogRateAnalysisResultsTableRowStateProvider } from '../../log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider'; +import { LogRateAnalysisContent } from './log_rate_analysis_content'; +import type { LogRateAnalysisResultsData } from '../log_rate_analysis_results'; const localStorage = new Storage(window.localStorage); -export interface ExplainLogRateSpikesContentWrapperProps { +export interface LogRateAnalysisContentWrapperProps { /** The data view to analyze. */ dataView: DataView; /** Option to make main histogram sticky */ @@ -50,10 +50,10 @@ export interface ExplainLogRateSpikesContentWrapperProps { /** Optional color override for the highlighted bar color for charts */ barHighlightColorOverride?: string; /** Optional callback that exposes data of the completed analysis */ - onAnalysisCompleted?: (d: ExplainLogRateSpikesAnalysisResults) => void; + onAnalysisCompleted?: (d: LogRateAnalysisResultsData) => void; } -export const ExplainLogRateSpikesContentWrapper: FC = ({ +export const LogRateAnalysisContentWrapper: FC = ({ dataView, appDependencies, setGlobalState, @@ -67,7 +67,7 @@ export const ExplainLogRateSpikesContentWrapper: FC { if (!dataView) return null; - const warning = timeSeriesDataViewWarning(dataView, 'explain_log_rate_spikes'); + const warning = timeSeriesDataViewWarning(dataView, 'log_rate_analysis'); if (warning !== null) { return <>{warning}; @@ -84,10 +84,10 @@ export const ExplainLogRateSpikesContentWrapper: FC - + - - + diff --git a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx similarity index 91% rename from x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx index d903d4069195f..4f3c48b339493 100644 --- a/x-pack/plugins/aiops/public/components/explain_log_rate_spikes/explain_log_rate_spikes_page.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis/log_rate_analysis_page.tsx @@ -24,20 +24,20 @@ import { } from '../../application/utils/url_state'; import { SearchPanel } from '../search_panel'; -import { useSpikeAnalysisTableRowContext } from '../spike_analysis_table/spike_analysis_table_row_provider'; +import { useLogRateAnalysisResultsTableRowContext } from '../log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider'; import { PageHeader } from '../page_header'; -import { ExplainLogRateSpikesContent } from './explain_log_rate_spikes_content/explain_log_rate_spikes_content'; +import { LogRateAnalysisContent } from './log_rate_analysis_content/log_rate_analysis_content'; interface Props { stickyHistogram?: boolean; } -export const ExplainLogRateSpikesPage: FC = ({ stickyHistogram }) => { +export const LogRateAnalysisPage: FC = ({ stickyHistogram }) => { const { data: dataService } = useAiopsAppContext(); const { dataView, savedSearch } = useDataSource(); const { currentSelectedSignificantTerm, currentSelectedGroup } = - useSpikeAnalysisTableRowContext(); + useLogRateAnalysisResultsTableRowContext(); const [aiopsListState, setAiopsListState] = usePageUrlState( 'AIOPS_INDEX_VIEWER', @@ -132,7 +132,7 @@ export const ExplainLogRateSpikesPage: FC = ({ stickyHistogram }) => { }, [dataService, searchQueryLanguage, searchString]); return ( - + @@ -146,7 +146,7 @@ export const ExplainLogRateSpikesPage: FC = ({ stickyHistogram }) => { setSearchParams={setSearchParams} /> - void; + onAnalysisCompleted?: (d: LogRateAnalysisResultsData) => void; } -export const ExplainLogRateSpikesAnalysis: FC = ({ +export const LogRateAnalysisResults: FC = ({ dataView, earliest, isBrushCleared, @@ -120,7 +119,7 @@ export const ExplainLogRateSpikesAnalysis: FC const { http } = useAiopsAppContext(); const basePath = http.basePath.get() ?? ''; - const { clearAllRowState } = useSpikeAnalysisTableRowContext(); + const { clearAllRowState } = useLogRateAnalysisResultsTableRowContext(); const [currentAnalysisWindowParameters, setCurrentAnalysisWindowParameters] = useState< WindowParameters | undefined @@ -129,7 +128,7 @@ export const ExplainLogRateSpikesAnalysis: FC const [groupSkipFields, setGroupSkipFields] = useState([]); const [uniqueFieldNames, setUniqueFieldNames] = useState([]); const [overrides, setOverrides] = useState< - ApiExplainLogRateSpikes['body']['overrides'] | undefined + AiopsApiLogRateAnalysis['body']['overrides'] | undefined >(undefined); const [shouldStart, setShouldStart] = useState(false); const [toggleIdSelected, setToggleIdSelected] = useState(resultsGroupedOffId); @@ -159,8 +158,8 @@ export const ExplainLogRateSpikesAnalysis: FC data, isRunning, errors: streamErrors, - } = useFetchStream( - `${basePath}/internal/aiops/explain_log_rate_spikes`, + } = useFetchStream( + `${basePath}/internal/aiops/log_rate_analysis`, '1', { start: earliest, @@ -257,7 +256,7 @@ export const ExplainLogRateSpikesAnalysis: FC [currentAnalysisWindowParameters, windowParameters] ); - const showSpikeAnalysisTable = data?.significantTerms.length > 0; + const showLogRateAnalysisResultsTable = data?.significantTerms.length > 0; const groupItemCount = groupTableItems.reduce((p, c) => { return p + c.groupItemsSortedByUniqueness.length; }, 0); @@ -272,17 +271,17 @@ export const ExplainLogRateSpikesAnalysis: FC { id: resultsGroupedOffId, label: groupResultsOffMessage, - 'data-test-subj': 'aiopsExplainLogRateSpikesGroupSwitchOff', + 'data-test-subj': 'aiopsLogRateAnalysisGroupSwitchOff', }, { id: resultsGroupedOnId, label: groupResultsOnMessage, - 'data-test-subj': 'aiopsExplainLogRateSpikesGroupSwitchOn', + 'data-test-subj': 'aiopsLogRateAnalysisGroupSwitchOn', }, ]; return ( -
+

startHandler(true)}> @@ -362,20 +361,20 @@ export const ExplainLogRateSpikesAnalysis: FC ) : null} - {showSpikeAnalysisTable && groupResults && foundGroups && ( + {showLogRateAnalysisResultsTable && groupResults && foundGroups && ( <> {groupResults ? groupResultsHelpMessage : undefined} )} - {!isRunning && !showSpikeAnalysisTable && ( + {!isRunning && !showLogRateAnalysisResultsTable && ( @@ -384,7 +383,7 @@ export const ExplainLogRateSpikesAnalysis: FC body={

@@ -404,8 +403,8 @@ export const ExplainLogRateSpikesAnalysis: FC : undefined } > - {showSpikeAnalysisTable && groupResults ? ( - barHighlightColorOverride={barHighlightColorOverride} /> ) : null} - {showSpikeAnalysisTable && !groupResults ? ( - = ({ +export const LogRateAnalysisResultsTable: FC = ({ significantTerms, dataView, loading, @@ -81,7 +81,7 @@ export const SpikeAnalysisTable: FC = ({ selectedSignificantTerm, setPinnedSignificantTerm, setSelectedSignificantTerm, - } = useSpikeAnalysisTableRowContext(); + } = useLogRateAnalysisResultsTableRowContext(); const [pageIndex, setPageIndex] = useState(0); const [pageSize, setPageSize] = useState(10); @@ -106,9 +106,9 @@ export const SpikeAnalysisTable: FC = ({ const columns: Array> = [ { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnFieldName', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnFieldName', field: 'fieldName', - name: i18n.translate('xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldNameLabel', { + name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.fieldNameLabel', { defaultMessage: 'Field name', }), render: (_, { fieldName, fieldValue }) => ( @@ -128,9 +128,9 @@ export const SpikeAnalysisTable: FC = ({ valign: 'middle', }, { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnFieldValue', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnFieldValue', field: 'fieldValue', - name: i18n.translate('xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldValueLabel', { + name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.fieldValueLabel', { defaultMessage: 'Field value', }), render: (_, { fieldValue }) => String(fieldValue), @@ -139,23 +139,20 @@ export const SpikeAnalysisTable: FC = ({ valign: 'middle', }, { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnLogRate', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnLogRate', width: NARROW_COLUMN_WIDTH, field: 'pValue', name: ( <> @@ -175,33 +172,30 @@ export const SpikeAnalysisTable: FC = ({ valign: 'middle', }, { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnDocCount', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnDocCount', width: NARROW_COLUMN_WIDTH, field: 'doc_count', - name: i18n.translate('xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.docCountLabel', { + name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.docCountLabel', { defaultMessage: 'Doc count', }), sortable: true, valign: 'middle', }, { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnPValue', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnPValue', width: NARROW_COLUMN_WIDTH, field: 'pValue', name: ( <> @@ -213,14 +207,14 @@ export const SpikeAnalysisTable: FC = ({ valign: 'middle', }, { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnImpact', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnImpact', width: NARROW_COLUMN_WIDTH, field: 'pValue', name: ( = ({ > <> @@ -244,8 +238,8 @@ export const SpikeAnalysisTable: FC = ({ valign: 'middle', }, { - 'data-test-subj': 'aiOpsSpikeAnalysisTableColumnAction', - name: i18n.translate('xpack.aiops.spikeAnalysisTable.actionsColumnName', { + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnAction', + name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.actionsColumnName', { defaultMessage: 'Actions', }), actions: [ @@ -260,7 +254,7 @@ export const SpikeAnalysisTable: FC = ({ if (isExpandedRow === true) { columns.unshift({ - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnUnique', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnUnique', width: UNIQUE_COLUMN_WIDTH, field: 'unique', name: '', @@ -269,7 +263,7 @@ export const SpikeAnalysisTable: FC = ({ return ( = ({ return ( = ({ sorting={sorting as EuiTableSortingType} rowProps={(significantTerm) => { return { - 'data-test-subj': `aiopsSpikeAnalysisTableRow row-${significantTerm.fieldName}-${significantTerm.fieldValue}`, + 'data-test-subj': `aiopsLogRateAnalysisResultsTableRow row-${significantTerm.fieldName}-${significantTerm.fieldValue}`, onClick: () => { if ( significantTerm.fieldName === pinnedSignificantTerm?.fieldName && diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx similarity index 82% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx index aeb758c776281..0ab75f9902845 100644 --- a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_groups.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx @@ -35,8 +35,8 @@ import type { DataView } from '@kbn/data-views-plugin/public'; import { MiniHistogram } from '../mini_histogram'; import { getFailedTransactionsCorrelationImpactLabel } from './get_failed_transactions_correlation_impact_label'; -import { SpikeAnalysisTable } from './spike_analysis_table'; -import { useSpikeAnalysisTableRowContext } from './spike_analysis_table_row_provider'; +import { LogRateAnalysisResultsTable } from './log_rate_analysis_results_table'; +import { useLogRateAnalysisResultsTableRowContext } from './log_rate_analysis_results_table_row_provider'; import type { GroupTableItem } from './types'; import { useCopyToClipboardAction } from './use_copy_to_clipboard_action'; import { useViewInDiscoverAction } from './use_view_in_discover_action'; @@ -52,7 +52,7 @@ const PAGINATION_SIZE_OPTIONS = [5, 10, 20, 50]; const DEFAULT_SORT_FIELD = 'pValue'; const DEFAULT_SORT_DIRECTION = 'asc'; -interface SpikeAnalysisTableProps { +interface LogRateAnalysisResultsTableProps { significantTerms: SignificantTerm[]; groupTableItems: GroupTableItem[]; loading: boolean; @@ -65,7 +65,7 @@ interface SpikeAnalysisTableProps { barHighlightColorOverride?: string; } -export const SpikeAnalysisGroupsTable: FC = ({ +export const LogRateAnalysisResultsGroupsTable: FC = ({ significantTerms, groupTableItems, loading, @@ -88,7 +88,7 @@ export const SpikeAnalysisGroupsTable: FC = ({ const primaryBackgroundColor = useEuiBackgroundColor('primary'); const { pinnedGroup, selectedGroup, setPinnedGroup, setSelectedGroup } = - useSpikeAnalysisTableRowContext(); + useLogRateAnalysisResultsTableRowContext(); const dataViewId = dataView.id; const toggleDetails = (item: GroupTableItem) => { @@ -97,7 +97,7 @@ export const SpikeAnalysisGroupsTable: FC = ({ delete itemIdToExpandedRowMapValues[item.id]; } else { itemIdToExpandedRowMapValues[item.id] = ( - ( (p, groupItem) => { const st = significantTerms.find( @@ -144,22 +144,16 @@ export const SpikeAnalysisGroupsTable: FC = ({ ), render: (item: GroupTableItem) => ( toggleDetails(item)} aria-label={ itemIdToExpandedRowMap[item.id] - ? i18n.translate( - 'xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.collapseAriaLabel', - { - defaultMessage: 'Collapse', - } - ) - : i18n.translate( - 'xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.expandAriaLabel', - { - defaultMessage: 'Expand', - } - ) + ? i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.collapseAriaLabel', { + defaultMessage: 'Collapse', + }) + : i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.expandAriaLabel', { + defaultMessage: 'Expand', + }) } iconType={itemIdToExpandedRowMap[item.id] ? 'arrowDown' : 'arrowRight'} /> @@ -167,13 +161,13 @@ export const SpikeAnalysisGroupsTable: FC = ({ valign: 'top', }, { - 'data-test-subj': 'aiopsSpikeAnalysisGroupsTableColumnGroup', + 'data-test-subj': 'aiopsLogRateAnalysisResultsGroupsTableColumnGroup', field: 'group', name: ( = ({ > <> @@ -198,7 +192,10 @@ export const SpikeAnalysisGroupsTable: FC = ({ if (valuesBadges.length >= MAX_GROUP_BADGES) break; valuesBadges.push( - + {(duplicate ?? 0) <= 1 ? '* ' : ''} {`${fieldName}: `} @@ -214,12 +211,12 @@ export const SpikeAnalysisGroupsTable: FC = ({ valuesBadges.push( = ({ <> {' '} = ({ valign: 'top', }, { - 'data-test-subj': 'aiopsSpikeAnalysisGroupsTableColumnLogRate', + 'data-test-subj': 'aiopsLogRateAnalysisResultsGroupsTableColumnLogRate', width: NARROW_COLUMN_WIDTH, field: 'pValue', name: ( = ({ > <> @@ -276,12 +273,9 @@ export const SpikeAnalysisGroupsTable: FC = ({ @@ -290,24 +284,24 @@ export const SpikeAnalysisGroupsTable: FC = ({ valign: 'top', }, { - 'data-test-subj': 'aiopsSpikeAnalysisGroupsTableColumnDocCount', + 'data-test-subj': 'aiopsLogRateAnalysisResultsGroupsTableColumnDocCount', width: NARROW_COLUMN_WIDTH, field: 'docCount', - name: i18n.translate('xpack.aiops.correlations.spikeAnalysisTableGroups.docCountLabel', { + name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.docCountLabel', { defaultMessage: 'Doc count', }), sortable: true, valign: 'top', }, { - 'data-test-subj': 'aiopsSpikeAnalysisGroupsTableColumnPValue', + 'data-test-subj': 'aiopsLogRateAnalysisResultsGroupsTableColumnPValue', width: NARROW_COLUMN_WIDTH, field: 'pValue', name: ( = ({ > <> @@ -328,14 +322,14 @@ export const SpikeAnalysisGroupsTable: FC = ({ valign: 'top', }, { - 'data-test-subj': 'aiopsSpikeAnalysisTableColumnImpact', + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnImpact', width: NARROW_COLUMN_WIDTH, field: 'pValue', name: ( = ({ > <> @@ -359,8 +353,8 @@ export const SpikeAnalysisGroupsTable: FC = ({ valign: 'top', }, { - 'data-test-subj': 'aiOpsSpikeAnalysisTableColumnAction', - name: i18n.translate('xpack.aiops.spikeAnalysisGroupsTable.actionsColumnName', { + 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnAction', + name: i18n.translate('xpack.aiops.logRateAnalysis.resultsTable.actionsColumnName', { defaultMessage: 'Actions', }), actions: [ @@ -449,7 +443,7 @@ export const SpikeAnalysisGroupsTable: FC = ({ return ( = ({ sorting={sorting as EuiTableSortingType} rowProps={(group) => { return { - 'data-test-subj': `aiopsSpikeAnalysisGroupsTableRow row-${group.id}`, + 'data-test-subj': `aiopsLogRateAnalysisResultsGroupsTableRow row-${group.id}`, onClick: () => { if (group.id === pinnedGroup?.id) { setPinnedGroup(null); diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_row_provider.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider.tsx similarity index 79% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_row_provider.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider.tsx index 88f188fe8fe7f..f4d6c77c9756f 100644 --- a/x-pack/plugins/aiops/public/components/spike_analysis_table/spike_analysis_table_row_provider.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_row_provider.tsx @@ -22,7 +22,7 @@ import type { GroupTableItem } from './types'; type SignificantTermOrNull = SignificantTerm | null; type GroupOrNull = GroupTableItem | null; -interface SpikeAnalysisTableRow { +interface LogRateAnalysisResultsTableRow { pinnedSignificantTerm: SignificantTermOrNull; setPinnedSignificantTerm: Dispatch>; pinnedGroup: GroupOrNull; @@ -36,11 +36,11 @@ interface SpikeAnalysisTableRow { clearAllRowState: () => void; } -export const spikeAnalysisTableRowContext = createContext( - undefined -); +export const logRateAnalysisResultsTableRowContext = createContext< + LogRateAnalysisResultsTableRow | undefined +>(undefined); -export const SpikeAnalysisTableRowStateProvider: FC = ({ children }) => { +export const LogRateAnalysisResultsTableRowStateProvider: FC = ({ children }) => { // State that will be shared with all components const [pinnedSignificantTerm, setPinnedSignificantTerm] = useState(null); const [pinnedGroup, setPinnedGroup] = useState(null); @@ -66,7 +66,7 @@ export const SpikeAnalysisTableRowStateProvider: FC = ({ children }) => { } }, [selectedGroup, pinnedGroup]); - const contextValue: SpikeAnalysisTableRow = useMemo( + const contextValue: LogRateAnalysisResultsTableRow = useMemo( () => ({ pinnedSignificantTerm, setPinnedSignificantTerm, @@ -101,19 +101,19 @@ export const SpikeAnalysisTableRowStateProvider: FC = ({ children }) => { return ( // Provider managing the state - + {children} - + ); }; -export const useSpikeAnalysisTableRowContext = () => { - const spikeAnalysisTableRow = useContext(spikeAnalysisTableRowContext); +export const useLogRateAnalysisResultsTableRowContext = () => { + const logRateAnalysisResultsTableRow = useContext(logRateAnalysisResultsTableRowContext); // If `undefined`, throw an error. - if (spikeAnalysisTableRow === undefined) { - throw new Error('useSpikeAnalysisTableRowContext was used outside of its Provider'); + if (logRateAnalysisResultsTableRow === undefined) { + throw new Error('useLogRateAnalysisResultsTableRowContext was used outside of its Provider'); } - return spikeAnalysisTableRow; + return logRateAnalysisResultsTableRow; }; diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/table_action_button.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/table_action_button.tsx similarity index 100% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/table_action_button.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/table_action_button.tsx diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/types.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/types.ts similarity index 100% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/types.ts rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/types.ts diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_copy_to_clipboard_action.test.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_copy_to_clipboard_action.test.tsx similarity index 100% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/use_copy_to_clipboard_action.test.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_copy_to_clipboard_action.test.tsx diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_copy_to_clipboard_action.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_copy_to_clipboard_action.tsx similarity index 86% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/use_copy_to_clipboard_action.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_copy_to_clipboard_action.tsx index 1b906eb56e988..87b5239843940 100644 --- a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_copy_to_clipboard_action.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_copy_to_clipboard_action.tsx @@ -17,21 +17,21 @@ import { getTableItemAsKQL } from './get_table_item_as_kql'; import type { GroupTableItem, TableItemAction } from './types'; const copyToClipboardButtonLabel = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardButtonLabel', + 'xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardButtonLabel', { defaultMessage: 'Copy to clipboard', } ); const copyToClipboardSignificantTermMessage = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardSignificantTermMessage', + 'xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardSignificantTermMessage', { defaultMessage: 'Copy field/value pair as KQL syntax to clipboard', } ); const copyToClipboardGroupMessage = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardGroupMessage', + 'xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardGroupMessage', { defaultMessage: 'Copy group items as KQL syntax to clipboard', } diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_view_in_discover_action.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_discover_action.tsx similarity index 90% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/use_view_in_discover_action.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_discover_action.tsx index bd7741bb452bf..d087981915517 100644 --- a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_view_in_discover_action.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_discover_action.tsx @@ -18,7 +18,7 @@ import { getTableItemAsKQL } from './get_table_item_as_kql'; import type { GroupTableItem, TableItemAction } from './types'; const viewInDiscoverMessage = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.linksMenu.viewInDiscover', + 'xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInDiscover', { defaultMessage: 'View in Discover', } @@ -35,7 +35,7 @@ export const useViewInDiscoverAction = (dataViewId?: string): TableItemAction => const discoverUrlError = useMemo(() => { if (!application.capabilities.discover?.show) { const discoverNotEnabled = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.discoverNotEnabledErrorMessage', + 'xpack.aiops.logRateAnalysis.resultsTable.discoverNotEnabledErrorMessage', { defaultMessage: 'Discover is not enabled', } @@ -45,7 +45,7 @@ export const useViewInDiscoverAction = (dataViewId?: string): TableItemAction => } if (!discoverLocator) { const discoverLocatorMissing = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.discoverLocatorMissingErrorMessage', + 'xpack.aiops.logRateAnalysis.resultsTable.discoverLocatorMissingErrorMessage', { defaultMessage: 'No locator for Discover detected', } @@ -55,7 +55,7 @@ export const useViewInDiscoverAction = (dataViewId?: string): TableItemAction => } if (!dataViewId) { const autoGeneratedDiscoverLinkError = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.autoGeneratedDiscoverLinkErrorMessage', + 'xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedDiscoverLinkErrorMessage', { defaultMessage: 'Unable to link to Discover; no data view exists for this index', } diff --git a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_view_in_log_pattern_analysis_action.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx similarity index 89% rename from x-pack/plugins/aiops/public/components/spike_analysis_table/use_view_in_log_pattern_analysis_action.tsx rename to x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx index 9388cf147c8ff..f96139c75263c 100644 --- a/x-pack/plugins/aiops/public/components/spike_analysis_table/use_view_in_log_pattern_analysis_action.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/use_view_in_log_pattern_analysis_action.tsx @@ -20,7 +20,7 @@ import { getTableItemAsKQL } from './get_table_item_as_kql'; import type { GroupTableItem, TableItemAction } from './types'; const viewInLogPatternAnalysisMessage = i18n.translate( - 'xpack.aiops.spikeAnalysisTable.linksMenu.viewInLogPatternAnalysis', + 'xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInLogPatternAnalysis', { defaultMessage: 'View in Log Pattern Analysis', } @@ -63,13 +63,16 @@ export const useViewInLogPatternAnalysisAction = (dataViewId?: string): TableIte const logPatternAnalysisUrlError = useMemo(() => { if (!mlLocator) { - return i18n.translate('xpack.aiops.spikeAnalysisTable.mlLocatorMissingErrorMessage', { - defaultMessage: 'No locator for Log Pattern Analysis detected', - }); + return i18n.translate( + 'xpack.aiops.logRateAnalysis.resultsTable.mlLocatorMissingErrorMessage', + { + defaultMessage: 'No locator for Log Pattern Analysis detected', + } + ); } if (!dataViewId) { return i18n.translate( - 'xpack.aiops.spikeAnalysisTable.autoGeneratedLogPatternAnalysisLinkErrorMessage', + 'xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedLogPatternAnalysisLinkErrorMessage', { defaultMessage: 'Unable to link to Log Pattern Analysis; no data view exists for this index', diff --git a/x-pack/plugins/aiops/public/get_document_stats.ts b/x-pack/plugins/aiops/public/get_document_stats.ts index f2523ea2b942e..9c5a53c8870e7 100644 --- a/x-pack/plugins/aiops/public/get_document_stats.ts +++ b/x-pack/plugins/aiops/public/get_document_stats.ts @@ -15,7 +15,7 @@ import type { Query } from '@kbn/es-query'; import type { RandomSamplerWrapper } from '@kbn/ml-random-sampler-utils'; import { buildExtendedBaseFilterCriteria } from './application/utils/build_extended_base_filter_criteria'; -import { GroupTableItem } from './components/spike_analysis_table/types'; +import { GroupTableItem } from './components/log_rate_analysis_results_table/types'; export interface DocumentCountStats { interval?: number; diff --git a/x-pack/plugins/aiops/public/hooks/use_data.ts b/x-pack/plugins/aiops/public/hooks/use_data.ts index f216023930b0c..d44eb1661db34 100644 --- a/x-pack/plugins/aiops/public/hooks/use_data.ts +++ b/x-pack/plugins/aiops/public/hooks/use_data.ts @@ -20,7 +20,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { PLUGIN_ID } from '../../common'; import type { DocumentStatsSearchStrategyParams } from '../get_document_stats'; -import type { GroupTableItem } from '../components/spike_analysis_table/types'; +import type { GroupTableItem } from '../components/log_rate_analysis_results_table/types'; import { useTimeBuckets } from './use_time_buckets'; import { useAiopsAppContext } from './use_aiops_app_context'; diff --git a/x-pack/plugins/aiops/public/index.ts b/x-pack/plugins/aiops/public/index.ts index 6c87f720d5aa3..4c9cfb19c9daa 100755 --- a/x-pack/plugins/aiops/public/index.ts +++ b/x-pack/plugins/aiops/public/index.ts @@ -14,14 +14,14 @@ export function plugin() { } export type { AiopsAppDependencies } from './hooks/use_aiops_app_context'; -export type { ExplainLogRateSpikesAppStateProps } from './components/explain_log_rate_spikes'; +export type { LogRateAnalysisAppStateProps } from './components/log_rate_analysis'; export type { LogCategorizationAppStateProps } from './components/log_categorization'; export type { ChangePointDetectionAppStateProps } from './components/change_point_detection'; -export type { ExplainLogRateSpikesAnalysisResults } from './components/explain_log_rate_spikes/explain_log_rate_spikes_analysis'; +export type { LogRateAnalysisResultsData } from './components/log_rate_analysis/log_rate_analysis_results'; export { - ExplainLogRateSpikes, - ExplainLogRateSpikesContent, + LogRateAnalysis, + LogRateAnalysisContent, LogCategorization, ChangePointDetection, } from './shared_lazy_components'; diff --git a/x-pack/plugins/aiops/public/shared_lazy_components.tsx b/x-pack/plugins/aiops/public/shared_lazy_components.tsx index 6e332b9e05f26..89ae652704ad5 100644 --- a/x-pack/plugins/aiops/public/shared_lazy_components.tsx +++ b/x-pack/plugins/aiops/public/shared_lazy_components.tsx @@ -8,17 +8,15 @@ import React, { FC, Suspense } from 'react'; import { EuiErrorBoundary, EuiSkeletonText } from '@elastic/eui'; -import type { ExplainLogRateSpikesAppStateProps } from './components/explain_log_rate_spikes'; -import type { ExplainLogRateSpikesContentWrapperProps } from './components/explain_log_rate_spikes/explain_log_rate_spikes_content/explain_log_rate_spikes_content_wrapper'; +import type { LogRateAnalysisAppStateProps } from './components/log_rate_analysis'; +import type { LogRateAnalysisContentWrapperProps } from './components/log_rate_analysis/log_rate_analysis_content/log_rate_analysis_content_wrapper'; import type { LogCategorizationAppStateProps } from './components/log_categorization'; import type { ChangePointDetectionAppStateProps } from './components/change_point_detection'; -const ExplainLogRateSpikesAppStateLazy = React.lazy( - () => import('./components/explain_log_rate_spikes') -); +const LogRateAnalysisAppStateLazy = React.lazy(() => import('./components/log_rate_analysis')); -const ExplainLogRateSpikesContentWrapperLazy = React.lazy( - () => import('./components/explain_log_rate_spikes/explain_log_rate_spikes_content') +const LogRateAnalysisContentWrapperLazy = React.lazy( + () => import('./components/log_rate_analysis/log_rate_analysis_content') ); const LazyWrapper: FC = ({ children }) => ( @@ -28,22 +26,22 @@ const LazyWrapper: FC = ({ children }) => ( ); /** - * Lazy-wrapped ExplainLogRateSpikesAppState React component - * @param {ExplainLogRateSpikesAppStateProps} props - properties specifying the data on which to run the analysis. + * Lazy-wrapped LogRateAnalysisAppState React component + * @param {LogRateAnalysisAppStateProps} props - properties specifying the data on which to run the analysis. */ -export const ExplainLogRateSpikes: FC = (props) => ( +export const LogRateAnalysis: FC = (props) => ( - + ); /** - * Lazy-wrapped ExplainLogRateSpikesContentWrapperReact component - * @param {ExplainLogRateSpikesContentWrapperProps} props - properties specifying the data on which to run the analysis. + * Lazy-wrapped LogRateAnalysisContentWrapperReact component + * @param {LogRateAnalysisContentWrapperProps} props - properties specifying the data on which to run the analysis. */ -export const ExplainLogRateSpikesContent: FC = (props) => ( +export const LogRateAnalysisContent: FC = (props) => ( - + ); diff --git a/x-pack/plugins/aiops/server/plugin.ts b/x-pack/plugins/aiops/server/plugin.ts index 0602469c2a2a9..d808c0dec1b0e 100755 --- a/x-pack/plugins/aiops/server/plugin.ts +++ b/x-pack/plugins/aiops/server/plugin.ts @@ -10,8 +10,6 @@ import { Subscription } from 'rxjs'; import { PluginInitializerContext, CoreSetup, CoreStart, Plugin, Logger } from '@kbn/core/server'; import type { DataRequestHandlerContext } from '@kbn/data-plugin/server'; -import { AIOPS_ENABLED } from '../common'; - import { isActiveLicense } from './lib/license'; import { AiopsLicense, @@ -20,7 +18,7 @@ import { AiopsPluginSetupDeps, AiopsPluginStartDeps, } from './types'; -import { defineExplainLogRateSpikesRoute } from './routes'; +import { defineLogRateAnalysisRoute } from './routes'; export class AiopsPlugin implements Plugin @@ -49,11 +47,9 @@ export class AiopsPlugin const router = core.http.createRouter(); // Register server side APIs - if (AIOPS_ENABLED) { - core.getStartServices().then(([coreStart, depsStart]) => { - defineExplainLogRateSpikesRoute(router, aiopsLicense, this.logger, coreStart); - }); - } + core.getStartServices().then(([coreStart, depsStart]) => { + defineLogRateAnalysisRoute(router, aiopsLicense, this.logger, coreStart); + }); return {}; } diff --git a/x-pack/plugins/aiops/server/routes/index.ts b/x-pack/plugins/aiops/server/routes/index.ts index d8e55746f70e0..ff9e54f1fcc2d 100755 --- a/x-pack/plugins/aiops/server/routes/index.ts +++ b/x-pack/plugins/aiops/server/routes/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export { defineExplainLogRateSpikesRoute } from './explain_log_rate_spikes'; +export { defineLogRateAnalysisRoute } from './log_rate_analysis'; diff --git a/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts b/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts similarity index 95% rename from x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts rename to x-pack/plugins/aiops/server/routes/log_rate_analysis.ts index 03732369b0bb9..35fe871e3de5a 100644 --- a/x-pack/plugins/aiops/server/routes/explain_log_rate_spikes.ts +++ b/x-pack/plugins/aiops/server/routes/log_rate_analysis.ts @@ -30,16 +30,16 @@ import { addSignificantTermsGroupAction, addSignificantTermsGroupHistogramAction, addSignificantTermsHistogramAction, - aiopsExplainLogRateSpikesSchema, + aiopsLogRateAnalysisSchema, addErrorAction, pingAction, resetAllAction, resetErrorsAction, resetGroupsAction, updateLoadingStateAction, - AiopsExplainLogRateSpikesApiAction, -} from '../../common/api/explain_log_rate_spikes'; -import { API_ENDPOINT } from '../../common/api'; + AiopsLogRateAnalysisApiAction, +} from '../../common/api/log_rate_analysis'; +import { AIOPS_API_ENDPOINT } from '../../common/api'; import { PLUGIN_ID } from '../../common'; @@ -63,7 +63,7 @@ const PROGRESS_STEP_GROUPING = 0.1; const PROGRESS_STEP_HISTOGRAMS = 0.1; const PROGRESS_STEP_HISTOGRAMS_GROUPS = 0.1; -export const defineExplainLogRateSpikesRoute = ( +export const defineLogRateAnalysisRoute = ( router: IRouter, license: AiopsLicense, logger: Logger, @@ -71,7 +71,8 @@ export const defineExplainLogRateSpikesRoute = ( ) => { router.versioned .post({ - path: API_ENDPOINT.EXPLAIN_LOG_RATE_SPIKES, + path: AIOPS_API_ENDPOINT.LOG_RATE_ANALYSIS, + access: 'internal', }) .addVersion( @@ -79,7 +80,7 @@ export const defineExplainLogRateSpikesRoute = ( version: '1', validate: { request: { - body: aiopsExplainLogRateSpikesSchema, + body: aiopsLogRateAnalysisSchema, }, }, }, @@ -95,7 +96,7 @@ export const defineExplainLogRateSpikesRoute = ( let logMessageCounter = 1; function logDebugMessage(msg: string) { - logger.debug(`Explain Log Rate Spikes #${logMessageCounter}: ${msg}`); + logger.debug(`Log Rate Analysis #${logMessageCounter}: ${msg}`); logMessageCounter++; } @@ -125,7 +126,7 @@ export const defineExplainLogRateSpikesRoute = ( end: streamEnd, push, responseWithHeaders, - } = streamFactory( + } = streamFactory( request.headers, logger, request.body.compressResponse, @@ -158,7 +159,7 @@ export const defineExplainLogRateSpikesRoute = ( ccsWarning: false, loaded: 1, loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.doneMessage', + 'xpack.aiops.logRateAnalysis.loadingState.doneMessage', { defaultMessage: 'Done.', } @@ -213,7 +214,7 @@ export const defineExplainLogRateSpikesRoute = ( ccsWarning: false, loaded, loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.loadingIndexInformation', + 'xpack.aiops.logRateAnalysis.loadingState.loadingIndexInformation', { defaultMessage: 'Loading index information.', } @@ -247,7 +248,7 @@ export const defineExplainLogRateSpikesRoute = ( ccsWarning: false, loaded, loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldCandidates', + 'xpack.aiops.logRateAnalysis.loadingState.identifiedFieldCandidates', { defaultMessage: 'Identified {fieldCandidatesCount, plural, one {# field candidate} other {# field candidates}}.', @@ -339,7 +340,7 @@ export const defineExplainLogRateSpikesRoute = ( ccsWarning: false, loaded, loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldValuePairs', + 'xpack.aiops.logRateAnalysis.loadingState.identifiedFieldValuePairs', { defaultMessage: 'Identified {fieldValuePairsCount, plural, one {# significant field/value pair} other {# significant field/value pairs}}.', @@ -415,7 +416,7 @@ export const defineExplainLogRateSpikesRoute = ( ccsWarning: false, loaded, loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.loadingHistogramData', + 'xpack.aiops.logRateAnalysis.loadingState.loadingHistogramData', { defaultMessage: 'Loading histogram data.', } @@ -438,7 +439,7 @@ export const defineExplainLogRateSpikesRoute = ( ccsWarning: false, loaded, loadingState: i18n.translate( - 'xpack.aiops.explainLogRateSpikes.loadingState.groupingResults', + 'xpack.aiops.logRateAnalysis.loadingState.groupingResults', { defaultMessage: 'Transforming significant field/value pairs into groups.', } @@ -682,10 +683,8 @@ export const defineExplainLogRateSpikesRoute = ( endWithUpdatedLoadingState(); } catch (e) { if (!isRequestAbortedError(e)) { - logger.error( - `Explain log rate spikes analysis failed to finish, got: \n${e.toString()}` - ); - pushError(`Explain log rate spikes analysis failed to finish.`); + logger.error(`Log Rate Analysis failed to finish, got: \n${e.toString()}`); + pushError(`Log Rate Analysis failed to finish.`); } end(); } diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.test.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.test.ts index 5d272c18226b0..3cbdf3d25420b 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.test.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.test.ts @@ -9,11 +9,11 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { ElasticsearchClient } from '@kbn/core/server'; -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; import { fetchIndexInfo, getRandomDocsRequest } from './fetch_index_info'; -const params: AiopsExplainLogRateSpikesSchema = { +const params: AiopsLogRateAnalysisSchema = { index: 'the-index', timeFieldName: 'the-time-field-name', start: 1577836800000, diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts index fae9c7fc062b8..c44d2f99eb95f 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_index_info.ts @@ -10,7 +10,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ES_FIELD_TYPES } from '@kbn/field-types'; import type { ElasticsearchClient } from '@kbn/core/server'; -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; import { getQueryWithParams } from './get_query_with_params'; import { getRequestBase } from './get_request_base'; @@ -27,7 +27,7 @@ const SUPPORTED_ES_FIELD_TYPES = [ ]; export const getRandomDocsRequest = ( - params: AiopsExplainLogRateSpikesSchema + params: AiopsLogRateAnalysisSchema ): estypes.SearchRequest => ({ ...getRequestBase(params), body: { @@ -48,7 +48,7 @@ export const getRandomDocsRequest = ( export const fetchIndexInfo = async ( esClient: ElasticsearchClient, - params: AiopsExplainLogRateSpikesSchema, + params: AiopsLogRateAnalysisSchema, abortSignal?: AbortSignal ): Promise<{ fieldCandidates: string[]; totalDocCount: number }> => { const { index } = params; diff --git a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts index 58da371d7b5a8..2fc91e9b49104 100644 --- a/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts +++ b/x-pack/plugins/aiops/server/routes/queries/fetch_significant_term_p_values.ts @@ -16,7 +16,7 @@ import { } from '@kbn/ml-random-sampler-utils'; import { SPIKE_ANALYSIS_THRESHOLD, RANDOM_SAMPLER_SEED } from '../../../common/constants'; -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; import { isRequestAbortedError } from '../../lib/is_request_aborted_error'; @@ -27,7 +27,7 @@ import { getRequestBase } from './get_request_base'; // `x-pack/plugins/apm/server/routes/correlations/queries/fetch_failed_events_correlation_p_values.ts` export const getSignificantTermRequest = ( - params: AiopsExplainLogRateSpikesSchema, + params: AiopsLogRateAnalysisSchema, fieldName: string, { wrap }: RandomSamplerWrapper ): estypes.SearchRequest => { @@ -103,7 +103,7 @@ interface Aggs extends estypes.AggregationsSignificantLongTermsAggregate { export const fetchSignificantTermPValues = async ( esClient: ElasticsearchClient, - params: AiopsExplainLogRateSpikesSchema, + params: AiopsLogRateAnalysisSchema, fieldNames: string[], logger: Logger, // The default value of 1 means no sampling will be used diff --git a/x-pack/plugins/aiops/server/routes/queries/get_filters.ts b/x-pack/plugins/aiops/server/routes/queries/get_filters.ts index 4d46d736517b7..a9d61755ec43b 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_filters.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_filters.ts @@ -9,7 +9,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { ESFilter } from '@kbn/es-types'; -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; export function rangeQuery( start?: number, @@ -29,11 +29,7 @@ export function rangeQuery( ]; } -export function getFilters({ - start, - end, - timeFieldName, -}: AiopsExplainLogRateSpikesSchema): ESFilter[] { +export function getFilters({ start, end, timeFieldName }: AiopsLogRateAnalysisSchema): ESFilter[] { const filters: ESFilter[] = []; if (timeFieldName !== '') { diff --git a/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts b/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts index f8e7138699fc4..dceab338947f7 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_histogram_query.ts @@ -7,12 +7,12 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; import { getQueryWithParams } from './get_query_with_params'; export function getHistogramQuery( - params: AiopsExplainLogRateSpikesSchema, + params: AiopsLogRateAnalysisSchema, filter: estypes.QueryDslQueryContainer[] = [] ) { const histogramQuery = getQueryWithParams({ diff --git a/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts b/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts index 706d2b6aa5c75..d93f34892f7d7 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_query_with_params.ts @@ -9,7 +9,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { FieldValuePair } from '@kbn/ml-agg-utils'; -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; import { getFilters } from './get_filters'; @@ -18,7 +18,7 @@ export const getTermsQuery = ({ fieldName, fieldValue }: FieldValuePair) => { }; interface QueryParams { - params: AiopsExplainLogRateSpikesSchema; + params: AiopsLogRateAnalysisSchema; termFilters?: FieldValuePair[]; } export const getQueryWithParams = ({ params, termFilters }: QueryParams) => { diff --git a/x-pack/plugins/aiops/server/routes/queries/get_request_base.ts b/x-pack/plugins/aiops/server/routes/queries/get_request_base.ts index e2865e49e0740..a6449249573f6 100644 --- a/x-pack/plugins/aiops/server/routes/queries/get_request_base.ts +++ b/x-pack/plugins/aiops/server/routes/queries/get_request_base.ts @@ -5,9 +5,9 @@ * 2.0. */ -import type { AiopsExplainLogRateSpikesSchema } from '../../../common/api/explain_log_rate_spikes'; +import type { AiopsLogRateAnalysisSchema } from '../../../common/api/log_rate_analysis'; -export const getRequestBase = ({ index, includeFrozen }: AiopsExplainLogRateSpikesSchema) => ({ +export const getRequestBase = ({ index, includeFrozen }: AiopsLogRateAnalysisSchema) => ({ index, ...(includeFrozen ? { ignore_throttled: false } : {}), ignore_unavailable: true, diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/explain_log_rate_spike.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx similarity index 91% rename from x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/explain_log_rate_spike.tsx rename to x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx index c0837f0749b67..fda5c9934b904 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/explain_log_rate_spike.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/components/log_rate_analysis.tsx @@ -13,10 +13,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiTitle } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { DataView } from '@kbn/data-views-plugin/common'; -import { - ExplainLogRateSpikesContent, - type ExplainLogRateSpikesAnalysisResults, -} from '@kbn/aiops-plugin/public'; +import { LogRateAnalysisContent, type LogRateAnalysisResultsData } from '@kbn/aiops-plugin/public'; import { Rule } from '@kbn/alerting-plugin/common'; import { CoPilotPrompt, TopAlert, useCoPilot } from '@kbn/observability-plugin/public'; import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; @@ -35,7 +32,7 @@ import { import { decodeOrThrow } from '../../../../../../common/runtime_types'; import { getESQueryForLogSpike } from '../log_rate_spike_query'; -export interface AlertDetailsExplainLogRateSpikesSectionProps { +export interface AlertDetailsLogRateAnalysisSectionProps { rule: Rule; alert: TopAlert>; } @@ -47,10 +44,7 @@ interface SignificantFieldValue { pValue: number | null; } -export const ExplainLogRateSpikes: FC = ({ - rule, - alert, -}) => { +export const LogRateAnalysis: FC = ({ rule, alert }) => { const { services } = useKibanaContextForPlugin(); const { dataViews, logsShared } = services; const [dataView, setDataView] = useState(); @@ -161,9 +155,7 @@ export const ExplainLogRateSpikes: FC { + const onAnalysisCompleted = (analysisResults: LogRateAnalysisResultsData | undefined) => { const significantFieldValues = orderBy( analysisResults?.significantTerms?.map((item) => ({ field: item.fieldName, @@ -183,20 +175,20 @@ export const ExplainLogRateSpikes: FC +

- { - return hasLicenseForExplainLogSpike ? : null; + const getLogRateAnalysisSection = () => { + return hasLicenseForExplainLogSpike ? : null; }; return ( @@ -246,7 +246,7 @@ const AlertDetailsAppSection = ({ {getLogRatioChart()} {getLogCountChart()} - {getExplainLogRateSpikesSection()} + {getLogRateAnalysisSection()} {getLogsHistoryChart()} diff --git a/x-pack/plugins/ml/common/constants/locator.ts b/x-pack/plugins/ml/common/constants/locator.ts index 9acdc7beb5d5d..99d3affa9dcb3 100644 --- a/x-pack/plugins/ml/common/constants/locator.ts +++ b/x-pack/plugins/ml/common/constants/locator.ts @@ -66,6 +66,8 @@ export const ML_PAGES = { AIOPS: 'aiops', AIOPS_EXPLAIN_LOG_RATE_SPIKES: 'aiops/explain_log_rate_spikes', AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT: 'aiops/explain_log_rate_spikes_index_select', + AIOPS_LOG_RATE_ANALYSIS: 'aiops/log_rate_analysis', + AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT: 'aiops/log_rate_analysis_index_select', AIOPS_LOG_CATEGORIZATION: 'aiops/log_categorization', AIOPS_LOG_CATEGORIZATION_INDEX_SELECT: 'aiops/log_categorization_index_select', AIOPS_CHANGE_POINT_DETECTION: 'aiops/change_point_detection', diff --git a/x-pack/plugins/ml/common/types/locator.ts b/x-pack/plugins/ml/common/types/locator.ts index 9d4e73e327e0d..6f4a50837f7ef 100644 --- a/x-pack/plugins/ml/common/types/locator.ts +++ b/x-pack/plugins/ml/common/types/locator.ts @@ -62,10 +62,10 @@ export type MlGenericUrlState = MLPageState< | typeof ML_PAGES.DATA_VISUALIZER_FILE | typeof ML_PAGES.DATA_VISUALIZER_INDEX_SELECT | typeof ML_PAGES.AIOPS - | typeof ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES - | typeof ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT | typeof ML_PAGES.AIOPS_LOG_CATEGORIZATION | typeof ML_PAGES.AIOPS_LOG_CATEGORIZATION_INDEX_SELECT + | typeof ML_PAGES.AIOPS_LOG_RATE_ANALYSIS + | typeof ML_PAGES.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT | typeof ML_PAGES.AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT | typeof ML_PAGES.AIOPS_CHANGE_POINT_DETECTION, MlGenericUrlPageState | undefined diff --git a/x-pack/plugins/ml/public/application/aiops/index.ts b/x-pack/plugins/ml/public/application/aiops/index.ts index 48cb2e9f8cd36..1e268d416a211 100644 --- a/x-pack/plugins/ml/public/application/aiops/index.ts +++ b/x-pack/plugins/ml/public/application/aiops/index.ts @@ -5,5 +5,5 @@ * 2.0. */ -export { ExplainLogRateSpikesPage } from './explain_log_rate_spikes'; +export { LogRateAnalysisPage } from './log_rate_analysis'; export { ChangePointDetectionPage } from './change_point_detection'; diff --git a/x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx b/x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx similarity index 88% rename from x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx rename to x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx index 62911e9164403..527c442df2c1a 100644 --- a/x-pack/plugins/ml/public/application/aiops/explain_log_rate_spikes.tsx +++ b/x-pack/plugins/ml/public/application/aiops/log_rate_analysis.tsx @@ -10,14 +10,14 @@ import { pick } from 'lodash'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; -import { ExplainLogRateSpikes } from '@kbn/aiops-plugin/public'; +import { LogRateAnalysis } from '@kbn/aiops-plugin/public'; import { useDataSource } from '../contexts/ml/data_source_context'; import { useMlKibana } from '../contexts/kibana'; import { HelpMenu } from '../components/help_menu'; import { TechnicalPreviewBadge } from '../components/technical_preview_badge'; import { MlPageHeader } from '../components/page_header'; -export const ExplainLogRateSpikesPage: FC = () => { +export const LogRateAnalysisPage: FC = () => { const { services } = useMlKibana(); const { selectedDataView: dataView, selectedSavedSearch: savedSearch } = useDataSource(); @@ -28,8 +28,8 @@ export const ExplainLogRateSpikesPage: FC = () => { @@ -38,7 +38,7 @@ export const ExplainLogRateSpikesPage: FC = () => { {dataView && ( - { diff --git a/x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx b/x-pack/plugins/ml/public/application/routing/routes/aiops/log_rate_analysis.tsx similarity index 53% rename from x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx rename to x-pack/plugins/ml/public/application/routing/routes/aiops/log_rate_analysis.tsx index e30208a986175..183279bbf1007 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/aiops/explain_log_rate_spikes.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/aiops/log_rate_analysis.tsx @@ -6,42 +6,54 @@ */ import React, { FC } from 'react'; +import { useLocation, Redirect } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; -import { AIOPS_ENABLED } from '@kbn/aiops-plugin/common'; import { ML_PAGES } from '../../../../locator'; import { NavigateToPath } from '../../../contexts/kibana'; import { createPath, MlRoute, PageLoader } from '../../router'; import { useRouteResolver } from '../../use_resolver'; -import { ExplainLogRateSpikesPage as Page } from '../../../aiops/explain_log_rate_spikes'; +import { LogRateAnalysisPage as Page } from '../../../aiops/log_rate_analysis'; import { getBreadcrumbWithUrlForApp } from '../../breadcrumbs'; import { DataSourceContextProvider } from '../../../contexts/ml'; -export const explainLogRateSpikesRouteFactory = ( +export const logRateAnalysisRouteFactory = ( navigateToPath: NavigateToPath, basePath: string ): MlRoute => ({ - id: 'explain_log_rate_spikes', - path: createPath(ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES), - title: i18n.translate('xpack.ml.aiops.explainLogRateSpikes.docTitle', { - defaultMessage: 'Explain log rate spikes', + id: 'log_rate_analysis', + path: createPath(ML_PAGES.AIOPS_LOG_RATE_ANALYSIS), + title: i18n.translate('xpack.ml.aiops.logRateAnalysis.docTitle', { + defaultMessage: 'Log rate analysis', }), render: () => , breadcrumbs: [ getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), - getBreadcrumbWithUrlForApp( - 'AIOPS_BREADCRUMB_EXPLAIN_LOG_RATE_SPIKES', - navigateToPath, - basePath - ), + getBreadcrumbWithUrlForApp('AIOPS_BREADCRUMB_LOG_RATE_ANALYSIS', navigateToPath, basePath), { - text: i18n.translate('xpack.ml.aiopsBreadcrumbs.explainLogRateSpikesLabel', { - defaultMessage: 'Explain log rate spikes', + text: i18n.translate('xpack.ml.aiopsBreadcrumbs.logRateAnalysisLabel', { + defaultMessage: 'Log rate analysis', }), }, ], - disabled: !AIOPS_ENABLED, }); +// Deprecated since 8.10, kept here to redirect old bookmarks. +export const explainLogRateSpikesRouteFactory = (): MlRoute => ({ + path: createPath(ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES), + render: () => , + // no breadcrumbs since it's just a redirect + breadcrumbs: [], +}); + +const RedirectWithQueryString: FC = () => { + const location = useLocation(); + return ( + + ); +}; + const PageWrapper: FC = () => { const { context } = useRouteResolver('full', ['canUseAiops']); diff --git a/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx b/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx index 70182fd87d056..3337257b8754c 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/new_job/index_or_search.tsx @@ -6,6 +6,7 @@ */ import React, { FC } from 'react'; +import { Redirect } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; import { ML_PAGES } from '../../../../locator'; import { NavigateToPath, useMlKibana } from '../../../contexts/kibana'; @@ -45,10 +46,10 @@ const getDataVisBreadcrumbs = (navigateToPath: NavigateToPath, basePath: string) }, ]; -const getExplainLogRateSpikesBreadcrumbs = (navigateToPath: NavigateToPath, basePath: string) => [ +const getLogRateAnalysisBreadcrumbs = (navigateToPath: NavigateToPath, basePath: string) => [ getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), - getBreadcrumbWithUrlForApp('AIOPS_BREADCRUMB_EXPLAIN_LOG_RATE_SPIKES', navigateToPath, basePath), - getBreadcrumbWithUrlForApp('EXPLAIN_LOG_RATE_SPIKES', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('AIOPS_BREADCRUMB_LOG_RATE_ANALYSIS', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('LOG_RATE_ANALYSIS', navigateToPath, basePath), { text: i18n.translate('xpack.ml.aiopsBreadcrumbs.selectDataViewLabel', { defaultMessage: 'Select Data View', @@ -114,24 +115,32 @@ export const dataVizIndexOrSearchRouteFactory = ( breadcrumbs: getDataVisBreadcrumbs(navigateToPath, basePath), }); -export const explainLogRateSpikesIndexOrSearchRouteFactory = ( +export const logRateAnalysisIndexOrSearchRouteFactory = ( navigateToPath: NavigateToPath, basePath: string ): MlRoute => ({ - id: 'data_view_explain_log_rate_spikes', - path: createPath(ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT), + id: 'data_view_log_rate_analysis', + path: createPath(ML_PAGES.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT), title: i18n.translate('xpack.ml.selectDataViewLabel', { defaultMessage: 'Select Data View', }), render: (props, deps) => ( ), - breadcrumbs: getExplainLogRateSpikesBreadcrumbs(navigateToPath, basePath), + breadcrumbs: getLogRateAnalysisBreadcrumbs(navigateToPath, basePath), +}); + +// Deprecated since 8.10, kept here to redirect old bookmarks. +export const explainLogRateSpikesIndexOrSearchRouteFactory = (): MlRoute => ({ + path: createPath(ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT), + render: () => , + // no breadcrumbs since it's just a redirect + breadcrumbs: [], }); export const logCategorizationIndexOrSearchRouteFactory = ( diff --git a/x-pack/plugins/ml/public/locator/ml_locator.ts b/x-pack/plugins/ml/public/locator/ml_locator.ts index f1f305d1ff56c..4b581e401b3eb 100644 --- a/x-pack/plugins/ml/public/locator/ml_locator.ts +++ b/x-pack/plugins/ml/public/locator/ml_locator.ts @@ -87,8 +87,8 @@ export class MlLocatorDefinition implements LocatorDefinition { case ML_PAGES.DATA_VISUALIZER_INDEX_VIEWER: case ML_PAGES.DATA_VISUALIZER_INDEX_SELECT: case ML_PAGES.AIOPS: - case ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES: - case ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT: + case ML_PAGES.AIOPS_LOG_RATE_ANALYSIS: + case ML_PAGES.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT: case ML_PAGES.AIOPS_LOG_CATEGORIZATION: case ML_PAGES.AIOPS_LOG_CATEGORIZATION_INDEX_SELECT: case ML_PAGES.AIOPS_CHANGE_POINT_DETECTION: diff --git a/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts b/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts index 38e48db3787af..470c025934649 100644 --- a/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts +++ b/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts @@ -103,16 +103,16 @@ function getAiopsDeepLink(mlCapabilities: MlCapabilities): AppDeepLink { title: i18n.translate('xpack.ml.deepLink.aiOps', { defaultMessage: 'AIOps', }), - // Default to the index select page for the explain log rate spikes since we don't have an AIops overview page - path: `/${ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT}`, + // Default to the index select page for log rate analysis since we don't have an AIops overview page + path: `/${ML_PAGES.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT}`, navLinkStatus, deepLinks: [ { - id: 'explainLogRateSpikes', - title: i18n.translate('xpack.ml.deepLink.explainLogRateSpikes', { - defaultMessage: 'Explain Log Rate Spikes', + id: 'logRateAnalysis', + title: i18n.translate('xpack.ml.deepLink.logRateAnalysis', { + defaultMessage: 'Log Rate Analysis', }), - path: `/${ML_PAGES.AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT}`, + path: `/${ML_PAGES.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT}`, navLinkStatus, }, { diff --git a/x-pack/plugins/observability/common/co_pilot/prompts.ts b/x-pack/plugins/observability/common/co_pilot/prompts.ts index 0093232d0c8e7..a1a8264c43882 100644 --- a/x-pack/plugins/observability/common/co_pilot/prompts.ts +++ b/x-pack/plugins/observability/common/co_pilot/prompts.ts @@ -291,9 +291,9 @@ export const coPilotPrompts = { const rows = significantFieldValues.map((item) => Object.values(item).join(',')).join('\n'); const content = `You are an observability expert using Elastic Observability Suite on call being consulted about a log threshold alert that got triggered by a spike of log messages. Your job is to take immediate action and proceed with both urgency and precision. - "Explain Log Rate Spikes" is an AIOps feature that uses advanced statistical methods to identify reasons for increases in log rates. It makes it easy to find and investigate causes of unusual spikes by using the analysis workflow view. - You are using "Explain Log Rate Spikes" and ran the statistical analysis on the log messages which occured during the alert. - You received the following analysis results from "Explain Log Rate Spikes" which list statistically significant co-occuring field/value combinations sorted from most significant (lower p-values) to least significant (higher p-values) that contribute to the log messages spike: + "Log Rate Analysis" is an AIOps feature that uses advanced statistical methods to identify reasons for increases in log rates. It makes it easy to find and investigate causes of unusual spikes by using the analysis workflow view. + You are using "Log Rate Analysis" and ran the statistical analysis on the log messages which occured during the alert. + You received the following analysis results from "Log Rate Analysis" which list statistically significant co-occuring field/value combinations sorted from most significant (lower p-values) to least significant (higher p-values) that contribute to the log messages spike: ${header} ${rows} diff --git a/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx b/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx index 33394041c5561..fbf3c7f194c79 100644 --- a/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx +++ b/x-pack/plugins/serverless_observability/public/components/side_navigation/index.tsx @@ -59,10 +59,10 @@ const navigationTree: NavigationTreeDefinition = { link: 'ml:anomalyDetection', }, { - title: i18n.translate('xpack.serverlessObservability.ml.spike.analysis', { - defaultMessage: 'Spike analysis', + title: i18n.translate('xpack.serverlessObservability.ml.logRateAnalysis', { + defaultMessage: 'Log rate analysis', }), - link: 'ml:explainLogRateSpikes', + link: 'ml:logRateAnalysis', icon: 'beaker', }, { diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index f2ccfa6f166b5..21c8dc84f816a 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -7159,11 +7159,11 @@ "xpack.aiops.categorizeFlyout.title": "Analyse du modèle de {name}", "xpack.aiops.changePointDetection.cardinalityWarningMessage": "La cardinalité du champ \"{splitField}\" est {cardinality}, ce qui dépasse la limite de {cardinalityLimit}. Seules les {cardinalityLimit} premières partitions, triées par nombre de documents, sont analysées.", "xpack.aiops.dataViewNotBasedOnTimeSeriesWarning.title": "La vue de données \"{dataViewTitle}\" n'est pas basée sur une série temporelle.", - "xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldCandidates": "{fieldCandidatesCount, plural, one {# champ candidat a été identifié} many {# champs candidats ont été identifiés} other {# champs candidats ont été identifiés}}.", - "xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldValuePairs": "{fieldValuePairsCount, plural, one {# paire champ/valeur significative a été identifiée} many {# paires champ/valeur significatives ont été identifiées} other {# paires champ/valeur significatives ont été identifiées}}.", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupColumnTooltip": "Affiche jusqu'à {maxItemCount} éléments de groupe triés par unicité et nombre de documents. Développez la ligne pour voir toutes les paires champ/valeur.", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupItemsInfo": "Affichage de {valuesBadges} éléments sur {count}.", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupUniqueItemsInfo": "{count, plural, one {# élément} many {Éléments #} other {Éléments #}} unique(s) à ce groupe.", + "xpack.aiops.logRateAnalysis.loadingState.identifiedFieldCandidates": "{fieldCandidatesCount, plural, one {# champ candidat a été identifié} many {# champs candidats ont été identifiés} other {# champs candidats ont été identifiés}}.", + "xpack.aiops.logRateAnalysis.loadingState.identifiedFieldValuePairs": "{fieldValuePairsCount, plural, one {# paire champ/valeur significative a été identifiée} many {# paires champ/valeur significatives ont été identifiées} other {# paires champ/valeur significatives ont été identifiées}}.", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupColumnTooltip": "Affiche jusqu'à {maxItemCount} éléments de groupe triés par unicité et nombre de documents. Développez la ligne pour voir toutes les paires champ/valeur.", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupItemsInfo": "Affichage de {valuesBadges} éléments sur {count}.", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupUniqueItemsInfo": "{count, plural, one {# élément} many {Éléments #} other {Éléments #}} unique(s) à ce groupe.", "xpack.aiops.index.dataLoader.internalServerErrorMessage": "Erreur lors du chargement des données dans l'index {index}. {message}. La requête a peut-être expiré. Essayez d'utiliser un échantillon d'une taille inférieure ou de réduire la plage temporelle.", "xpack.aiops.index.dataViewWithoutMetricNotificationTitle": "La vue de données \"{dataViewTitle}\" ne contient aucun champ d'indicateurs.", "xpack.aiops.index.errorLoadingDataMessage": "Erreur lors du chargement des données dans l'index {index}. {message}.", @@ -7225,46 +7225,45 @@ "xpack.aiops.correlations.highImpactText": "Élevé", "xpack.aiops.correlations.lowImpactText": "Bas", "xpack.aiops.correlations.mediumImpactText": "Moyenne", - "xpack.aiops.correlations.spikeAnalysisTableGroups.docCountLabel": "Compte du document", "xpack.aiops.correlations.veryLowImpactText": "Très bas", "xpack.aiops.dataGrid.field.documentCountChart.seriesLabel": "compte du document", "xpack.aiops.dataGrid.field.documentCountChartSplit.seriesLabel": "Autre compte du document", "xpack.aiops.documentCountChart.baselineBadgeLabel": "Référence de base", "xpack.aiops.documentCountChart.deviationBadgeLabel": "général", - "xpack.aiops.explainLogRateSpikes.loadingState.doneMessage": "Terminé.", - "xpack.aiops.explainLogRateSpikes.loadingState.groupingResults": "Transformation de paires champ/valeur significatives en groupes.", - "xpack.aiops.explainLogRateSpikes.loadingState.loadingHistogramData": "Chargement des données d’histogramme.", - "xpack.aiops.explainLogRateSpikes.loadingState.loadingIndexInformation": "Chargement des informations d'index.", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.collapseAriaLabel": "Réduire", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.docCountLabel": "Compte du document", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.expandAriaLabel": "Développer", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldNameLabel": "Nom du champ", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldValueLabel": "Valeur du champ", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.impactLabel": "Impact", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.impactLabelColumnTooltip": "Le niveau d'impact du champ sur la différence de taux de messages.", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.logRateColumnTooltip": "Une représentation visuelle de l'impact du champ sur la différence de taux de messages", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.logRateLabel": "Taux du log", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.pValueColumnTooltip": "Une différence de fréquence des valeurs, surtout si celles-ci sont plus faibles, indique un changement important. Ordonner un tri de cette colonne entraînera automatiquement un tri secondaire sur la colonne \"nombre de documents\"..", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.pValueLabel": "valeur-p", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.uniqueColumnTooltip": "Cette paire champ/valeur apparaît uniquement dans ce groupe", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupLabel": "Regrouper", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.impactLabelColumnTooltip": "Niveau d'impact du groupe sur la différence de taux de messages", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.logRateColumnTooltip": "Représentation visuelle de l'impact du groupe sur la différence de taux de messages.", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.logRateLabel": "Taux du log", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueColumnTooltip": "Une différence de fréquence des valeurs, surtout si celles-ci sont plus faibles, indique un changement important. Ordonner un tri de cette colonne entraînera automatiquement un tri secondaire sur la colonne \"nombre de documents\"..", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueLabel": "valeur-p", - "xpack.aiops.explainLogRateSpikesPage.emptyPromptBody": "La fonction Expliquer les pics de taux de log identifie les combinaisons champ/valeur statistiquement significatives qui contribuent à un pic de taux de log.", - "xpack.aiops.explainLogRateSpikesPage.emptyPromptTitle": "Cliquez sur un pic dans l'histogramme pour lancer l'analyse.", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterApplyButtonLabel": "Appliquer", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterButtonLabel": "Champs de filtre", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterHelpText": "Désélectionnez les champs non pertinents pour les supprimer des groupes et cliquez sur le bouton Appliquer pour réexécuter le regroupement. Utilisez la barre de recherche pour filtrer la liste, puis sélectionnez/désélectionnez plusieurs champs avec les actions ci-dessous.", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.deselectAllFields": "Désélectionner tous les champs", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.deselectAllSearchedFields": "Désélectionner les champs filtrés", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.selectAllFields": "Sélectionner tous les champs", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.selectAllSearchedFields": "Sélectionner les champs filtrés", - "xpack.aiops.explainLogRateSpikesPage.noResultsPromptBody": "Essayez d'ajuster la référence de base et les plages temporelles d'écart-type, et réexécutez l'analyse. Si vous n'obtenez toujours aucun résultat, il se peut qu'il n'y ait aucune entité statistiquement significative contribuant à ce pic dans les taux de log.", - "xpack.aiops.explainLogRateSpikesPage.noResultsPromptTitle": "L'analyse n'a retourné aucun résultat.", - "xpack.aiops.explainLogRateSpikesPage.tryToContinueAnalysisButtonText": "Essayer de continuer l'analyse", + "xpack.aiops.logRateAnalysis.loadingState.doneMessage": "Terminé.", + "xpack.aiops.logRateAnalysis.loadingState.groupingResults": "Transformation de paires champ/valeur significatives en groupes.", + "xpack.aiops.logRateAnalysis.loadingState.loadingHistogramData": "Chargement des données d’histogramme.", + "xpack.aiops.logRateAnalysis.loadingState.loadingIndexInformation": "Chargement des informations d'index.", + "xpack.aiops.logRateAnalysis.resultsTable.collapseAriaLabel": "Réduire", + "xpack.aiops.logRateAnalysis.resultsTable.docCountLabel": "Compte du document", + "xpack.aiops.logRateAnalysis.resultsTable.expandAriaLabel": "Développer", + "xpack.aiops.logRateAnalysis.resultsTable.fieldNameLabel": "Nom du champ", + "xpack.aiops.logRateAnalysis.resultsTable.fieldValueLabel": "Valeur du champ", + "xpack.aiops.logRateAnalysis.resultsTable.impactLabel": "Impact", + "xpack.aiops.logRateAnalysis.resultsTable.impactLabelColumnTooltip": "Le niveau d'impact du champ sur la différence de taux de messages.", + "xpack.aiops.logRateAnalysis.resultsTable.logRateColumnTooltip": "Une représentation visuelle de l'impact du champ sur la différence de taux de messages", + "xpack.aiops.logRateAnalysis.resultsTable.logRateLabel": "Taux du log", + "xpack.aiops.logRateAnalysis.resultsTable.pValueColumnTooltip": "L'importance de changements dans la fréquence des valeurs ; des valeurs plus faibles indiquent un changement plus important.", + "xpack.aiops.logRateAnalysis.resultsTable.pValueLabel": "valeur-p", + "xpack.aiops.logRateAnalysis.resultsTable.uniqueColumnTooltip": "Cette paire champ/valeur apparaît uniquement dans ce groupe", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupLabel": "Regrouper", + "xpack.aiops.logRateAnalysis.resultsTableGroups.impactLabelColumnTooltip": "Niveau d'impact du groupe sur la différence de taux de messages", + "xpack.aiops.logRateAnalysis.resultsTableGroups.logRateColumnTooltip": "Représentation visuelle de l'impact du groupe sur la différence de taux de messages.", + "xpack.aiops.logRateAnalysis.resultsTableGroups.logRateLabel": "Taux du log", + "xpack.aiops.logRateAnalysis.resultsTableGroups.pValueColumnTooltip": "L'importance de changements dans la fréquence des valeurs ; des valeurs plus faibles indiquent un changement plus important.", + "xpack.aiops.logRateAnalysis.resultsTableGroups.pValueLabel": "valeur-p", + "xpack.aiops.logRateAnalysis.page.emptyPromptBody": "La fonction Expliquer les pics de taux de log identifie les combinaisons champ/valeur statistiquement significatives qui contribuent à un pic de taux de log.", + "xpack.aiops.logRateAnalysis.page.emptyPromptTitle": "Cliquez sur un pic dans l'histogramme pour lancer l'analyse.", + "xpack.aiops.logRateAnalysis.page.fieldFilterApplyButtonLabel": "Appliquer", + "xpack.aiops.logRateAnalysis.page.fieldFilterButtonLabel": "Champs de filtre", + "xpack.aiops.logRateAnalysis.page.fieldFilterHelpText": "Désélectionnez les champs non pertinents pour les supprimer des groupes et cliquez sur le bouton Appliquer pour réexécuter le regroupement. Utilisez la barre de recherche pour filtrer la liste, puis sélectionnez/désélectionnez plusieurs champs avec les actions ci-dessous.", + "xpack.aiops.logRateAnalysis.page.fieldSelector.deselectAllFields": "Désélectionner tous les champs", + "xpack.aiops.logRateAnalysis.page.fieldSelector.deselectAllSearchedFields": "Désélectionner les champs filtrés", + "xpack.aiops.logRateAnalysis.page.fieldSelector.selectAllFields": "Sélectionner tous les champs", + "xpack.aiops.logRateAnalysis.page.fieldSelector.selectAllSearchedFields": "Sélectionner les champs filtrés", + "xpack.aiops.logRateAnalysis.page.noResultsPromptBody": "Essayez d'ajuster la référence de base et les plages temporelles d'écart-type, et réexécutez l'analyse. Si vous n'obtenez toujours aucun résultat, il se peut qu'il n'y ait aucune entité statistiquement significative contribuant à ce pic dans les taux de log.", + "xpack.aiops.logRateAnalysis.page.noResultsPromptTitle": "L'analyse n'a retourné aucun résultat.", + "xpack.aiops.logRateAnalysis.page.tryToContinueAnalysisButtonText": "Essayer de continuer l'analyse", "xpack.aiops.fieldContextPopover.descriptionTooltipContent": "Afficher les principales valeurs de champ", "xpack.aiops.fieldContextPopover.notTopTenValueMessage": "Le terme sélectionné n'est pas dans le top 10", "xpack.aiops.fieldContextPopover.topFieldValuesAriaLabel": "Afficher les principales valeurs de champ", @@ -7297,7 +7296,6 @@ "xpack.aiops.logCategorization.randomSamplerSettingsPopUp.randomSamplerRowLabel": "Échantillonnage aléatoire", "xpack.aiops.logCategorization.runButton": "Exécuter l'analyse du modèle", "xpack.aiops.logCategorizationTimeSeriesWarning.description": "L'analyse du modèle de log ne fonctionne que sur des index temporels.", - "xpack.aiops.logRateSpikesTimeSeriesWarning.description": "Les pics de taux de log ne fonctionnent que sur des index temporels.", "xpack.aiops.miniHistogram.noDataLabel": "S. O.", "xpack.aiops.progressAriaLabel": "Progression", "xpack.aiops.rerunAnalysisButtonTitle": "Lancer l'analyse", @@ -7305,23 +7303,20 @@ "xpack.aiops.resetLabel": "Réinitialiser", "xpack.aiops.searchPanel.invalidSyntax": "Syntaxe non valide", "xpack.aiops.searchPanel.queryBarPlaceholderText": "Rechercher… (par exemple, status:200 AND extension:\"PHP\")", - "xpack.aiops.spikeAnalysisGroupsTable.actionsColumnName": "Actions", - "xpack.aiops.spikeAnalysisPage.documentCountStatsSplitGroupLabel": "Groupe sélectionné", - "xpack.aiops.spikeAnalysisTable.actionsColumnName": "Actions", - "xpack.aiops.spikeAnalysisTable.autoGeneratedDiscoverLinkErrorMessage": "Liaison avec Discover impossible ; aucune vue de données n'existe pour cet index", - "xpack.aiops.spikeAnalysisTable.autoGeneratedLogPatternAnalysisLinkErrorMessage": "Liaison avec l'analyse de modèle de log impossible ; aucune vue de données n'existe pour cet index", - "xpack.aiops.spikeAnalysisTable.discoverLocatorMissingErrorMessage": "Aucun localisateur pour Discover détecté", - "xpack.aiops.spikeAnalysisTable.discoverNotEnabledErrorMessage": "Discover n'est pas activé", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResults": "Regroupement intelligent", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsHelpMessage": "Les éléments qui sont propres à un groupe sont marqués d'un astérisque (*).", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsOff": "Désactivé", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsOn": "Activé", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardButtonLabel": "Copier dans le presse-papiers", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardGroupMessage": "Copier les éléments de groupe en tant que syntaxe KQL dans le Presse-papiers", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardSignificantTermMessage": "Copier la paire clé-valeur en tant que syntaxe KQL dans le Presse-papiers", - "xpack.aiops.spikeAnalysisTable.linksMenu.viewInDiscover": "Afficher dans Discover", - "xpack.aiops.spikeAnalysisTable.linksMenu.viewInLogPatternAnalysis": "Voir dans l'analyse du modèle de log", - "xpack.aiops.spikeAnalysisTable.mlLocatorMissingErrorMessage": "Aucun localisateur pour l'analyse de modèle de log", + "xpack.aiops.logRateAnalysis.page.documentCountStatsSplitGroupLabel": "Groupe sélectionné", + "xpack.aiops.logRateAnalysis.resultsTable.actionsColumnName": "Actions", + "xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedDiscoverLinkErrorMessage": "Liaison avec Discover impossible ; aucune vue de données n'existe pour cet index", + "xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedLogPatternAnalysisLinkErrorMessage": "Liaison avec l'analyse de modèle de log impossible ; aucune vue de données n'existe pour cet index", + "xpack.aiops.logRateAnalysis.resultsTable.discoverLocatorMissingErrorMessage": "Aucun localisateur pour Discover détecté", + "xpack.aiops.logRateAnalysis.resultsTable.discoverNotEnabledErrorMessage": "Discover n'est pas activé", + "xpack.aiops.logRateAnalysis.resultsTable.groupedSwitchLabel.groupResults": "Résultats du groupe", + "xpack.aiops.logRateAnalysis.resultsTable.groupedSwitchLabel.groupResultsHelpMessage": "Les éléments qui sont propres à un groupe sont marqués d'un astérisque (*).", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardButtonLabel": "Copier dans le presse-papiers", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardGroupMessage": "Copier les éléments de groupe en tant que syntaxe KQL dans le Presse-papiers", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardSignificantTermMessage": "Copier la paire clé-valeur en tant que syntaxe KQL dans le Presse-papiers", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInDiscover": "Afficher dans Discover", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInLogPatternAnalysis": "Voir dans l'analyse du modèle de log", + "xpack.aiops.logRateAnalysis.resultsTable.mlLocatorMissingErrorMessage": "Aucun localisateur pour l'analyse de modèle de log", "xpack.aiops.techPreviewBadge.label": "Version d'évaluation technique", "xpack.aiops.techPreviewBadge.tooltip": "Cette fonctionnalité est en version d'évaluation technique et pourra être modifiée ou retirée complètement dans une future version. Elastic s'efforcera au maximum de corriger tout problème, mais les fonctionnalités en version d'évaluation technique ne sont pas soumises aux accords de niveau de service d'assistance des fonctionnalités officielles en disponibilité générale.", "xpack.alerting.alertNavigationRegistry.get.missingNavigationError": "La navigation pour le type d'alerte \"{alertType}\" dans \"{consumer}\" n'est pas enregistrée.", @@ -19059,7 +19054,6 @@ "xpack.infra.logs.alertDetails.chartHistory.avgTimeToRecover": "Temps moyen de récupération", "xpack.infra.logs.alertDetails.chartHistory.chartTitle": "Historique des alertes de seuil de logs", "xpack.infra.logs.alertDetails.chartHistory.last30days": "30 derniers jours", - "xpack.infra.logs.alertDetails.explainLogRateSpikes.sectionTitle": "Expliquer les pics de taux de log", "xpack.infra.logs.alertDetails.explainLogSpikeTitle": "Causes possibles et résolutions", "xpack.infra.logs.alertDropdown.inlineLogViewCreateAlertContent": "La création d'alertes n'est pas prise en charge avec les vues de log en ligne.", "xpack.infra.logs.alertDropdown.inlineLogViewCreateAlertTitle": "Vue de log en ligne", @@ -23270,13 +23264,13 @@ "xpack.ml.advancedSettings.enableAnomalyDetectionDefaultTimeRangeName": "Activer les valeurs par défaut du filtre temporel pour les résultats de détection des anomalies", "xpack.ml.aiops.changePointDetection.docTitle": "Modifier la détection du point", "xpack.ml.aiops.changePointDetectionBreadcrumbLabel": "Modifier la détection du point", - "xpack.ml.aiops.explainLogRateSpikes.docTitle": "Expliquer les pics de taux de log", - "xpack.ml.aiops.explainLogRateSpikesBreadcrumbLabel": "Expliquer les pics de taux de log", + "xpack.ml.aiops.logRateAnalysis.docTitle": "Expliquer les pics de taux de log", + "xpack.ml.aiops.logRateAnalysisBreadcrumbLabel": "Expliquer les pics de taux de log", "xpack.ml.aiops.logCategorization.docTitle": "Analyse du modèle de log", "xpack.ml.aiops.logPatternAnalysisBreadcrumbLabel": "Analyse du modèle de log", "xpack.ml.aiopsBreadcrumbLabel": "AIOps Labs", "xpack.ml.aiopsBreadcrumbs.changePointDetectionLabel": "Modifier la détection du point", - "xpack.ml.aiopsBreadcrumbs.explainLogRateSpikesLabel": "Expliquer les pics de taux de log", + "xpack.ml.aiopsBreadcrumbs.logRateAnalysisLabel": "Expliquer les pics de taux de log", "xpack.ml.aiopsBreadcrumbs.selectDataViewLabel": "Sélectionner la vue de données", "xpack.ml.alertConditionValidation.title": "La condition d'alerte contient les problèmes suivants :", "xpack.ml.alertContext.anomalyExplorerUrlDescription": "URL pour ouvrir dans Anomaly Explorer", @@ -24076,7 +24070,7 @@ "xpack.ml.deepLink.changePointDetection": "Modifier la détection du point", "xpack.ml.deepLink.dataFrameAnalytics": "Analyse du cadre de données", "xpack.ml.deepLink.dataVisualizer": "Data Visualizer (Visualiseur de données)", - "xpack.ml.deepLink.explainLogRateSpikes": "Expliquer les pics de taux de log", + "xpack.ml.deepLink.logRateAnalysis": "Expliquer les pics de taux de log", "xpack.ml.deepLink.fileUpload": "Chargement du fichier", "xpack.ml.deepLink.filterListsSettings": "Listes de filtres", "xpack.ml.deepLink.indexDataVisualizer": "Index Data Visualizer (Visualiseur de données pour les index)", @@ -24141,7 +24135,7 @@ "xpack.ml.embeddables.lensLayerFlyout.title": "Créer une tâche de détection des anomalies", "xpack.ml.entityFilter.addFilterTooltip": "Ajouter un filtre", "xpack.ml.entityFilter.removeFilterTooltip": "Supprimer le filtre", - "xpack.ml.explainLogRateSpikes.pageHeader": "Expliquer les pics de taux de log", + "xpack.ml.logRateAnalysis.pageHeader": "Expliquer les pics de taux de log", "xpack.ml.explorer.addToDashboard.anomalyCharts.dashboardsTitle": "Ajouter des graphiques d'anomalies aux tableaux de bord", "xpack.ml.explorer.addToDashboard.anomalyCharts.maxSeriesToPlotLabel": "Nombre maximal de séries à tracer", "xpack.ml.explorer.addToDashboard.cancelButtonLabel": "Annuler", @@ -24763,7 +24757,7 @@ "xpack.ml.navMenu.dataFrameAnalyticsTabLinkText": "Analyse du cadre de données", "xpack.ml.navMenu.dataViewDataVisualizerLinkText": "Vue de données", "xpack.ml.navMenu.dataVisualizerTabLinkText": "Data Visualizer (Visualiseur de données)", - "xpack.ml.navMenu.explainLogRateSpikesLinkText": "Expliquer les pics de taux de log", + "xpack.ml.navMenu.logRateAnalysisLinkText": "Expliquer les pics de taux de log", "xpack.ml.navMenu.fileDataVisualizerLinkText": "Fichier", "xpack.ml.navMenu.logCategorizationLinkText": "Analyse du modèle de log", "xpack.ml.navMenu.memoryUsageText": "Utilisation mémoire", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index fd645d314bd1c..5e0a2252942fb 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -7174,11 +7174,11 @@ "xpack.aiops.categorizeFlyout.title": "{name}のパターン分析", "xpack.aiops.changePointDetection.cardinalityWarningMessage": "\"{splitField}\"フィールドカーディナリティは{cardinality}であり、{cardinalityLimit}の制限を超えています。ドキュメントカウント別で並べ替えられた最初の{cardinalityLimit}個のパーティションのみが分析されます。", "xpack.aiops.dataViewNotBasedOnTimeSeriesWarning.title": "データビュー\"{dataViewTitle}\"は時系列に基づいていません。", - "xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldCandidates": "{fieldCandidatesCount, plural, other {#個のフィールド候補}}が特定されました。", - "xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldValuePairs": "{fieldValuePairsCount, plural, other {#個の重要なフィールドと値のペア}}が特定されました。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupColumnTooltip": "最大{maxItemCount}個のグループ項目を一意性とドキュメント数順に並べ替えて表示します。すべてのフィールドと値のペアを表示するには、行を展開します。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupItemsInfo": "{count}項目中{valuesBadges}項目を表示しています。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupUniqueItemsInfo": "このグループに固有の{count, plural, other {#アイテム}}。", + "xpack.aiops.logRateAnalysis.loadingState.identifiedFieldCandidates": "{fieldCandidatesCount, plural, other {#個のフィールド候補}}が特定されました。", + "xpack.aiops.logRateAnalysis.loadingState.identifiedFieldValuePairs": "{fieldValuePairsCount, plural, other {#個の重要なフィールドと値のペア}}が特定されました。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupColumnTooltip": "最大{maxItemCount}個のグループ項目を一意性とドキュメント数順に並べ替えて表示します。すべてのフィールドと値のペアを表示するには、行を展開します。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupItemsInfo": "{count}項目中{valuesBadges}項目を表示しています。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupUniqueItemsInfo": "このグループに固有の{count, plural, other {#アイテム}}。", "xpack.aiops.index.dataLoader.internalServerErrorMessage": "インデックス{index}のデータの読み込み中にエラーが発生。{message}。リクエストがタイムアウトした可能性があります。小さなサンプルサイズを使うか、時間範囲を狭めてみてください。", "xpack.aiops.index.dataViewWithoutMetricNotificationTitle": "データビュー\"{dataViewTitle}\"にはメトリックフィールドが含まれていません。", "xpack.aiops.index.errorLoadingDataMessage": "インデックス{index}のデータの読み込み中にエラーが発生。{message}。", @@ -7240,46 +7240,45 @@ "xpack.aiops.correlations.highImpactText": "高", "xpack.aiops.correlations.lowImpactText": "低", "xpack.aiops.correlations.mediumImpactText": "中", - "xpack.aiops.correlations.spikeAnalysisTableGroups.docCountLabel": "ドキュメントカウント", "xpack.aiops.correlations.veryLowImpactText": "非常に低い", "xpack.aiops.dataGrid.field.documentCountChart.seriesLabel": "ドキュメントカウント", "xpack.aiops.dataGrid.field.documentCountChartSplit.seriesLabel": "他のドキュメントカウント", "xpack.aiops.documentCountChart.baselineBadgeLabel": "ベースライン", "xpack.aiops.documentCountChart.deviationBadgeLabel": "偏差", - "xpack.aiops.explainLogRateSpikes.loadingState.doneMessage": "完了しました。", - "xpack.aiops.explainLogRateSpikes.loadingState.groupingResults": "重要なフィールドと値のペアをグループに変換しています。", - "xpack.aiops.explainLogRateSpikes.loadingState.loadingHistogramData": "ヒストグラムデータを読み込んでいます。", - "xpack.aiops.explainLogRateSpikes.loadingState.loadingIndexInformation": "インデックス情報を読み込んでいます。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.collapseAriaLabel": "縮小", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.docCountLabel": "ドキュメントカウント", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.expandAriaLabel": "拡張", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldNameLabel": "フィールド名", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldValueLabel": "フィールド値", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.impactLabel": "インパクト", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.impactLabelColumnTooltip": "メッセージレート差異に対するフィールドの影響のレベル。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.logRateColumnTooltip": "メッセージレート差異に対するフィールドの影響の視覚的な表示", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.logRateLabel": "ログレート", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.pValueColumnTooltip": "値の頻度の変化の重要性。値が小さいほど変化が大きいことを示します。この列をソートすると、自動的にdoc count列が二次ソートされます。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.pValueLabel": "p値", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.uniqueColumnTooltip": "このフィールド/値の組み合わせはこのグループでのみ出現します", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupLabel": "グループ", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.impactLabelColumnTooltip": "メッセージレート差異に対するグループの影響のレベル", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.logRateColumnTooltip": "メッセージレート差異に対するグループの影響の視覚的な表示。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.logRateLabel": "ログレート", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueColumnTooltip": "値の頻度の変化の重要性。値が小さいほど変化が大きいことを示します。この列をソートすると、自動的にdoc count列が二次ソートされます。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueLabel": "p値", - "xpack.aiops.explainLogRateSpikesPage.emptyPromptBody": "explainログレートスパイク機能は、ログレートのスパイクに寄与する統計的に有意なフィールド/値の組み合わせを特定します。", - "xpack.aiops.explainLogRateSpikesPage.emptyPromptTitle": "ヒストグラム図のスパイクをクリックすると、分析が開始します。", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterApplyButtonLabel": "適用", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterButtonLabel": "フィールドのフィルタリング", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterHelpText": "関連しないフィールドを選択解除すると、グループから削除されます。[適用]ボタンをクリックすると、グループ化が再実行されます。 検索バーを使用してリストをフィルタリングしてから、下のアクションを使用して複数のフィールドを選択/選択解除します。", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.deselectAllFields": "すべてのフィールドを選択解除", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.deselectAllSearchedFields": "フィルタリングされたフィールドを選択解除", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.selectAllFields": "すべてのフィールドを選択", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.selectAllSearchedFields": "フィルタリングされたフィールドを選択", - "xpack.aiops.explainLogRateSpikesPage.noResultsPromptBody": "ベースラインと時間範囲のずれを調整し、分析を再実行してください。結果が得られない場合は、このログレートの上昇に寄与する統計的に有意なエンティティが存在しない可能性があります。", - "xpack.aiops.explainLogRateSpikesPage.noResultsPromptTitle": "分析の結果が返されませんでした。", - "xpack.aiops.explainLogRateSpikesPage.tryToContinueAnalysisButtonText": "分析を続行してください", + "xpack.aiops.logRateAnalysis.loadingState.doneMessage": "完了しました。", + "xpack.aiops.logRateAnalysis.loadingState.groupingResults": "重要なフィールドと値のペアをグループに変換しています。", + "xpack.aiops.logRateAnalysis.loadingState.loadingHistogramData": "ヒストグラムデータを読み込んでいます。", + "xpack.aiops.logRateAnalysis.loadingState.loadingIndexInformation": "インデックス情報を読み込んでいます。", + "xpack.aiops.logRateAnalysis.resultsTable.collapseAriaLabel": "縮小", + "xpack.aiops.logRateAnalysis.resultsTable.docCountLabel": "ドキュメントカウント", + "xpack.aiops.logRateAnalysis.resultsTable.expandAriaLabel": "拡張", + "xpack.aiops.logRateAnalysis.resultsTable.fieldNameLabel": "フィールド名", + "xpack.aiops.logRateAnalysis.resultsTable.fieldValueLabel": "フィールド値", + "xpack.aiops.logRateAnalysis.resultsTable.impactLabel": "インパクト", + "xpack.aiops.logRateAnalysis.resultsTable.impactLabelColumnTooltip": "メッセージレート差異に対するフィールドの影響のレベル。", + "xpack.aiops.logRateAnalysis.resultsTable.logRateColumnTooltip": "メッセージレート差異に対するフィールドの影響の視覚的な表示", + "xpack.aiops.logRateAnalysis.resultsTable.logRateLabel": "ログレート", + "xpack.aiops.logRateAnalysis.resultsTable.pValueColumnTooltip": "値の頻度の変化の有意性。値が小さいほど、変化が大きいことを示します。", + "xpack.aiops.logRateAnalysis.resultsTable.pValueLabel": "p値", + "xpack.aiops.logRateAnalysis.resultsTable.uniqueColumnTooltip": "このフィールド/値の組み合わせはこのグループでのみ出現します", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupLabel": "グループ", + "xpack.aiops.logRateAnalysis.resultsTableGroups.impactLabelColumnTooltip": "メッセージレート差異に対するグループの影響のレベル", + "xpack.aiops.logRateAnalysis.resultsTableGroups.logRateColumnTooltip": "メッセージレート差異に対するグループの影響の視覚的な表示。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.logRateLabel": "ログレート", + "xpack.aiops.logRateAnalysis.resultsTableGroups.pValueColumnTooltip": "値の頻度の変化の有意性。値が小さいほど、変化が大きいことを示します。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.pValueLabel": "p値", + "xpack.aiops.logRateAnalysis.page.emptyPromptBody": "explainログレートスパイク機能は、ログレートのスパイクに寄与する統計的に有意なフィールド/値の組み合わせを特定します。", + "xpack.aiops.logRateAnalysis.page.emptyPromptTitle": "ヒストグラム図のスパイクをクリックすると、分析が開始します。", + "xpack.aiops.logRateAnalysis.page.fieldFilterApplyButtonLabel": "適用", + "xpack.aiops.logRateAnalysis.page.fieldFilterButtonLabel": "フィールドのフィルタリング", + "xpack.aiops.logRateAnalysis.page.fieldFilterHelpText": "関連しないフィールドを選択解除すると、グループから削除されます。[適用]ボタンをクリックすると、グループ化が再実行されます。 検索バーを使用してリストをフィルタリングしてから、下のアクションを使用して複数のフィールドを選択/選択解除します。", + "xpack.aiops.logRateAnalysis.page.fieldSelector.deselectAllFields": "すべてのフィールドを選択解除", + "xpack.aiops.logRateAnalysis.page.fieldSelector.deselectAllSearchedFields": "フィルタリングされたフィールドを選択解除", + "xpack.aiops.logRateAnalysis.page.fieldSelector.selectAllFields": "すべてのフィールドを選択", + "xpack.aiops.logRateAnalysis.page.fieldSelector.selectAllSearchedFields": "フィルタリングされたフィールドを選択", + "xpack.aiops.logRateAnalysis.page.noResultsPromptBody": "ベースラインと時間範囲のずれを調整し、分析を再実行してください。結果が得られない場合は、このログレートの上昇に寄与する統計的に有意なエンティティが存在しない可能性があります。", + "xpack.aiops.logRateAnalysis.page.noResultsPromptTitle": "分析の結果が返されませんでした。", + "xpack.aiops.logRateAnalysis.page.tryToContinueAnalysisButtonText": "分析を続行してください", "xpack.aiops.fieldContextPopover.descriptionTooltipContent": "上位のフィールド値を表示", "xpack.aiops.fieldContextPopover.notTopTenValueMessage": "選択した用語は上位10件にありません", "xpack.aiops.fieldContextPopover.topFieldValuesAriaLabel": "上位のフィールド値を表示", @@ -7312,7 +7311,6 @@ "xpack.aiops.logCategorization.randomSamplerSettingsPopUp.randomSamplerRowLabel": "無作為抽出", "xpack.aiops.logCategorization.runButton": "パターン分析を実行", "xpack.aiops.logCategorizationTimeSeriesWarning.description": "ログパターン分析は、時間ベースのインデックスに対してのみ実行されます。", - "xpack.aiops.logRateSpikesTimeSeriesWarning.description": "ログレートスパイクは、時間ベースのインデックスに対してのみ実行されます。", "xpack.aiops.miniHistogram.noDataLabel": "N/A", "xpack.aiops.progressAriaLabel": "進捗", "xpack.aiops.rerunAnalysisButtonTitle": "分析を実行", @@ -7320,23 +7318,20 @@ "xpack.aiops.resetLabel": "リセット", "xpack.aiops.searchPanel.invalidSyntax": "無効な構文", "xpack.aiops.searchPanel.queryBarPlaceholderText": "検索…(例:status:200 AND extension:\"PHP\")", - "xpack.aiops.spikeAnalysisGroupsTable.actionsColumnName": "アクション", - "xpack.aiops.spikeAnalysisPage.documentCountStatsSplitGroupLabel": "選択したグループ", - "xpack.aiops.spikeAnalysisTable.actionsColumnName": "アクション", - "xpack.aiops.spikeAnalysisTable.autoGeneratedDiscoverLinkErrorMessage": "Discoverにリンクできません。このインデックスのデータビューが存在しません", - "xpack.aiops.spikeAnalysisTable.autoGeneratedLogPatternAnalysisLinkErrorMessage": "ログパターン分析にリンクできません。このインデックスのデータビューが存在しません", - "xpack.aiops.spikeAnalysisTable.discoverLocatorMissingErrorMessage": "Discoverのロケーターが検出されません", - "xpack.aiops.spikeAnalysisTable.discoverNotEnabledErrorMessage": "Discoverが有効ではありません", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResults": "スマートグループ", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsHelpMessage": "グループに固有のアイテムにはアスタリスク(*)が表示されます。", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsOff": "オフ", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsOn": "オン", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardButtonLabel": "クリップボードにコピー", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardGroupMessage": "グループアイテムをKQL構文としてクリップボードにコピー", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardSignificantTermMessage": "フィールド/値のペアをKQL構文としてクリップボードにコピー", - "xpack.aiops.spikeAnalysisTable.linksMenu.viewInDiscover": "Discoverに表示", - "xpack.aiops.spikeAnalysisTable.linksMenu.viewInLogPatternAnalysis": "ログパターン分析で表示", - "xpack.aiops.spikeAnalysisTable.mlLocatorMissingErrorMessage": "ログパターン分析のロケーターが検出されません", + "xpack.aiops.logRateAnalysis.page.documentCountStatsSplitGroupLabel": "選択したグループ", + "xpack.aiops.logRateAnalysis.resultsTable.actionsColumnName": "アクション", + "xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedDiscoverLinkErrorMessage": "Discoverにリンクできません。このインデックスのデータビューが存在しません", + "xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedLogPatternAnalysisLinkErrorMessage": "ログパターン分析にリンクできません。このインデックスのデータビューが存在しません", + "xpack.aiops.logRateAnalysis.resultsTable.discoverLocatorMissingErrorMessage": "Discoverのロケーターが検出されません", + "xpack.aiops.logRateAnalysis.resultsTable.discoverNotEnabledErrorMessage": "Discoverが有効ではありません", + "xpack.aiops.logRateAnalysis.resultsTable.groupedSwitchLabel.groupResults": "結果をグループ化", + "xpack.aiops.logRateAnalysis.resultsTable.groupedSwitchLabel.groupResultsHelpMessage": "グループに固有のアイテムにはアスタリスク(*)が表示されます。", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardButtonLabel": "クリップボードにコピー", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardGroupMessage": "グループアイテムをKQL構文としてクリップボードにコピー", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardSignificantTermMessage": "フィールド/値のペアをKQL構文としてクリップボードにコピー", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInDiscover": "Discoverに表示", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInLogPatternAnalysis": "ログパターン分析で表示", + "xpack.aiops.logRateAnalysis.resultsTable.mlLocatorMissingErrorMessage": "ログパターン分析のロケーターが検出されません", "xpack.aiops.techPreviewBadge.label": "テクニカルプレビュー", "xpack.aiops.techPreviewBadge.tooltip": "この機能はテクニカルプレビュー中であり、将来のリリースでは変更されたり完全に削除されたりする場合があります。Elasticは最善の努力を講じてすべての問題の修正に努めますが、テクニカルプレビュー中の機能には正式なGA機能のサポートSLAが適用されません。", "xpack.alerting.alertNavigationRegistry.get.missingNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは登録されていません。", @@ -19072,7 +19067,6 @@ "xpack.infra.logs.alertDetails.chartHistory.avgTimeToRecover": "回復までの平均時間", "xpack.infra.logs.alertDetails.chartHistory.chartTitle": "ログしきい値アラート履歴", "xpack.infra.logs.alertDetails.chartHistory.last30days": "過去30日間", - "xpack.infra.logs.alertDetails.explainLogRateSpikes.sectionTitle": "ログレートスパイクを説明", "xpack.infra.logs.alertDetails.explainLogSpikeTitle": "考えられる原因と修正方法", "xpack.infra.logs.alertDropdown.inlineLogViewCreateAlertContent": "インラインログビューではアラートの作成がサポートされていません", "xpack.infra.logs.alertDropdown.inlineLogViewCreateAlertTitle": "インラインログビュー", @@ -23269,13 +23263,13 @@ "xpack.ml.advancedSettings.enableAnomalyDetectionDefaultTimeRangeName": "異常検知結果の時間フィルターデフォルトを有効にする", "xpack.ml.aiops.changePointDetection.docTitle": "変化点検出", "xpack.ml.aiops.changePointDetectionBreadcrumbLabel": "変化点検出", - "xpack.ml.aiops.explainLogRateSpikes.docTitle": "ログレートスパイクを説明", - "xpack.ml.aiops.explainLogRateSpikesBreadcrumbLabel": "ログレートスパイクを説明", + "xpack.ml.aiops.logRateAnalysis.docTitle": "ログレートスパイクを説明", + "xpack.ml.aiops.logRateAnalysisBreadcrumbLabel": "ログレートスパイクを説明", "xpack.ml.aiops.logCategorization.docTitle": "ログパターン分析", "xpack.ml.aiops.logPatternAnalysisBreadcrumbLabel": "ログパターン分析", "xpack.ml.aiopsBreadcrumbLabel": "AIOps Labs", "xpack.ml.aiopsBreadcrumbs.changePointDetectionLabel": "変化点検出", - "xpack.ml.aiopsBreadcrumbs.explainLogRateSpikesLabel": "ログレートスパイクを説明", + "xpack.ml.aiopsBreadcrumbs.logRateAnalysisLabel": "ログレートスパイクを説明", "xpack.ml.aiopsBreadcrumbs.selectDataViewLabel": "データビューを選択", "xpack.ml.alertConditionValidation.title": "アラート条件には次の問題が含まれます。", "xpack.ml.alertContext.anomalyExplorerUrlDescription": "異常エクスプローラーを開くURL", @@ -24075,7 +24069,7 @@ "xpack.ml.deepLink.changePointDetection": "変化点検出", "xpack.ml.deepLink.dataFrameAnalytics": "データフレーム分析", "xpack.ml.deepLink.dataVisualizer": "データビジュアライザー", - "xpack.ml.deepLink.explainLogRateSpikes": "ログレートスパイクを説明", + "xpack.ml.deepLink.logRateAnalysis": "ログレートスパイクを説明", "xpack.ml.deepLink.fileUpload": "ファイルアップロード", "xpack.ml.deepLink.filterListsSettings": "フィルターリスト", "xpack.ml.deepLink.indexDataVisualizer": "インデックスデータビジュアライザー", @@ -24140,7 +24134,7 @@ "xpack.ml.embeddables.lensLayerFlyout.title": "異常検知ジョブの作成", "xpack.ml.entityFilter.addFilterTooltip": "フィルターを追加します", "xpack.ml.entityFilter.removeFilterTooltip": "フィルターを削除", - "xpack.ml.explainLogRateSpikes.pageHeader": "ログレートスパイクを説明", + "xpack.ml.logRateAnalysis.pageHeader": "ログレートスパイクを説明", "xpack.ml.explorer.addToDashboard.anomalyCharts.dashboardsTitle": "異常グラフをダッシュボードに追加", "xpack.ml.explorer.addToDashboard.anomalyCharts.maxSeriesToPlotLabel": "プロットする最大系列数", "xpack.ml.explorer.addToDashboard.cancelButtonLabel": "キャンセル", @@ -24762,7 +24756,7 @@ "xpack.ml.navMenu.dataFrameAnalyticsTabLinkText": "データフレーム分析", "xpack.ml.navMenu.dataViewDataVisualizerLinkText": "データビュー", "xpack.ml.navMenu.dataVisualizerTabLinkText": "データビジュアライザー", - "xpack.ml.navMenu.explainLogRateSpikesLinkText": "ログレートスパイクを説明", + "xpack.ml.navMenu.logRateAnalysisLinkText": "ログレートスパイクを説明", "xpack.ml.navMenu.fileDataVisualizerLinkText": "ファイル", "xpack.ml.navMenu.logCategorizationLinkText": "ログパターン分析", "xpack.ml.navMenu.memoryUsageText": "メモリー使用状況", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index b45d16fbafd74..1b13f2302f176 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -7173,11 +7173,11 @@ "xpack.aiops.categorizeFlyout.title": "{name} 的模式分析", "xpack.aiops.changePointDetection.cardinalityWarningMessage": "“{splitField}”字段基数为 {cardinality},这超出了 {cardinalityLimit} 的限制。仅分析前 {cardinalityLimit} 个分区(按文档计数排序)。", "xpack.aiops.dataViewNotBasedOnTimeSeriesWarning.title": "数据视图“{dataViewTitle}”并非基于时间序列。", - "xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldCandidates": "已识别 {fieldCandidatesCount, plural, other {# 个字段候选项}}。", - "xpack.aiops.explainLogRateSpikes.loadingState.identifiedFieldValuePairs": "已识别 {fieldValuePairsCount, plural, other {# 个重要的字段/值对}}。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupColumnTooltip": "显示多达 {maxItemCount} 个按唯一性和文档计数排序的组项目。展开行以查看所有字段/值对。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupItemsInfo": "正在显示 {valuesBadges} 个(共 {count} 个)项目。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupUniqueItemsInfo": "{count, plural, other {# 项}}对此组唯一。", + "xpack.aiops.logRateAnalysis.loadingState.identifiedFieldCandidates": "已识别 {fieldCandidatesCount, plural, other {# 个字段候选项}}。", + "xpack.aiops.logRateAnalysis.loadingState.identifiedFieldValuePairs": "已识别 {fieldValuePairsCount, plural, other {# 个重要的字段/值对}}。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupColumnTooltip": "显示多达 {maxItemCount} 个按唯一性和文档计数排序的组项目。展开行以查看所有字段/值对。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupItemsInfo": "正在显示 {valuesBadges} 个(共 {count} 个)项目。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupUniqueItemsInfo": "{count, plural, other {# 项}}对此组唯一。", "xpack.aiops.index.dataLoader.internalServerErrorMessage": "加载索引 {index} 中的数据时出错。{message}。请求可能已超时。请尝试使用较小的样例大小或缩小时间范围。", "xpack.aiops.index.dataViewWithoutMetricNotificationTitle": "数据视图“{dataViewTitle}”不包含任何指标字段。", "xpack.aiops.index.errorLoadingDataMessage": "加载索引 {index} 中的数据时出错。{message}。", @@ -7239,46 +7239,45 @@ "xpack.aiops.correlations.highImpactText": "高", "xpack.aiops.correlations.lowImpactText": "低", "xpack.aiops.correlations.mediumImpactText": "中", - "xpack.aiops.correlations.spikeAnalysisTableGroups.docCountLabel": "文档计数", "xpack.aiops.correlations.veryLowImpactText": "极低", "xpack.aiops.dataGrid.field.documentCountChart.seriesLabel": "文档计数", "xpack.aiops.dataGrid.field.documentCountChartSplit.seriesLabel": "其他文档计数", "xpack.aiops.documentCountChart.baselineBadgeLabel": "基线", "xpack.aiops.documentCountChart.deviationBadgeLabel": "偏差", - "xpack.aiops.explainLogRateSpikes.loadingState.doneMessage": "完成。", - "xpack.aiops.explainLogRateSpikes.loadingState.groupingResults": "正在将重要的字段/值对转换到组中。", - "xpack.aiops.explainLogRateSpikes.loadingState.loadingHistogramData": "正在加载直方图数据。", - "xpack.aiops.explainLogRateSpikes.loadingState.loadingIndexInformation": "正在加载索引信息。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.collapseAriaLabel": "折叠", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.docCountLabel": "文档计数", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.expandAriaLabel": "展开", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldNameLabel": "字段名称", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.fieldValueLabel": "字段值", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.impactLabel": "影响", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.impactLabelColumnTooltip": "字段对消息速率差异的影响水平。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.logRateColumnTooltip": "字段对消息速率差异的影响的视觉表示形式", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.logRateLabel": "日志速率", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.pValueColumnTooltip": "值的频率更改的意义;值越小表示变化越大;对此列排序会自动在文档计数列上进行二次排序。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.pValueLabel": "p-value", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTable.uniqueColumnTooltip": "此字段/值对只在该分组中出现", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.groupLabel": "组", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.impactLabelColumnTooltip": "组对消息速率差异的影响水平", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.logRateColumnTooltip": "组对消息速率差异的影响的视觉表示形式。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.logRateLabel": "日志速率", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueColumnTooltip": "值的频率更改的意义;值越小表示变化越大;对此列排序会自动在文档计数列上进行二次排序。", - "xpack.aiops.explainLogRateSpikes.spikeAnalysisTableGroups.pValueLabel": "p-value", - "xpack.aiops.explainLogRateSpikesPage.emptyPromptBody": "“解释日志速率峰值”功能会从统计上识别有助于达到日志速率峰值的重要字段/值组合。", - "xpack.aiops.explainLogRateSpikesPage.emptyPromptTitle": "单击直方图中的某个峰值可开始分析。", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterApplyButtonLabel": "应用", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterButtonLabel": "筛选字段", - "xpack.aiops.explainLogRateSpikesPage.fieldFilterHelpText": "取消选择非相关字段以将其从组中移除,然后单击“应用”按钮返回分组。 使用搜索栏筛选列表,然后通过以下操作选择/取消选择多个字段。", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.deselectAllFields": "取消选择所有字段", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.deselectAllSearchedFields": "取消选择已筛选字段", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.selectAllFields": "选择所有字段", - "xpack.aiops.explainLogRateSpikesPage.fieldSelector.selectAllSearchedFields": "选择已筛选字段", - "xpack.aiops.explainLogRateSpikesPage.noResultsPromptBody": "尝试调整基线和偏差时间范围,然后重新运行分析。如果仍然没有结果,可能没有具有统计意义的实体导致了该日志速率峰值。", - "xpack.aiops.explainLogRateSpikesPage.noResultsPromptTitle": "分析未返回任何结果。", - "xpack.aiops.explainLogRateSpikesPage.tryToContinueAnalysisButtonText": "尝试继续分析", + "xpack.aiops.logRateAnalysis.loadingState.doneMessage": "完成。", + "xpack.aiops.logRateAnalysis.loadingState.groupingResults": "正在将重要的字段/值对转换到组中。", + "xpack.aiops.logRateAnalysis.loadingState.loadingHistogramData": "正在加载直方图数据。", + "xpack.aiops.logRateAnalysis.loadingState.loadingIndexInformation": "正在加载索引信息。", + "xpack.aiops.logRateAnalysis.resultsTable.collapseAriaLabel": "折叠", + "xpack.aiops.logRateAnalysis.resultsTable.docCountLabel": "文档计数", + "xpack.aiops.logRateAnalysis.resultsTable.expandAriaLabel": "展开", + "xpack.aiops.logRateAnalysis.resultsTable.fieldNameLabel": "字段名称", + "xpack.aiops.logRateAnalysis.resultsTable.fieldValueLabel": "字段值", + "xpack.aiops.logRateAnalysis.resultsTable.impactLabel": "影响", + "xpack.aiops.logRateAnalysis.resultsTable.impactLabelColumnTooltip": "字段对消息速率差异的影响水平。", + "xpack.aiops.logRateAnalysis.resultsTable.logRateColumnTooltip": "字段对消息速率差异的影响的视觉表示形式", + "xpack.aiops.logRateAnalysis.resultsTable.logRateLabel": "日志速率", + "xpack.aiops.logRateAnalysis.resultsTable.pValueColumnTooltip": "值的频率更改的意义;值越小表示变化越大", + "xpack.aiops.logRateAnalysis.resultsTable.pValueLabel": "p-value", + "xpack.aiops.logRateAnalysis.resultsTable.uniqueColumnTooltip": "此字段/值对只在该分组中出现", + "xpack.aiops.logRateAnalysis.resultsTableGroups.groupLabel": "组", + "xpack.aiops.logRateAnalysis.resultsTableGroups.impactLabelColumnTooltip": "组对消息速率差异的影响水平", + "xpack.aiops.logRateAnalysis.resultsTableGroups.logRateColumnTooltip": "组对消息速率差异的影响的视觉表示形式。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.logRateLabel": "日志速率", + "xpack.aiops.logRateAnalysis.resultsTableGroups.pValueColumnTooltip": "值的频率更改的意义;值越小表示变化越大。", + "xpack.aiops.logRateAnalysis.resultsTableGroups.pValueLabel": "p-value", + "xpack.aiops.logRateAnalysis.page.emptyPromptBody": "“解释日志速率峰值”功能会从统计上识别有助于达到日志速率峰值的重要字段/值组合。", + "xpack.aiops.logRateAnalysis.page.emptyPromptTitle": "单击直方图中的某个峰值可开始分析。", + "xpack.aiops.logRateAnalysis.page.fieldFilterApplyButtonLabel": "应用", + "xpack.aiops.logRateAnalysis.page.fieldFilterButtonLabel": "筛选字段", + "xpack.aiops.logRateAnalysis.page.fieldFilterHelpText": "取消选择非相关字段以将其从组中移除,然后单击“应用”按钮返回分组。 使用搜索栏筛选列表,然后通过以下操作选择/取消选择多个字段。", + "xpack.aiops.logRateAnalysis.page.fieldSelector.deselectAllFields": "取消选择所有字段", + "xpack.aiops.logRateAnalysis.page.fieldSelector.deselectAllSearchedFields": "取消选择已筛选字段", + "xpack.aiops.logRateAnalysis.page.fieldSelector.selectAllFields": "选择所有字段", + "xpack.aiops.logRateAnalysis.page.fieldSelector.selectAllSearchedFields": "选择已筛选字段", + "xpack.aiops.logRateAnalysis.page.noResultsPromptBody": "尝试调整基线和偏差时间范围,然后重新运行分析。如果仍然没有结果,可能没有具有统计意义的实体导致了该日志速率峰值。", + "xpack.aiops.logRateAnalysis.page.noResultsPromptTitle": "分析未返回任何结果。", + "xpack.aiops.logRateAnalysis.page.tryToContinueAnalysisButtonText": "尝试继续分析", "xpack.aiops.fieldContextPopover.descriptionTooltipContent": "显示排名靠前字段值", "xpack.aiops.fieldContextPopover.notTopTenValueMessage": "选定的词未排名前 10", "xpack.aiops.fieldContextPopover.topFieldValuesAriaLabel": "显示排名靠前字段值", @@ -7311,7 +7310,6 @@ "xpack.aiops.logCategorization.randomSamplerSettingsPopUp.randomSamplerRowLabel": "随机采样", "xpack.aiops.logCategorization.runButton": "运行模式分析", "xpack.aiops.logCategorizationTimeSeriesWarning.description": "仅针对基于时间的索引运行日志模式分析。", - "xpack.aiops.logRateSpikesTimeSeriesWarning.description": "仅针对基于时间的索引运行日志速率峰值。", "xpack.aiops.miniHistogram.noDataLabel": "不可用", "xpack.aiops.progressAriaLabel": "进度", "xpack.aiops.rerunAnalysisButtonTitle": "运行分析", @@ -7319,23 +7317,20 @@ "xpack.aiops.resetLabel": "重置", "xpack.aiops.searchPanel.invalidSyntax": "语法无效", "xpack.aiops.searchPanel.queryBarPlaceholderText": "搜索……(例如,status:200 AND extension:\"PHP\")", - "xpack.aiops.spikeAnalysisGroupsTable.actionsColumnName": "操作", - "xpack.aiops.spikeAnalysisPage.documentCountStatsSplitGroupLabel": "选定的组", - "xpack.aiops.spikeAnalysisTable.actionsColumnName": "操作", - "xpack.aiops.spikeAnalysisTable.autoGeneratedDiscoverLinkErrorMessage": "无法链接到 Discover;此索引的数据视图不存在", - "xpack.aiops.spikeAnalysisTable.autoGeneratedLogPatternAnalysisLinkErrorMessage": "无法链接到日志模式分析;此索引的数据视图不存在", - "xpack.aiops.spikeAnalysisTable.discoverLocatorMissingErrorMessage": "未检测到 Discover 的定位器", - "xpack.aiops.spikeAnalysisTable.discoverNotEnabledErrorMessage": "Discover 未启用", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResults": "智能分组", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsHelpMessage": "对组唯一的项目将用星号 (*) 标注。", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsOff": "关闭", - "xpack.aiops.spikeAnalysisTable.groupedSwitchLabel.groupResultsOn": "开启", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardButtonLabel": "复制到剪贴板", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardGroupMessage": "将组项目作为 KQL 语法复制到剪贴板", - "xpack.aiops.spikeAnalysisTable.linksMenu.copyToClipboardSignificantTermMessage": "将字段/值对作为 KQL 语法复制到剪贴板", - "xpack.aiops.spikeAnalysisTable.linksMenu.viewInDiscover": "在 Discover 中查看", - "xpack.aiops.spikeAnalysisTable.linksMenu.viewInLogPatternAnalysis": "在日志模式分析中查看", - "xpack.aiops.spikeAnalysisTable.mlLocatorMissingErrorMessage": "未检测到用于日志模式分析的定位器", + "xpack.aiops.logRateAnalysis.page.documentCountStatsSplitGroupLabel": "选定的组", + "xpack.aiops.logRateAnalysis.resultsTable.actionsColumnName": "操作", + "xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedDiscoverLinkErrorMessage": "无法链接到 Discover;此索引的数据视图不存在", + "xpack.aiops.logRateAnalysis.resultsTable.autoGeneratedLogPatternAnalysisLinkErrorMessage": "无法链接到日志模式分析;此索引的数据视图不存在", + "xpack.aiops.logRateAnalysis.resultsTable.discoverLocatorMissingErrorMessage": "未检测到 Discover 的定位器", + "xpack.aiops.logRateAnalysis.resultsTable.discoverNotEnabledErrorMessage": "Discover 未启用", + "xpack.aiops.logRateAnalysis.resultsTable.groupedSwitchLabel.groupResults": "对结果分组", + "xpack.aiops.logRateAnalysis.resultsTable.groupedSwitchLabel.groupResultsHelpMessage": "对组唯一的项目将用星号 (*) 标注。", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardButtonLabel": "复制到剪贴板", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardGroupMessage": "将组项目作为 KQL 语法复制到剪贴板", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.copyToClipboardSignificantTermMessage": "将字段/值对作为 KQL 语法复制到剪贴板", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInDiscover": "在 Discover 中查看", + "xpack.aiops.logRateAnalysis.resultsTable.linksMenu.viewInLogPatternAnalysis": "在日志模式分析中查看", + "xpack.aiops.logRateAnalysis.resultsTable.mlLocatorMissingErrorMessage": "未检测到用于日志模式分析的定位器", "xpack.aiops.techPreviewBadge.label": "技术预览", "xpack.aiops.techPreviewBadge.tooltip": "此功能处于技术预览状态,在未来版本中可能会更改或完全移除。Elastic 将尽最大努力来修复任何问题,但处于技术预览状态的功能不受正式 GA 功能支持 SLA 的约束。", "xpack.alerting.alertNavigationRegistry.get.missingNavigationError": "在“{consumer}”内针对告警类型“{alertType}”的导航未注册。", @@ -19072,7 +19067,6 @@ "xpack.infra.logs.alertDetails.chartHistory.avgTimeToRecover": "恢复的平均时间", "xpack.infra.logs.alertDetails.chartHistory.chartTitle": "日志阈值告警历史记录", "xpack.infra.logs.alertDetails.chartHistory.last30days": "过去 30 天", - "xpack.infra.logs.alertDetails.explainLogRateSpikes.sectionTitle": "解释日志速率峰值", "xpack.infra.logs.alertDetails.explainLogSpikeTitle": "可能的原因和补救措施", "xpack.infra.logs.alertDropdown.inlineLogViewCreateAlertContent": "不支持通过内联日志视图创建告警", "xpack.infra.logs.alertDropdown.inlineLogViewCreateAlertTitle": "内联日志视图", @@ -23268,13 +23262,13 @@ "xpack.ml.advancedSettings.enableAnomalyDetectionDefaultTimeRangeName": "对异常检测结果启用时间筛选默认值", "xpack.ml.aiops.changePointDetection.docTitle": "更改点检测", "xpack.ml.aiops.changePointDetectionBreadcrumbLabel": "更改点检测", - "xpack.ml.aiops.explainLogRateSpikes.docTitle": "解释日志速率峰值", - "xpack.ml.aiops.explainLogRateSpikesBreadcrumbLabel": "解释日志速率峰值", + "xpack.ml.aiops.logRateAnalysis.docTitle": "解释日志速率峰值", + "xpack.ml.aiops.logRateAnalysisBreadcrumbLabel": "解释日志速率峰值", "xpack.ml.aiops.logCategorization.docTitle": "日志模式分析", "xpack.ml.aiops.logPatternAnalysisBreadcrumbLabel": "日志模式分析", "xpack.ml.aiopsBreadcrumbLabel": "AIOps 实验室", "xpack.ml.aiopsBreadcrumbs.changePointDetectionLabel": "更改点检测", - "xpack.ml.aiopsBreadcrumbs.explainLogRateSpikesLabel": "解释日志速率峰值", + "xpack.ml.aiopsBreadcrumbs.logRateAnalysisLabel": "解释日志速率峰值", "xpack.ml.aiopsBreadcrumbs.selectDataViewLabel": "选择数据视图", "xpack.ml.alertConditionValidation.title": "告警条件包含以下问题:", "xpack.ml.alertContext.anomalyExplorerUrlDescription": "要在 Anomaly Explorer 中打开的 URL", @@ -24074,7 +24068,7 @@ "xpack.ml.deepLink.changePointDetection": "更改点检测", "xpack.ml.deepLink.dataFrameAnalytics": "数据帧分析", "xpack.ml.deepLink.dataVisualizer": "数据可视化工具", - "xpack.ml.deepLink.explainLogRateSpikes": "解释日志速率峰值", + "xpack.ml.deepLink.logRateAnalysis": "解释日志速率峰值", "xpack.ml.deepLink.fileUpload": "文件上传", "xpack.ml.deepLink.filterListsSettings": "筛选列表", "xpack.ml.deepLink.indexDataVisualizer": "索引数据可视化工具", @@ -24139,7 +24133,7 @@ "xpack.ml.embeddables.lensLayerFlyout.title": "创建异常检测作业", "xpack.ml.entityFilter.addFilterTooltip": "添加筛选", "xpack.ml.entityFilter.removeFilterTooltip": "移除筛选", - "xpack.ml.explainLogRateSpikes.pageHeader": "解释日志速率峰值", + "xpack.ml.logRateAnalysis.pageHeader": "解释日志速率峰值", "xpack.ml.explorer.addToDashboard.anomalyCharts.dashboardsTitle": "将异常图表添加到仪表板", "xpack.ml.explorer.addToDashboard.anomalyCharts.maxSeriesToPlotLabel": "要绘制的最大序列数目", "xpack.ml.explorer.addToDashboard.cancelButtonLabel": "取消", @@ -24761,7 +24755,7 @@ "xpack.ml.navMenu.dataFrameAnalyticsTabLinkText": "数据帧分析", "xpack.ml.navMenu.dataViewDataVisualizerLinkText": "数据视图", "xpack.ml.navMenu.dataVisualizerTabLinkText": "数据可视化工具", - "xpack.ml.navMenu.explainLogRateSpikesLinkText": "解释日志速率峰值", + "xpack.ml.navMenu.logRateAnalysisLinkText": "解释日志速率峰值", "xpack.ml.navMenu.fileDataVisualizerLinkText": "文件", "xpack.ml.navMenu.logCategorizationLinkText": "日志模式分析", "xpack.ml.navMenu.memoryUsageText": "内存利用率", diff --git a/x-pack/test/api_integration/apis/aiops/index.ts b/x-pack/test/api_integration/apis/aiops/index.ts index 238484c644a28..143d532d73e8e 100644 --- a/x-pack/test/api_integration/apis/aiops/index.ts +++ b/x-pack/test/api_integration/apis/aiops/index.ts @@ -5,18 +5,14 @@ * 2.0. */ -import { AIOPS_ENABLED } from '@kbn/aiops-plugin/common'; - import type { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { describe('AIOps', function () { this.tags(['aiops']); - if (AIOPS_ENABLED) { - loadTestFile(require.resolve('./explain_log_rate_spikes_full_analysis')); - loadTestFile(require.resolve('./explain_log_rate_spikes_groups_only')); - loadTestFile(require.resolve('./explain_log_rate_spikes_no_index')); - } + loadTestFile(require.resolve('./log_rate_analysis_full_analysis')); + loadTestFile(require.resolve('./log_rate_analysis_groups_only')); + loadTestFile(require.resolve('./log_rate_analysis_no_index')); }); } diff --git a/x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_full_analysis.ts b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_full_analysis.ts similarity index 91% rename from x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_full_analysis.ts rename to x-pack/test/api_integration/apis/aiops/log_rate_analysis_full_analysis.ts index 2bbb5ea8e133d..5ac7474324c50 100644 --- a/x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_full_analysis.ts +++ b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_full_analysis.ts @@ -10,13 +10,13 @@ import fetch from 'node-fetch'; import { format as formatUrl } from 'url'; import expect from '@kbn/expect'; -import type { ApiExplainLogRateSpikes } from '@kbn/aiops-plugin/common/api'; +import type { AiopsApiLogRateAnalysis } from '@kbn/aiops-plugin/common/api'; import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { parseStream } from './parse_stream'; -import { explainLogRateSpikesTestData } from './test_data'; +import { logRateAnalysisTestData } from './test_data'; export default ({ getService }: FtrProviderContext) => { const aiops = getService('aiops'); @@ -25,14 +25,14 @@ export default ({ getService }: FtrProviderContext) => { const kibanaServerUrl = formatUrl(config.get('servers.kibana')); const esArchiver = getService('esArchiver'); - describe('POST /internal/aiops/explain_log_rate_spikes - full analysis', () => { - explainLogRateSpikesTestData.forEach((testData) => { + describe('POST /internal/aiops/log_rate_analysis - full analysis', () => { + logRateAnalysisTestData.forEach((testData) => { describe(`with ${testData.testName}`, () => { before(async () => { if (testData.esArchive) { await esArchiver.loadIfNeeded(testData.esArchive); } else if (testData.dataGenerator) { - await aiops.explainLogRateSpikesDataGenerator.generateData(testData.dataGenerator); + await aiops.logRateAnalysisDataGenerator.generateData(testData.dataGenerator); } }); @@ -40,9 +40,7 @@ export default ({ getService }: FtrProviderContext) => { if (testData.esArchive) { await esArchiver.unload(testData.esArchive); } else if (testData.dataGenerator) { - await aiops.explainLogRateSpikesDataGenerator.removeGeneratedData( - testData.dataGenerator - ); + await aiops.logRateAnalysisDataGenerator.removeGeneratedData(testData.dataGenerator); } }); @@ -100,9 +98,9 @@ export default ({ getService }: FtrProviderContext) => { }); } - async function requestWithoutStreaming(body: ApiExplainLogRateSpikes['body']) { + async function requestWithoutStreaming(body: AiopsApiLogRateAnalysis['body']) { const resp = await supertest - .post(`/internal/aiops/explain_log_rate_spikes`) + .post(`/internal/aiops/log_rate_analysis`) .set('kbn-xsrf', 'kibana') .set(ELASTIC_HTTP_VERSION_HEADER, '1') .send(body) @@ -157,8 +155,8 @@ export default ({ getService }: FtrProviderContext) => { }); }); - async function requestWithStreaming(body: ApiExplainLogRateSpikes['body']) { - const resp = await fetch(`${kibanaServerUrl}/internal/aiops/explain_log_rate_spikes`, { + async function requestWithStreaming(body: AiopsApiLogRateAnalysis['body']) { + const resp = await fetch(`${kibanaServerUrl}/internal/aiops/log_rate_analysis`, { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_groups_only.ts b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts similarity index 91% rename from x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_groups_only.ts rename to x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts index 41c6df0287254..4bdd0dc0f8a94 100644 --- a/x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_groups_only.ts +++ b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_groups_only.ts @@ -10,13 +10,13 @@ import fetch from 'node-fetch'; import { format as formatUrl } from 'url'; import expect from '@kbn/expect'; -import type { ApiExplainLogRateSpikes } from '@kbn/aiops-plugin/common/api'; +import type { AiopsApiLogRateAnalysis } from '@kbn/aiops-plugin/common/api'; import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { parseStream } from './parse_stream'; -import { explainLogRateSpikesTestData } from './test_data'; +import { logRateAnalysisTestData } from './test_data'; export default ({ getService }: FtrProviderContext) => { const aiops = getService('aiops'); @@ -25,8 +25,8 @@ export default ({ getService }: FtrProviderContext) => { const kibanaServerUrl = formatUrl(config.get('servers.kibana')); const esArchiver = getService('esArchiver'); - describe('POST /internal/aiops/explain_log_rate_spikes - groups only', () => { - explainLogRateSpikesTestData.forEach((testData) => { + describe('POST /internal/aiops/log_rate_analysis - groups only', () => { + logRateAnalysisTestData.forEach((testData) => { const overrides = { loaded: 0, remainingFieldCandidates: [], @@ -39,7 +39,7 @@ export default ({ getService }: FtrProviderContext) => { if (testData.esArchive) { await esArchiver.loadIfNeeded(testData.esArchive); } else if (testData.dataGenerator) { - await aiops.explainLogRateSpikesDataGenerator.generateData(testData.dataGenerator); + await aiops.logRateAnalysisDataGenerator.generateData(testData.dataGenerator); } }); @@ -47,9 +47,7 @@ export default ({ getService }: FtrProviderContext) => { if (testData.esArchive) { await esArchiver.unload(testData.esArchive); } else if (testData.dataGenerator) { - await aiops.explainLogRateSpikesDataGenerator.removeGeneratedData( - testData.dataGenerator - ); + await aiops.logRateAnalysisDataGenerator.removeGeneratedData(testData.dataGenerator); } }); @@ -91,9 +89,9 @@ export default ({ getService }: FtrProviderContext) => { }); } - async function requestWithoutStreaming(body: ApiExplainLogRateSpikes['body']) { + async function requestWithoutStreaming(body: AiopsApiLogRateAnalysis['body']) { const resp = await supertest - .post(`/internal/aiops/explain_log_rate_spikes`) + .post(`/internal/aiops/log_rate_analysis`) .set('kbn-xsrf', 'kibana') .set(ELASTIC_HTTP_VERSION_HEADER, '1') .send(body) @@ -153,8 +151,8 @@ export default ({ getService }: FtrProviderContext) => { }); }); - async function requestWithStreaming(body: ApiExplainLogRateSpikes['body']) { - const resp = await fetch(`${kibanaServerUrl}/internal/aiops/explain_log_rate_spikes`, { + async function requestWithStreaming(body: AiopsApiLogRateAnalysis['body']) { + const resp = await fetch(`${kibanaServerUrl}/internal/aiops/log_rate_analysis`, { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_no_index.ts b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_no_index.ts similarity index 88% rename from x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_no_index.ts rename to x-pack/test/api_integration/apis/aiops/log_rate_analysis_no_index.ts index c34e3ee5884aa..088db66e082bd 100644 --- a/x-pack/test/api_integration/apis/aiops/explain_log_rate_spikes_no_index.ts +++ b/x-pack/test/api_integration/apis/aiops/log_rate_analysis_no_index.ts @@ -10,17 +10,17 @@ import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; -import { explainLogRateSpikesTestData } from './test_data'; +import { logRateAnalysisTestData } from './test_data'; export default ({ getService }: FtrProviderContext) => { const supertest = getService('supertest'); - describe('POST /internal/aiops/explain_log_rate_spikes - no index', () => { - explainLogRateSpikesTestData.forEach((testData) => { + describe('POST /internal/aiops/log_rate_analysis - no index', () => { + logRateAnalysisTestData.forEach((testData) => { describe(`with ${testData.testName}`, () => { it('should return an error for non existing index without streaming', async () => { const resp = await supertest - .post(`/internal/aiops/explain_log_rate_spikes`) + .post(`/internal/aiops/log_rate_analysis`) .set('kbn-xsrf', 'kibana') .set(ELASTIC_HTTP_VERSION_HEADER, '1') .send({ diff --git a/x-pack/test/api_integration/apis/aiops/test_data.ts b/x-pack/test/api_integration/apis/aiops/test_data.ts index b2bf31cded84a..e9f42a002ac49 100644 --- a/x-pack/test/api_integration/apis/aiops/test_data.ts +++ b/x-pack/test/api_integration/apis/aiops/test_data.ts @@ -13,7 +13,7 @@ import { finalSignificantTermGroups as artificialLogsSignificantTermGroups } fro import type { TestData } from './types'; -export const explainLogRateSpikesTestData: TestData[] = [ +export const logRateAnalysisTestData: TestData[] = [ { testName: 'ecommerce', esArchive: 'x-pack/test/functional/es_archives/ml/ecommerce', diff --git a/x-pack/test/api_integration/apis/aiops/types.ts b/x-pack/test/api_integration/apis/aiops/types.ts index 1cdd173f183f4..67ef9ea19a9da 100644 --- a/x-pack/test/api_integration/apis/aiops/types.ts +++ b/x-pack/test/api_integration/apis/aiops/types.ts @@ -5,14 +5,14 @@ * 2.0. */ -import type { ApiExplainLogRateSpikes } from '@kbn/aiops-plugin/common/api'; +import type { AiopsApiLogRateAnalysis } from '@kbn/aiops-plugin/common/api'; import type { SignificantTerm, SignificantTermGroup } from '@kbn/ml-agg-utils'; export interface TestData { testName: string; esArchive?: string; dataGenerator?: string; - requestBody: ApiExplainLogRateSpikes['body']; + requestBody: AiopsApiLogRateAnalysis['body']; expected: { chunksLength: number; chunksLengthGroupOnly: number; diff --git a/x-pack/test/api_integration/services/aiops.ts b/x-pack/test/api_integration/services/aiops.ts index 02c597e1dc709..a7e6a7cc98304 100644 --- a/x-pack/test/api_integration/services/aiops.ts +++ b/x-pack/test/api_integration/services/aiops.ts @@ -7,12 +7,12 @@ import { FtrProviderContext } from '../../functional/ftr_provider_context'; -import { ExplainLogRateSpikesDataGeneratorProvider } from '../../functional/services/aiops/explain_log_rate_spikes_data_generator'; +import { LogRateAnalysisDataGeneratorProvider } from '../../functional/services/aiops/log_rate_analysis_data_generator'; export function AiopsProvider(context: FtrProviderContext) { - const explainLogRateSpikesDataGenerator = ExplainLogRateSpikesDataGeneratorProvider(context); + const logRateAnalysisDataGenerator = LogRateAnalysisDataGeneratorProvider(context); return { - explainLogRateSpikesDataGenerator, + logRateAnalysisDataGenerator, }; } diff --git a/x-pack/test/api_integration_basic/apis/aiops/permissions.ts b/x-pack/test/api_integration_basic/apis/aiops/permissions.ts index b8d74f36c7c2b..3a42d1e99d1a6 100644 --- a/x-pack/test/api_integration_basic/apis/aiops/permissions.ts +++ b/x-pack/test/api_integration_basic/apis/aiops/permissions.ts @@ -11,7 +11,7 @@ import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; import expect from '@kbn/expect'; -import type { ApiExplainLogRateSpikes } from '@kbn/aiops-plugin/common/api'; +import type { AiopsApiLogRateAnalysis } from '@kbn/aiops-plugin/common/api'; import type { FtrProviderContext } from '../../ftr_provider_context'; @@ -20,7 +20,7 @@ export default ({ getService }: FtrProviderContext) => { const config = getService('config'); const kibanaServerUrl = formatUrl(config.get('servers.kibana')); - const requestBody: ApiExplainLogRateSpikes['body'] = { + const requestBody: AiopsApiLogRateAnalysis['body'] = { baselineMax: 1561719083292, baselineMin: 1560954147006, deviationMax: 1562254538692, @@ -32,10 +32,10 @@ export default ({ getService }: FtrProviderContext) => { timeFieldName: 'order_date', }; - describe('POST /internal/aiops/explain_log_rate_spikes', () => { + describe('POST /internal/aiops/log_rate_analysis', () => { it('should return permission denied without streaming', async () => { await supertest - .post(`/internal/aiops/explain_log_rate_spikes`) + .post(`/internal/aiops/log_rate_analysis`) .set('kbn-xsrf', 'kibana') .set(ELASTIC_HTTP_VERSION_HEADER, '1') .send(requestBody) @@ -43,7 +43,7 @@ export default ({ getService }: FtrProviderContext) => { }); it('should return permission denied with streaming', async () => { - const response = await fetch(`${kibanaServerUrl}/internal/aiops/explain_log_rate_spikes`, { + const response = await fetch(`${kibanaServerUrl}/internal/aiops/log_rate_analysis`, { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/x-pack/test/functional/apps/aiops/index.ts b/x-pack/test/functional/apps/aiops/index.ts index 5f78542b6c93d..0326a2f80b082 100644 --- a/x-pack/test/functional/apps/aiops/index.ts +++ b/x-pack/test/functional/apps/aiops/index.ts @@ -8,7 +8,7 @@ import type { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService, loadTestFile }: FtrProviderContext) { - // aiops / Explain Log Rate Spikes lives in the ML UI so we need some related services. + // AIOps / Log Rate Analysis lives in the ML UI so we need some related services. const ml = getService('ml'); describe('aiops', function () { @@ -29,7 +29,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { await ml.testResources.resetKibanaTimeZone(); }); - loadTestFile(require.resolve('./explain_log_rate_spikes')); + loadTestFile(require.resolve('./log_rate_analysis')); loadTestFile(require.resolve('./change_point_detection')); loadTestFile(require.resolve('./log_pattern_analysis')); loadTestFile(require.resolve('./log_pattern_analysis_in_discover')); diff --git a/x-pack/test/functional/apps/aiops/explain_log_rate_spikes.ts b/x-pack/test/functional/apps/aiops/log_rate_analysis.ts similarity index 62% rename from x-pack/test/functional/apps/aiops/explain_log_rate_spikes.ts rename to x-pack/test/functional/apps/aiops/log_rate_analysis.ts index e4fbf5fa647bd..512e1914ccffe 100644 --- a/x-pack/test/functional/apps/aiops/explain_log_rate_spikes.ts +++ b/x-pack/test/functional/apps/aiops/log_rate_analysis.ts @@ -11,51 +11,47 @@ import expect from '@kbn/expect'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { isTestDataExpectedWithSampleProbability, type TestData } from './types'; -import { explainLogRateSpikesTestData } from './test_data'; +import { logRateAnalysisTestData } from './test_data'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const PageObjects = getPageObjects(['common', 'console', 'header', 'home', 'security']); const elasticChart = getService('elasticChart'); const aiops = getService('aiops'); - // aiops / Explain Log Rate Spikes lives in the ML UI so we need some related services. + // AIOps / Log Rate Analysis lives in the ML UI so we need some related services. const ml = getService('ml'); function runTests(testData: TestData) { - it(`${testData.suiteTitle} loads the source data in explain log rate spikes`, async () => { + it(`${testData.suiteTitle} loads the source data in log rate analysis`, async () => { await elasticChart.setNewChartUiDebugFlag(true); await ml.testExecution.logTestStep( `${testData.suiteTitle} loads the saved search selection page` ); - await aiops.explainLogRateSpikesPage.navigateToIndexPatternSelection(); + await aiops.logRateAnalysisPage.navigateToIndexPatternSelection(); - await ml.testExecution.logTestStep( - `${testData.suiteTitle} loads the explain log rate spikes page` - ); - await ml.jobSourceSelection.selectSourceForExplainLogRateSpikes( - testData.sourceIndexOrSavedSearch - ); + await ml.testExecution.logTestStep(`${testData.suiteTitle} loads the log rate analysis page`); + await ml.jobSourceSelection.selectSourceForLogRateAnalysis(testData.sourceIndexOrSavedSearch); }); it(`${testData.suiteTitle} displays index details`, async () => { await ml.testExecution.logTestStep(`${testData.suiteTitle} displays the time range step`); - await aiops.explainLogRateSpikesPage.assertTimeRangeSelectorSectionExists(); + await aiops.logRateAnalysisPage.assertTimeRangeSelectorSectionExists(); await ml.testExecution.logTestStep(`${testData.suiteTitle} loads data for full time range`); if (testData.query) { - await aiops.explainLogRateSpikesPage.setQueryInput(testData.query); + await aiops.logRateAnalysisPage.setQueryInput(testData.query); } - await aiops.explainLogRateSpikesPage.clickUseFullDataButton( + await aiops.logRateAnalysisPage.clickUseFullDataButton( testData.expected.totalDocCountFormatted ); if (isTestDataExpectedWithSampleProbability(testData.expected)) { - await aiops.explainLogRateSpikesPage.assertSamplingProbability( + await aiops.logRateAnalysisPage.assertSamplingProbability( testData.expected.sampleProbabilityFormatted ); } else { - await aiops.explainLogRateSpikesPage.assertSamplingProbabilityMissing(); + await aiops.logRateAnalysisPage.assertSamplingProbabilityMissing(); } await PageObjects.header.waitUntilLoadingHasFinished(); @@ -63,46 +59,47 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await ml.testExecution.logTestStep( `${testData.suiteTitle} displays elements in the doc count panel correctly` ); - await aiops.explainLogRateSpikesPage.assertTotalDocCountHeaderExists(); - await aiops.explainLogRateSpikesPage.assertTotalDocCountChartExists(); + await aiops.logRateAnalysisPage.assertTotalDocCountHeaderExists(); + await aiops.logRateAnalysisPage.assertTotalDocCountChartExists(); await ml.testExecution.logTestStep( `${testData.suiteTitle} displays elements in the page correctly` ); - await aiops.explainLogRateSpikesPage.assertSearchPanelExists(); + await aiops.logRateAnalysisPage.assertSearchPanelExists(); await ml.testExecution.logTestStep('displays empty prompt'); - await aiops.explainLogRateSpikesPage.assertNoWindowParametersEmptyPromptExists(); + await aiops.logRateAnalysisPage.assertNoWindowParametersEmptyPromptExists(); await ml.testExecution.logTestStep('clicks the document count chart to start analysis'); - await aiops.explainLogRateSpikesPage.clickDocumentCountChart(testData.chartClickCoordinates); - await aiops.explainLogRateSpikesPage.assertAnalysisSectionExists(); + await aiops.logRateAnalysisPage.clickDocumentCountChart(testData.chartClickCoordinates); + await aiops.logRateAnalysisPage.assertAnalysisSectionExists(); if (testData.brushDeviationTargetTimestamp) { await ml.testExecution.logTestStep('displays the no results found prompt'); - await aiops.explainLogRateSpikesPage.assertNoResultsFoundEmptyPromptExists(); + await aiops.logRateAnalysisPage.assertNoResultsFoundEmptyPromptExists(); await ml.testExecution.logTestStep('adjusts the brushes to get analysis results'); - await aiops.explainLogRateSpikesPage.assertRerunAnalysisButtonExists(false); + await aiops.logRateAnalysisPage.assertRerunAnalysisButtonExists(false); // Get the current width of the deviation brush for later comparison. - const brushSelectionWidthBefore = - await aiops.explainLogRateSpikesPage.getBrushSelectionWidth('aiopsBrushDeviation'); + const brushSelectionWidthBefore = await aiops.logRateAnalysisPage.getBrushSelectionWidth( + 'aiopsBrushDeviation' + ); // Get the px values for the timestamp we want to move the brush to. - const { targetPx, intervalPx } = await aiops.explainLogRateSpikesPage.getPxForTimestamp( + const { targetPx, intervalPx } = await aiops.logRateAnalysisPage.getPxForTimestamp( testData.brushDeviationTargetTimestamp ); // Adjust the right brush handle - await aiops.explainLogRateSpikesPage.adjustBrushHandler( + await aiops.logRateAnalysisPage.adjustBrushHandler( 'aiopsBrushDeviation', 'handle--e', targetPx + intervalPx * testData.brushIntervalFactor ); // Adjust the left brush handle - await aiops.explainLogRateSpikesPage.adjustBrushHandler( + await aiops.logRateAnalysisPage.adjustBrushHandler( 'aiopsBrushDeviation', 'handle--w', targetPx - intervalPx * (testData.brushIntervalFactor - 1) @@ -110,20 +107,19 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { if (testData.brushBaselineTargetTimestamp) { // Get the px values for the timestamp we want to move the brush to. - const { targetPx: targetBaselinePx } = - await aiops.explainLogRateSpikesPage.getPxForTimestamp( - testData.brushBaselineTargetTimestamp - ); + const { targetPx: targetBaselinePx } = await aiops.logRateAnalysisPage.getPxForTimestamp( + testData.brushBaselineTargetTimestamp + ); // Adjust the right brush handle - await aiops.explainLogRateSpikesPage.adjustBrushHandler( + await aiops.logRateAnalysisPage.adjustBrushHandler( 'aiopsBrushBaseline', 'handle--e', targetBaselinePx + intervalPx * testData.brushIntervalFactor ); // Adjust the left brush handle - await aiops.explainLogRateSpikesPage.adjustBrushHandler( + await aiops.logRateAnalysisPage.adjustBrushHandler( 'aiopsBrushBaseline', 'handle--w', targetBaselinePx - intervalPx * (testData.brushIntervalFactor - 1) @@ -131,8 +127,9 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { } // Get the new brush selection width for later comparison. - const brushSelectionWidthAfter = - await aiops.explainLogRateSpikesPage.getBrushSelectionWidth('aiopsBrushDeviation'); + const brushSelectionWidthAfter = await aiops.logRateAnalysisPage.getBrushSelectionWidth( + 'aiopsBrushDeviation' + ); // Assert the adjusted brush: The selection width should have changed and // we test if the selection is smaller than two bucket intervals. @@ -143,65 +140,65 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { intervalPx * 2 * testData.brushIntervalFactor ); - await aiops.explainLogRateSpikesPage.assertRerunAnalysisButtonExists(true); + await aiops.logRateAnalysisPage.assertRerunAnalysisButtonExists(true); await ml.testExecution.logTestStep('rerun the analysis with adjusted settings'); - await aiops.explainLogRateSpikesPage.clickRerunAnalysisButton(true); + await aiops.logRateAnalysisPage.clickRerunAnalysisButton(true); } - await aiops.explainLogRateSpikesPage.assertAnalysisComplete(); + await aiops.logRateAnalysisPage.assertAnalysisComplete(); // The group switch should be disabled by default - await aiops.explainLogRateSpikesPage.assertSpikeAnalysisGroupSwitchExists(false); + await aiops.logRateAnalysisPage.assertLogRateAnalysisResultsGroupSwitchExists(false); if (!isTestDataExpectedWithSampleProbability(testData.expected)) { // Enabled grouping - await aiops.explainLogRateSpikesPage.clickSpikeAnalysisGroupSwitchOn(); + await aiops.logRateAnalysisPage.clickLogRateAnalysisResultsGroupSwitchOn(); - await aiops.explainLogRateSpikesAnalysisGroupsTable.assertSpikeAnalysisTableExists(); + await aiops.logRateAnalysisResultsGroupsTable.assertLogRateAnalysisResultsTableExists(); const analysisGroupsTable = - await aiops.explainLogRateSpikesAnalysisGroupsTable.parseAnalysisTable(); + await aiops.logRateAnalysisResultsGroupsTable.parseAnalysisTable(); expect(orderBy(analysisGroupsTable, 'group')).to.be.eql( orderBy(testData.expected.analysisGroupsTable, 'group') ); await ml.testExecution.logTestStep('expand table row'); - await aiops.explainLogRateSpikesAnalysisGroupsTable.assertExpandRowButtonExists(); - await aiops.explainLogRateSpikesAnalysisGroupsTable.expandRow(); + await aiops.logRateAnalysisResultsGroupsTable.assertExpandRowButtonExists(); + await aiops.logRateAnalysisResultsGroupsTable.expandRow(); if (!isTestDataExpectedWithSampleProbability(testData.expected)) { - const analysisTable = await aiops.explainLogRateSpikesAnalysisTable.parseAnalysisTable(); + const analysisTable = await aiops.logRateAnalysisResultsTable.parseAnalysisTable(); expect(orderBy(analysisTable, ['fieldName', 'fieldValue'])).to.be.eql( orderBy(testData.expected.analysisTable, ['fieldName', 'fieldValue']) ); } await ml.testExecution.logTestStep('open the field filter'); - await aiops.explainLogRateSpikesPage.assertFieldFilterPopoverButtonExists(false); - await aiops.explainLogRateSpikesPage.clickFieldFilterPopoverButton(true); - await aiops.explainLogRateSpikesPage.assertFieldSelectorFieldNameList( + await aiops.logRateAnalysisPage.assertFieldFilterPopoverButtonExists(false); + await aiops.logRateAnalysisPage.clickFieldFilterPopoverButton(true); + await aiops.logRateAnalysisPage.assertFieldSelectorFieldNameList( testData.expected.fieldSelectorPopover ); await ml.testExecution.logTestStep('filter fields'); - await aiops.explainLogRateSpikesPage.setFieldSelectorSearch(testData.fieldSelectorSearch); - await aiops.explainLogRateSpikesPage.assertFieldSelectorFieldNameList([ + await aiops.logRateAnalysisPage.setFieldSelectorSearch(testData.fieldSelectorSearch); + await aiops.logRateAnalysisPage.assertFieldSelectorFieldNameList([ testData.fieldSelectorSearch, ]); - await aiops.explainLogRateSpikesPage.clickFieldSelectorDisableAllSelectedButton(); - await aiops.explainLogRateSpikesPage.assertFieldFilterApplyButtonExists( + await aiops.logRateAnalysisPage.clickFieldSelectorDisableAllSelectedButton(); + await aiops.logRateAnalysisPage.assertFieldFilterApplyButtonExists( !testData.fieldSelectorApplyAvailable ); if (testData.fieldSelectorApplyAvailable) { await ml.testExecution.logTestStep('regroup results'); - await aiops.explainLogRateSpikesPage.clickFieldFilterApplyButton(); + await aiops.logRateAnalysisPage.clickFieldFilterApplyButton(); if (!isTestDataExpectedWithSampleProbability(testData.expected)) { const filteredAnalysisGroupsTable = - await aiops.explainLogRateSpikesAnalysisGroupsTable.parseAnalysisTable(); + await aiops.logRateAnalysisResultsGroupsTable.parseAnalysisTable(); expect(orderBy(filteredAnalysisGroupsTable, 'group')).to.be.eql( orderBy(testData.expected.filteredAnalysisGroupsTable, 'group') ); @@ -210,12 +207,12 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { if (testData.action !== undefined) { await ml.testExecution.logTestStep('check all table row actions are present'); - await aiops.explainLogRateSpikesAnalysisGroupsTable.assertRowActions( + await aiops.logRateAnalysisResultsGroupsTable.assertRowActions( testData.action.tableRowId ); await ml.testExecution.logTestStep('click log pattern analysis action'); - await aiops.explainLogRateSpikesAnalysisGroupsTable.clickRowAction( + await aiops.logRateAnalysisResultsGroupsTable.clickRowAction( testData.action.tableRowId, testData.action.type ); @@ -231,11 +228,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }); } - describe('explain log rate spikes', async function () { - for (const testData of explainLogRateSpikesTestData) { + describe('log rate analysis', async function () { + for (const testData of logRateAnalysisTestData) { describe(`with '${testData.sourceIndexOrSavedSearch}'`, function () { before(async () => { - await aiops.explainLogRateSpikesDataGenerator.generateData(testData.dataGenerator); + await aiops.logRateAnalysisDataGenerator.generateData(testData.dataGenerator); await ml.testResources.createIndexPatternIfNeeded( testData.sourceIndexOrSavedSearch, @@ -265,10 +262,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { if (testData.dataGenerator !== 'kibana_sample_data_logs') { await ml.testResources.deleteIndexPatternByTitle(testData.sourceIndexOrSavedSearch); } - await aiops.explainLogRateSpikesDataGenerator.removeGeneratedData(testData.dataGenerator); + await aiops.logRateAnalysisDataGenerator.removeGeneratedData(testData.dataGenerator); }); - it(`${testData.suiteTitle} loads the explain log rate spikes page`, async () => { + it(`${testData.suiteTitle} loads the log rate analysis page`, async () => { // Start navigation from the base of the ML app. await ml.navigation.navigateToMl(); await elasticChart.setNewChartUiDebugFlag(true); diff --git a/x-pack/test/functional/apps/aiops/test_data.ts b/x-pack/test/functional/apps/aiops/test_data.ts index 6a73f4a486322..4f2573c362933 100644 --- a/x-pack/test/functional/apps/aiops/test_data.ts +++ b/x-pack/test/functional/apps/aiops/test_data.ts @@ -226,7 +226,7 @@ export const artificialLogDataViewTestData: TestData = { }, }; -export const explainLogRateSpikesTestData: TestData[] = [ +export const logRateAnalysisTestData: TestData[] = [ kibanaLogsDataViewTestData, farequoteDataViewTestData, farequoteDataViewTestDataWithQuery, diff --git a/x-pack/test/functional/services/aiops/index.ts b/x-pack/test/functional/services/aiops/index.ts index 6810c385f3cb5..71de8c397c073 100644 --- a/x-pack/test/functional/services/aiops/index.ts +++ b/x-pack/test/functional/services/aiops/index.ts @@ -7,20 +7,19 @@ import type { FtrProviderContext } from '../../ftr_provider_context'; -import { ExplainLogRateSpikesPageProvider } from './explain_log_rate_spikes_page'; -import { ExplainLogRateSpikesAnalysisTableProvider } from './explain_log_rate_spikes_analysis_table'; -import { ExplainLogRateSpikesAnalysisGroupsTableProvider } from './explain_log_rate_spikes_analysis_groups_table'; -import { ExplainLogRateSpikesDataGeneratorProvider } from './explain_log_rate_spikes_data_generator'; +import { LogRateAnalysisPageProvider } from './log_rate_analysis_page'; +import { LogRateAnalysisResultsTableProvider } from './log_rate_analysis_results_table'; +import { LogRateAnalysisResultsGroupsTableProvider } from './log_rate_analysis_results_groups_table'; +import { LogRateAnalysisDataGeneratorProvider } from './log_rate_analysis_data_generator'; import { LogPatternAnalysisPageProvider } from './log_pattern_analysis_page'; import { ChangePointDetectionPageProvider } from './change_point_detection_page'; import { MlTableServiceProvider } from '../ml/common_table_service'; export function AiopsProvider(context: FtrProviderContext) { - const explainLogRateSpikesPage = ExplainLogRateSpikesPageProvider(context); - const explainLogRateSpikesAnalysisTable = ExplainLogRateSpikesAnalysisTableProvider(context); - const explainLogRateSpikesAnalysisGroupsTable = - ExplainLogRateSpikesAnalysisGroupsTableProvider(context); - const explainLogRateSpikesDataGenerator = ExplainLogRateSpikesDataGeneratorProvider(context); + const logRateAnalysisPage = LogRateAnalysisPageProvider(context); + const logRateAnalysisResultsTable = LogRateAnalysisResultsTableProvider(context); + const logRateAnalysisResultsGroupsTable = LogRateAnalysisResultsGroupsTableProvider(context); + const logRateAnalysisDataGenerator = LogRateAnalysisDataGeneratorProvider(context); const logPatternAnalysisPage = LogPatternAnalysisPageProvider(context); const tableService = MlTableServiceProvider(context); @@ -29,10 +28,10 @@ export function AiopsProvider(context: FtrProviderContext) { return { changePointDetectionPage, - explainLogRateSpikesPage, - explainLogRateSpikesAnalysisTable, - explainLogRateSpikesAnalysisGroupsTable, - explainLogRateSpikesDataGenerator, + logRateAnalysisPage, + logRateAnalysisResultsTable, + logRateAnalysisResultsGroupsTable, + logRateAnalysisDataGenerator, logPatternAnalysisPage, }; } diff --git a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_data_generator.ts b/x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts similarity index 98% rename from x-pack/test/functional/services/aiops/explain_log_rate_spikes_data_generator.ts rename to x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts index 228d47bbc746f..0993850db55c1 100644 --- a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_data_generator.ts +++ b/x-pack/test/functional/services/aiops/log_rate_analysis_data_generator.ts @@ -114,7 +114,7 @@ function getArtificialLogsWithSpike(index: string) { return bulkBody; } -export function ExplainLogRateSpikesDataGeneratorProvider({ getService }: FtrProviderContext) { +export function LogRateAnalysisDataGeneratorProvider({ getService }: FtrProviderContext) { const es = getService('es'); const esArchiver = getService('esArchiver'); const log = getService('log'); diff --git a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_page.ts b/x-pack/test/functional/services/aiops/log_rate_analysis_page.ts similarity index 95% rename from x-pack/test/functional/services/aiops/explain_log_rate_spikes_page.ts rename to x-pack/test/functional/services/aiops/log_rate_analysis_page.ts index b05cdb30b059b..6a1d34e419984 100644 --- a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_page.ts +++ b/x-pack/test/functional/services/aiops/log_rate_analysis_page.ts @@ -9,10 +9,7 @@ import expect from '@kbn/expect'; import type { FtrProviderContext } from '../../ftr_provider_context'; -export function ExplainLogRateSpikesPageProvider({ - getService, - getPageObject, -}: FtrProviderContext) { +export function LogRateAnalysisPageProvider({ getService, getPageObject }: FtrProviderContext) { const browser = getService('browser'); const elasticChart = getService('elasticChart'); const ml = getService('ml'); @@ -138,23 +135,23 @@ export function ExplainLogRateSpikesPageProvider({ async assertAnalysisSectionExists() { await retry.tryForTime(5000, async () => { - await testSubjects.existOrFail(`aiopsExplainLogRateSpikesAnalysis`); + await testSubjects.existOrFail(`aiopsLogRateAnalysisResults`); }); }, - async assertSpikeAnalysisGroupSwitchExists(checked: boolean) { + async assertLogRateAnalysisResultsGroupSwitchExists(checked: boolean) { await retry.tryForTime(5000, async () => { await testSubjects.existOrFail( - `aiopsExplainLogRateSpikesGroupSwitch${checked ? ' checked' : ''}` + `aiopsLogRateAnalysisGroupSwitch${checked ? ' checked' : ''}` ); }); }, - async clickSpikeAnalysisGroupSwitchOn() { - await testSubjects.clickWhenNotDisabledWithoutRetry('aiopsExplainLogRateSpikesGroupSwitchOn'); + async clickLogRateAnalysisResultsGroupSwitchOn() { + await testSubjects.clickWhenNotDisabledWithoutRetry('aiopsLogRateAnalysisGroupSwitchOn'); await retry.tryForTime(30 * 1000, async () => { - await testSubjects.existOrFail('aiopsExplainLogRateSpikesGroupSwitch checked'); + await testSubjects.existOrFail('aiopsLogRateAnalysisGroupSwitch checked'); }); }, @@ -251,7 +248,7 @@ export function ExplainLogRateSpikesPageProvider({ }, async navigateToIndexPatternSelection() { - await testSubjects.click('mlMainTab explainLogRateSpikes'); + await testSubjects.click('mlMainTab logRateAnalysis'); await testSubjects.existOrFail('mlPageSourceSelection'); }, diff --git a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_analysis_groups_table.ts b/x-pack/test/functional/services/aiops/log_rate_analysis_results_groups_table.ts similarity index 75% rename from x-pack/test/functional/services/aiops/explain_log_rate_spikes_analysis_groups_table.ts rename to x-pack/test/functional/services/aiops/log_rate_analysis_results_groups_table.ts index b533c50677944..129778a23d69a 100644 --- a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_analysis_groups_table.ts +++ b/x-pack/test/functional/services/aiops/log_rate_analysis_results_groups_table.ts @@ -9,34 +9,32 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../ftr_provider_context'; -export function ExplainLogRateSpikesAnalysisGroupsTableProvider({ - getService, -}: FtrProviderContext) { +export function LogRateAnalysisResultsGroupsTableProvider({ getService }: FtrProviderContext) { const find = getService('find'); const testSubjects = getService('testSubjects'); const retry = getService('retry'); const browser = getService('browser'); return new (class AnalysisTable { - public async assertSpikeAnalysisTableExists() { - await testSubjects.existOrFail(`aiopsSpikeAnalysisGroupsTable`); + public async assertLogRateAnalysisResultsTableExists() { + await testSubjects.existOrFail(`aiopsLogRateAnalysisResultsGroupsTable`); } public async assertExpandRowButtonExists() { - await testSubjects.existOrFail('aiopsSpikeAnalysisGroupsTableRowExpansionButton'); + await testSubjects.existOrFail('aiopsLogRateAnalysisResultsGroupsTableRowExpansionButton'); } public async expandRow() { - await testSubjects.click('aiopsSpikeAnalysisGroupsTableRowExpansionButton'); - await testSubjects.existOrFail('aiopsSpikeAnalysisTable'); + await testSubjects.click('aiopsLogRateAnalysisResultsGroupsTableRowExpansionButton'); + await testSubjects.existOrFail('aiopsLogRateAnalysisResultsTable'); } public async parseAnalysisTable() { - const table = await testSubjects.find('~aiopsSpikeAnalysisGroupsTable'); + const table = await testSubjects.find('~aiopsLogRateAnalysisResultsGroupsTable'); const $ = await table.parseDomContent(); const rows = []; - for (const tr of $.findTestSubjects('~aiopsSpikeAnalysisGroupsTableRow').toArray()) { + for (const tr of $.findTestSubjects('~aiopsLogRateAnalysisResultsGroupsTableRow').toArray()) { const $tr = $(tr); const rowObject: { @@ -44,12 +42,12 @@ export function ExplainLogRateSpikesAnalysisGroupsTableProvider({ docCount: string; } = { group: $tr - .findTestSubject('aiopsSpikeAnalysisGroupsTableColumnGroup') + .findTestSubject('aiopsLogRateAnalysisResultsGroupsTableColumnGroup') .find('.euiTableCellContent') .text() .trim(), docCount: $tr - .findTestSubject('aiopsSpikeAnalysisGroupsTableColumnDocCount') + .findTestSubject('aiopsLogRateAnalysisResultsGroupsTableColumnDocCount') .find('.euiTableCellContent') .text() .trim(), @@ -62,7 +60,7 @@ export function ExplainLogRateSpikesAnalysisGroupsTableProvider({ } public rowSelector(rowId: string, subSelector?: string) { - const row = `~aiopsSpikeAnalysisGroupsTable > ~row-${rowId}`; + const row = `~aiopsLogRateAnalysisResultsGroupsTable > ~row-${rowId}`; return !subSelector ? row : `${row} > ${subSelector}`; } diff --git a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_analysis_table.ts b/x-pack/test/functional/services/aiops/log_rate_analysis_results_table.ts similarity index 62% rename from x-pack/test/functional/services/aiops/explain_log_rate_spikes_analysis_table.ts rename to x-pack/test/functional/services/aiops/log_rate_analysis_results_table.ts index e8aed7fcb2971..0e111ae1561a8 100644 --- a/x-pack/test/functional/services/aiops/explain_log_rate_spikes_analysis_table.ts +++ b/x-pack/test/functional/services/aiops/log_rate_analysis_results_table.ts @@ -7,20 +7,20 @@ import { FtrProviderContext } from '../../ftr_provider_context'; -export function ExplainLogRateSpikesAnalysisTableProvider({ getService }: FtrProviderContext) { +export function LogRateAnalysisResultsTableProvider({ getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); return new (class AnalysisTable { - public async assertSpikeAnalysisTableExists() { - await testSubjects.existOrFail(`aiopsSpikeAnalysisTable`); + public async assertLogRateAnalysisResultsTableExists() { + await testSubjects.existOrFail(`aiopsLogRateAnalysisResultsTable`); } public async parseAnalysisTable() { - const table = await testSubjects.find('~aiopsSpikeAnalysisTable'); + const table = await testSubjects.find('~aiopsLogRateAnalysisResultsTable'); const $ = await table.parseDomContent(); const rows = []; - for (const tr of $.findTestSubjects('~aiopsSpikeAnalysisTableRow').toArray()) { + for (const tr of $.findTestSubjects('~aiopsLogRateAnalysisResultsTableRow').toArray()) { const $tr = $(tr); const rowObject: { @@ -31,27 +31,27 @@ export function ExplainLogRateSpikesAnalysisTableProvider({ getService }: FtrPro impact: string; } = { fieldName: $tr - .findTestSubject('aiopsSpikeAnalysisTableColumnFieldName') + .findTestSubject('aiopsLogRateAnalysisResultsTableColumnFieldName') .find('.euiTableCellContent') .text() .trim(), fieldValue: $tr - .findTestSubject('aiopsSpikeAnalysisTableColumnFieldValue') + .findTestSubject('aiopsLogRateAnalysisResultsTableColumnFieldValue') .find('.euiTableCellContent') .text() .trim(), logRate: $tr - .findTestSubject('aiopsSpikeAnalysisTableColumnLogRate') + .findTestSubject('aiopsLogRateAnalysisResultsTableColumnLogRate') .find('.euiTableCellContent') .text() .trim(), pValue: $tr - .findTestSubject('aiopsSpikeAnalysisTableColumnPValue') + .findTestSubject('aiopsLogRateAnalysisResultsTableColumnPValue') .find('.euiTableCellContent') .text() .trim(), impact: $tr - .findTestSubject('aiopsSpikeAnalysisTableColumnImpact') + .findTestSubject('aiopsLogRateAnalysisResultsTableColumnImpact') .find('.euiTableCellContent') .text() .trim(), diff --git a/x-pack/test/functional/services/ml/job_source_selection.ts b/x-pack/test/functional/services/ml/job_source_selection.ts index 7f0aafdb81cbf..b43757cd7105c 100644 --- a/x-pack/test/functional/services/ml/job_source_selection.ts +++ b/x-pack/test/functional/services/ml/job_source_selection.ts @@ -43,8 +43,8 @@ export function MachineLearningJobSourceSelectionProvider({ getService }: FtrPro await this.selectSource(sourceName, 'dataVisualizerIndexPage'); }, - async selectSourceForExplainLogRateSpikes(sourceName: string) { - await this.selectSource(sourceName, 'aiopsExplainLogRateSpikesPage'); + async selectSourceForLogRateAnalysis(sourceName: string) { + await this.selectSource(sourceName, 'aiopsLogRateAnalysisPage'); }, async selectSourceForChangePointDetection(sourceName: string) { diff --git a/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts b/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts index 83c1d85441c6e..651d41e48b2a1 100644 --- a/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts +++ b/x-pack/test_serverless/functional/test_suites/observability/cypress/e2e/navigation.cy.ts @@ -76,8 +76,8 @@ describe('Serverless', () => { cy.contains('Anomaly detection').click(); cy.url().should('include', '/app/ml/jobs'); - cy.contains('Spike analysis').click(); - cy.url().should('include', 'app/ml/aiops/explain_log_rate_spikes_index_select'); + cy.contains('Log rate analysis').click(); + cy.url().should('include', 'app/ml/aiops/log_rate_analysis_index_select'); cy.contains('Change Point Detection').click(); cy.url().should('include', 'app/ml/aiops/change_point_detection_index_select');