From ff861eb3f280d3812b7536fcbabcd06eced039cc Mon Sep 17 00:00:00 2001 From: Melissa Date: Thu, 20 Jun 2024 14:04:53 -0600 Subject: [PATCH] fix translations for log rate message and add sorting --- .../get_baseline_and_deviation_rates.ts | 58 ++++++++++++------- .../log_rate_analysis_results_table.tsx | 8 --- ...log_rate_analysis_results_table_groups.tsx | 8 --- .../use_columns.tsx | 21 ++++--- 4 files changed, 49 insertions(+), 46 deletions(-) diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_baseline_and_deviation_rates.ts b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_baseline_and_deviation_rates.ts index 4b33b363693057..b99f04b8dd0d2e 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_baseline_and_deviation_rates.ts +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/get_baseline_and_deviation_rates.ts @@ -13,28 +13,44 @@ export function getLogRateChange( baselineBucketRate: number, deviationBucketRate: number ) { - const logRateChange = - baselineBucketRate > 0 - ? analysisType === LOG_RATE_ANALYSIS_TYPE.SPIKE - ? `${Math.round((deviationBucketRate / baselineBucketRate) * 100) / 100}x higher` - : `${Math.round((baselineBucketRate / deviationBucketRate) * 100) / 100}x lower` - : analysisType === LOG_RATE_ANALYSIS_TYPE.SPIKE - ? i18n.translate( - 'xpack.aiops.logRateAnalysis.resultsTableGroups.logRateIncreaseLabelColumnTooltip', - { - defaultMessage: '{deviationBucketRate} docs from 0 in baseline', - values: { deviationBucketRate }, - } - ) - : i18n.translate( - 'xpack.aiops.logRateAnalysis.resultsTableGroups.logRateDecreaseLabelColumnTooltip', - { - defaultMessage: '0 docs from ${baselineBucketRate} in baseline', - values: { baselineBucketRate }, - } - ); + let message; + let factor; - return logRateChange; + if (baselineBucketRate > 0) { + if (analysisType === LOG_RATE_ANALYSIS_TYPE.SPIKE) { + factor = Math.round(((deviationBucketRate / baselineBucketRate) * 100) / 100); + message = i18n.translate( + 'xpack.aiops.logRateAnalysis.resultsTableGroups.logRateFactorIncreaseLabel', + { + defaultMessage: '{factor}x higher', + values: { + factor: Math.round(((deviationBucketRate / baselineBucketRate) * 100) / 100), + }, + } + ); + } else { + factor = Math.round(((baselineBucketRate / deviationBucketRate) * 100) / 100); + message = i18n.translate( + 'xpack.aiops.logRateAnalysis.resultsTableGroups.logRateFactorDecreaseLabel', + { + defaultMessage: '{factor}x lower', + values: { + factor, + }, + } + ); + } + } else { + // If the baseline rate is 0, then it can't be LOG_RATE_ANALYSIS_TYPE.DIP so we know it's a SPIKE + message = i18n.translate( + 'xpack.aiops.logRateAnalysis.resultsTableGroups.logRateDocIncreaseLabel', + { + defaultMessage: '{deviationBucketRate} docs up from 0 in baseline', + values: { deviationBucketRate }, + } + ); + } + return { message, factor }; } export function getBaselineAndDeviationRates( diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx index d17c2d333bf361..38cf611b4bdd1b 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table.tsx @@ -83,11 +83,6 @@ export const LogRateAnalysisResultsTable: FC = const selectedSignificantItem = useAppSelector( (s) => s.logRateAnalysisTableRow.selectedSignificantItem ); - const { - analysisType, - windowParameters, - documentStats: { documentCountStats }, - } = useAppSelector((s) => s.logRateAnalysis); const dispatch = useAppDispatch(); @@ -102,9 +97,6 @@ export const LogRateAnalysisResultsTable: FC = const columns = useColumns( LOG_RATE_ANALYSIS_RESULTS_TABLE_TYPE.SIGNIFICANT_ITEMS, - analysisType, - windowParameters, - documentCountStats?.interval ?? 0, skippedColumns, searchQuery, barColorOverride, diff --git a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx index eb9292e0f1998d..7f9df2468acf77 100644 --- a/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx +++ b/x-pack/plugins/aiops/public/components/log_rate_analysis_results_table/log_rate_analysis_results_table_groups.tsx @@ -93,11 +93,6 @@ export const LogRateAnalysisResultsGroupsTable: FC s.logRateAnalysisTableRow.pinnedGroup); const selectedGroup = useAppSelector((s) => s.logRateAnalysisTableRow.selectedGroup); - const { - analysisType, - windowParameters, - documentStats: { documentCountStats }, - } = useAppSelector((s) => s.logRateAnalysis); const dispatch = useAppDispatch(); const isMounted = useMountedState(); @@ -244,9 +239,6 @@ export const LogRateAnalysisResultsGroupsTable: FC s.logRateAnalysisStream.isRunning); const zeroDocsFallback = useAppSelector((s) => s.logRateAnalysisResults.zeroDocsFallback); + const { + analysisType, + windowParameters, + documentStats: { documentCountStats }, + } = useAppSelector((s) => s.logRateAnalysis); const isGroupsTable = tableType === LOG_RATE_ANALYSIS_RESULTS_TABLE_TYPE.GROUPS; + const interval = documentCountStats?.interval ?? 0; const fieldStatsServices: FieldStatsServices = useMemo(() => { return { @@ -370,7 +373,7 @@ export const useColumns = ( return <>{baselineBucketRate}; }, - sortable: false, + sortable: true, valign: 'middle', }, ['Deviation rate']: { @@ -411,12 +414,12 @@ export const useColumns = ( return <>{deviationBucketRate}; }, - sortable: false, + sortable: true, valign: 'middle', }, ['Log rate change']: { 'data-test-subj': 'aiopsLogRateAnalysisResultsTableColumnLogRateChange', - field: 'histogram', + field: 'pValue', name: ( <>   - {logRateChange} + {logRateChange.message} ); }, - sortable: false, + sortable: true, valign: 'middle', }, ['p-value']: {