Skip to content

Commit

Permalink
[ML] Fix Anomaly Swim Lane Embeddable not updating properly on query …
Browse files Browse the repository at this point in the history
…change (#195090)

## Summary

Fix for: [#194579](#194579)
In Anomaly Explorer, we do not limit the query size, as it is based on a
constant value of `1000`.
However, we did limit the query for the embeddable by setting the size
to the value of the previous query cardinality.
After discussing with @darnautov, we couldn't identify any potential
regressions from removing this check.
Includes fix for issue mentioned in:
[#2397303538](#195090 (comment))
When querying from a pagination page other than page 1, we didn’t reset
the `fromPage` value, which prevented the query from returning results.
Before:

https://github.com/user-attachments/assets/80476a0c-8fcc-40f7-8cac-04ecfb01d614

After:

https://github.com/user-attachments/assets/f55e20fd-b1a4-446e-b16a-b1a6069bf63c

https://github.com/user-attachments/assets/d31cb47d-cd13-4b3c-b6f9-c0ee60d3a370
(cherry picked from commit d44d354)
  • Loading branch information
rbrtj committed Oct 10, 2024
1 parent f72f866 commit c07b380
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
apiHasExecutionContext,
apiHasParentApi,
apiPublishesTimeRange,
fetch$,
initializeTimeRange,
initializeTitles,
useBatchedPublishingSubjects,
Expand All @@ -26,7 +27,8 @@ import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render';
import React, { useCallback, useState } from 'react';
import useUnmount from 'react-use/lib/useUnmount';
import type { Observable } from 'rxjs';
import { BehaviorSubject, combineLatest, map, of, Subscription } from 'rxjs';
import { BehaviorSubject, combineLatest, distinctUntilChanged, map, of, Subscription } from 'rxjs';
import fastIsEqual from 'fast-deep-equal';
import type { AnomalySwimlaneEmbeddableServices } from '..';
import { ANOMALY_SWIMLANE_EMBEDDABLE_TYPE } from '..';
import type { MlDependencies } from '../../application/app';
Expand Down Expand Up @@ -235,6 +237,21 @@ export const getAnomalySwimLaneEmbeddableFactory = (
anomalySwimLaneServices
);

subscriptions.add(
fetch$(api)
.pipe(
map((fetchContext) => ({
query: fetchContext.query,
filters: fetchContext.filters,
timeRange: fetchContext.timeRange,
})),
distinctUntilChanged(fastIsEqual)
)
.subscribe(() => {
api.updatePagination({ fromPage: 1 });
})
);

const onRenderComplete = () => {};

return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/

import type { estypes } from '@elastic/elasticsearch';
import type { TimeRange } from '@kbn/es-query';
import { type TimeRange } from '@kbn/es-query';
import type { PublishesUnifiedSearch } from '@kbn/presentation-publishing';
import {
BehaviorSubject,
Expand All @@ -29,7 +29,6 @@ import {
SWIMLANE_TYPE,
} from '../../application/explorer/explorer_constants';
import type { OverallSwimlaneData } from '../../application/explorer/explorer_utils';
import { isViewBySwimLaneData } from '../../application/explorer/swimlane_container';
import { CONTROLLED_BY_SWIM_LANE_FILTER } from '../../ui_actions/constants';
import { getJobsObservable } from '../common/get_jobs_observable';
import { processFilters } from '../common/process_filters';
Expand Down Expand Up @@ -114,12 +113,7 @@ export const initializeSwimLaneDataFetcher = (
const { earliest, latest } = overallSwimlaneData;

if (overallSwimlaneData && swimlaneType === SWIMLANE_TYPE.VIEW_BY) {
const swimlaneData = swimLaneData$.value;

let swimLaneLimit = ANOMALY_SWIM_LANE_HARD_LIMIT;
if (isViewBySwimLaneData(swimlaneData) && viewBy === swimlaneData.fieldName) {
swimLaneLimit = swimlaneData.cardinality;
}
const swimLaneLimit = ANOMALY_SWIM_LANE_HARD_LIMIT;

return from(
anomalyTimelineService.loadViewBySwimlane(
Expand Down

0 comments on commit c07b380

Please sign in to comment.