mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Refactor: Removes replaceUrl from actions * Refactor: Moves saveState thunk to epic * Refactor: Moves thunks to epics * Wip: removes resulttype and queries once * Refactor: LiveTailing uses observer in query * Refactor: Creates epics folder for epics and move back actioncreators * Tests: Adds tests for epics and reducer * Fix: Checks for undefined as well * Refactor: Cleans up previous live tailing implementation * Chore: merge with master * Fix: Fixes url issuses and prom graph in Panels * Refactor: Removes supportsStreaming and adds sockets to DataSourcePluginMeta instead * Refactor: Changes the way we create TimeSeries * Refactor: Renames sockets to streaming * Refactor: Changes the way Explore does incremental updates * Refactor: Removes unused method * Refactor: Adds back Loading indication
26 lines
971 B
TypeScript
26 lines
971 B
TypeScript
import { Epic } from 'redux-observable';
|
|
import { map, throttleTime } from 'rxjs/operators';
|
|
import { LoadingState } from '@grafana/ui';
|
|
|
|
import { StoreState } from 'app/types';
|
|
import { ActionOf } from '../../../../core/redux/actionCreatorFactory';
|
|
import { limitMessageRatePayloadAction, LimitMessageRatePayload, processQueryResultsAction } from '../actionTypes';
|
|
import { EpicDependencies } from 'app/store/configureStore';
|
|
|
|
export const limitMessageRateEpic: Epic<ActionOf<any>, ActionOf<any>, StoreState, EpicDependencies> = action$ => {
|
|
return action$.ofType(limitMessageRatePayloadAction.type).pipe(
|
|
throttleTime(1),
|
|
map((action: ActionOf<LimitMessageRatePayload>) => {
|
|
const { exploreId, series, datasourceId } = action.payload;
|
|
return processQueryResultsAction({
|
|
exploreId,
|
|
latency: 0,
|
|
datasourceId,
|
|
loadingState: LoadingState.Streaming,
|
|
series: null,
|
|
delta: series,
|
|
});
|
|
})
|
|
);
|
|
};
|