mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-07-31 21:41:59 +08:00
feat: sorting duration is added (#1032)
* feat: sorting duration is added in trace filter page
This commit is contained in:
parent
f2def38df8
commit
e903277143
@ -16,6 +16,7 @@ const getSpanAggregate = async (
|
|||||||
limit: props.limit,
|
limit: props.limit,
|
||||||
offset: props.offset,
|
offset: props.offset,
|
||||||
order: props.order,
|
order: props.order,
|
||||||
|
orderParam: props.orderParam,
|
||||||
};
|
};
|
||||||
|
|
||||||
const exclude: TraceFilterEnum[] = [];
|
const exclude: TraceFilterEnum[] = [];
|
||||||
|
@ -120,6 +120,8 @@ function CheckBoxComponent(props: CheckBoxProps): JSX.Element {
|
|||||||
userSelected: preUserSelectedMap,
|
userSelected: preUserSelectedMap,
|
||||||
isFilterExclude: preIsFilterExclude,
|
isFilterExclude: preIsFilterExclude,
|
||||||
order: spansAggregate.order,
|
order: spansAggregate.order,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
|
pageSize: spansAggregate.pageSize,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -134,6 +136,7 @@ function CheckBoxComponent(props: CheckBoxProps): JSX.Element {
|
|||||||
preUserSelectedMap,
|
preUserSelectedMap,
|
||||||
spansAggregate.order,
|
spansAggregate.order,
|
||||||
spansAggregate.pageSize,
|
spansAggregate.pageSize,
|
||||||
|
spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
|
@ -119,6 +119,7 @@ function Duration(): JSX.Element {
|
|||||||
isFilterExclude,
|
isFilterExclude,
|
||||||
order: spansAggregate.order,
|
order: spansAggregate.order,
|
||||||
pageSize: spansAggregate.pageSize,
|
pageSize: spansAggregate.pageSize,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -131,6 +132,7 @@ function Duration(): JSX.Element {
|
|||||||
userSelectedFilter,
|
userSelectedFilter,
|
||||||
spansAggregate.order,
|
spansAggregate.order,
|
||||||
spansAggregate.pageSize,
|
spansAggregate.pageSize,
|
||||||
|
spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -103,6 +103,7 @@ function PanelHeading(props: PanelHeadingProps): JSX.Element {
|
|||||||
isFilterExclude,
|
isFilterExclude,
|
||||||
order: spansAggregate.order,
|
order: spansAggregate.order,
|
||||||
pageSize: spansAggregate.pageSize,
|
pageSize: spansAggregate.pageSize,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -115,6 +116,7 @@ function PanelHeading(props: PanelHeadingProps): JSX.Element {
|
|||||||
getPreUserSelected,
|
getPreUserSelected,
|
||||||
spansAggregate.order,
|
spansAggregate.order,
|
||||||
spansAggregate.pageSize,
|
spansAggregate.pageSize,
|
||||||
|
spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
notification.error({
|
notification.error({
|
||||||
@ -154,6 +156,7 @@ function PanelHeading(props: PanelHeadingProps): JSX.Element {
|
|||||||
isFilterExclude,
|
isFilterExclude,
|
||||||
order: spansAggregate.order,
|
order: spansAggregate.order,
|
||||||
pageSize: spansAggregate.pageSize,
|
pageSize: spansAggregate.pageSize,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -166,6 +169,7 @@ function PanelHeading(props: PanelHeadingProps): JSX.Element {
|
|||||||
userSelectedFilter,
|
userSelectedFilter,
|
||||||
spansAggregate.order,
|
spansAggregate.order,
|
||||||
spansAggregate.pageSize,
|
spansAggregate.pageSize,
|
||||||
|
spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -205,6 +209,7 @@ function PanelHeading(props: PanelHeadingProps): JSX.Element {
|
|||||||
isFilterExclude: postIsFilterExclude,
|
isFilterExclude: postIsFilterExclude,
|
||||||
order: spansAggregate.order,
|
order: spansAggregate.order,
|
||||||
pageSize: spansAggregate.pageSize,
|
pageSize: spansAggregate.pageSize,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -217,6 +222,7 @@ function PanelHeading(props: PanelHeadingProps): JSX.Element {
|
|||||||
preUserSelected,
|
preUserSelected,
|
||||||
spansAggregate.order,
|
spansAggregate.order,
|
||||||
spansAggregate.pageSize,
|
spansAggregate.pageSize,
|
||||||
|
spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
notification.error({
|
notification.error({
|
||||||
|
@ -97,6 +97,7 @@ function Search({
|
|||||||
isFilterExclude: traces.isFilterExclude,
|
isFilterExclude: traces.isFilterExclude,
|
||||||
order: traces.spansAggregate.order,
|
order: traces.spansAggregate.order,
|
||||||
pageSize: traces.spansAggregate.pageSize,
|
pageSize: traces.spansAggregate.pageSize,
|
||||||
|
orderParam: traces.spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -109,6 +110,7 @@ function Search({
|
|||||||
traces.userSelectedFilter,
|
traces.userSelectedFilter,
|
||||||
traces.spansAggregate.order,
|
traces.spansAggregate.order,
|
||||||
traces.spansAggregate.pageSize,
|
traces.spansAggregate.pageSize,
|
||||||
|
traces.spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import { AppState } from 'store/reducers';
|
|||||||
import AppActions from 'types/actions';
|
import AppActions from 'types/actions';
|
||||||
import {
|
import {
|
||||||
UPDATE_SPAN_ORDER,
|
UPDATE_SPAN_ORDER,
|
||||||
|
UPDATE_SPAN_ORDER_PARAMS,
|
||||||
UPDATE_SPANS_AGGREGATE_PAGE_NUMBER,
|
UPDATE_SPANS_AGGREGATE_PAGE_NUMBER,
|
||||||
UPDATE_SPANS_AGGREGATE_PAGE_SIZE,
|
UPDATE_SPANS_AGGREGATE_PAGE_SIZE,
|
||||||
} from 'types/actions/trace';
|
} from 'types/actions/trace';
|
||||||
@ -80,6 +81,7 @@ function TraceTable(): JSX.Element {
|
|||||||
title: 'Duration',
|
title: 'Duration',
|
||||||
dataIndex: 'durationNano',
|
dataIndex: 'durationNano',
|
||||||
key: 'durationNano',
|
key: 'durationNano',
|
||||||
|
sorter: true,
|
||||||
render: (value: TableType['durationNano']): JSX.Element => (
|
render: (value: TableType['durationNano']): JSX.Element => (
|
||||||
<Typography>
|
<Typography>
|
||||||
{`${dayjs
|
{`${dayjs
|
||||||
@ -103,6 +105,16 @@ function TraceTable(): JSX.Element {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const getSortKey = (key: string): string => {
|
||||||
|
if (key === 'durationNano') {
|
||||||
|
return 'durationNano';
|
||||||
|
}
|
||||||
|
if (key === 'timestamp') {
|
||||||
|
return 'timestamp';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
};
|
||||||
|
|
||||||
const onChangeHandler: TableProps<TableType>['onChange'] = (
|
const onChangeHandler: TableProps<TableType>['onChange'] = (
|
||||||
props,
|
props,
|
||||||
_,
|
_,
|
||||||
@ -111,7 +123,10 @@ function TraceTable(): JSX.Element {
|
|||||||
if (!Array.isArray(sort)) {
|
if (!Array.isArray(sort)) {
|
||||||
const { order = spansAggregateOrder } = sort;
|
const { order = spansAggregateOrder } = sort;
|
||||||
if (props.current && props.pageSize) {
|
if (props.current && props.pageSize) {
|
||||||
const spanOrder = order || spansAggregateOrder;
|
const spanOrder = order === 'ascend' ? 'ascending' : 'descending';
|
||||||
|
const orderParam = getSortKey(sort.field as string);
|
||||||
|
|
||||||
|
console.log({ spanOrder });
|
||||||
|
|
||||||
dispatch({
|
dispatch({
|
||||||
type: UPDATE_SPAN_ORDER,
|
type: UPDATE_SPAN_ORDER,
|
||||||
@ -120,6 +135,13 @@ function TraceTable(): JSX.Element {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
dispatch({
|
||||||
|
type: UPDATE_SPAN_ORDER_PARAMS,
|
||||||
|
payload: {
|
||||||
|
orderParam,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
dispatch({
|
dispatch({
|
||||||
type: UPDATE_SPANS_AGGREGATE_PAGE_SIZE,
|
type: UPDATE_SPANS_AGGREGATE_PAGE_SIZE,
|
||||||
payload: {
|
payload: {
|
||||||
@ -143,6 +165,7 @@ function TraceTable(): JSX.Element {
|
|||||||
userSelectedFilter,
|
userSelectedFilter,
|
||||||
spanOrder,
|
spanOrder,
|
||||||
props.pageSize,
|
props.pageSize,
|
||||||
|
orderParam,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -172,7 +195,6 @@ function TraceTable(): JSX.Element {
|
|||||||
position: ['bottomLeft'],
|
position: ['bottomLeft'],
|
||||||
total,
|
total,
|
||||||
}}
|
}}
|
||||||
sortDirections={['ascend', 'descend']}
|
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,8 @@ function Trace({
|
|||||||
current: spansAggregate.currentPage,
|
current: spansAggregate.currentPage,
|
||||||
pageSize: spansAggregate.pageSize,
|
pageSize: spansAggregate.pageSize,
|
||||||
selectedTags,
|
selectedTags,
|
||||||
order: spansAggregate.order === 'ascend' ? 'ascending' : 'descending',
|
order: spansAggregate.order,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
});
|
});
|
||||||
}, [
|
}, [
|
||||||
selectedTags,
|
selectedTags,
|
||||||
@ -75,6 +76,7 @@ function Trace({
|
|||||||
spansAggregate.currentPage,
|
spansAggregate.currentPage,
|
||||||
spansAggregate.pageSize,
|
spansAggregate.pageSize,
|
||||||
spansAggregate.order,
|
spansAggregate.order,
|
||||||
|
spansAggregate.orderParam,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -13,6 +13,7 @@ import { TraceFilterEnum, TraceReducer } from 'types/reducer/trace';
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
isTraceFilterEnum,
|
isTraceFilterEnum,
|
||||||
|
parseAggregateOrderParams,
|
||||||
parseFilterExclude,
|
parseFilterExclude,
|
||||||
parseFilterToFetchData,
|
parseFilterToFetchData,
|
||||||
parseIsSkippedSelection,
|
parseIsSkippedSelection,
|
||||||
@ -85,6 +86,11 @@ export const GetInitialTraceFilter = (
|
|||||||
traces.selectedTags,
|
traces.selectedTags,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const parsedOrderParams = parseAggregateOrderParams(
|
||||||
|
query,
|
||||||
|
traces.spansAggregate.orderParam,
|
||||||
|
);
|
||||||
|
|
||||||
const parsedFilter = parseQueryIntoFilter(query, traces.filter);
|
const parsedFilter = parseQueryIntoFilter(query, traces.filter);
|
||||||
|
|
||||||
// now filter are not matching we need to fetch the data and make in sync
|
// now filter are not matching we need to fetch the data and make in sync
|
||||||
@ -162,6 +168,7 @@ export const GetInitialTraceFilter = (
|
|||||||
isFilterExclude: getIsFilterExcluded.currentValue,
|
isFilterExclude: getIsFilterExcluded.currentValue,
|
||||||
order: parsedQueryOrder.currentValue,
|
order: parsedQueryOrder.currentValue,
|
||||||
pageSize: parsedPageSize.currentValue,
|
pageSize: parsedPageSize.currentValue,
|
||||||
|
orderParam: parsedOrderParams.currentValue,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -31,7 +31,7 @@ export const GetSpansAggregate = (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const order = props.order === 'ascending' ? 'ascend' : 'descend';
|
const { order = '' } = props;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// triggering loading
|
// triggering loading
|
||||||
@ -46,6 +46,7 @@ export const GetSpansAggregate = (
|
|||||||
total: spansAggregate.total,
|
total: spansAggregate.total,
|
||||||
pageSize: props.pageSize,
|
pageSize: props.pageSize,
|
||||||
order,
|
order,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -59,6 +60,7 @@ export const GetSpansAggregate = (
|
|||||||
selectedTags: props.selectedTags,
|
selectedTags: props.selectedTags,
|
||||||
isFilterExclude: traces.isFilterExclude,
|
isFilterExclude: traces.isFilterExclude,
|
||||||
order,
|
order,
|
||||||
|
orderParam: props.orderParam,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (response.statusCode === 200) {
|
if (response.statusCode === 200) {
|
||||||
@ -73,6 +75,7 @@ export const GetSpansAggregate = (
|
|||||||
total: response.payload.totalSpans,
|
total: response.payload.totalSpans,
|
||||||
pageSize: props.pageSize,
|
pageSize: props.pageSize,
|
||||||
order,
|
order,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -86,6 +89,7 @@ export const GetSpansAggregate = (
|
|||||||
traces.userSelectedFilter,
|
traces.userSelectedFilter,
|
||||||
order,
|
order,
|
||||||
traces.spansAggregate.pageSize,
|
traces.spansAggregate.pageSize,
|
||||||
|
spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
notification.error({
|
notification.error({
|
||||||
@ -103,6 +107,7 @@ export const GetSpansAggregate = (
|
|||||||
total: spansAggregate.total,
|
total: spansAggregate.total,
|
||||||
pageSize: props.pageSize,
|
pageSize: props.pageSize,
|
||||||
order,
|
order,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -119,6 +124,7 @@ export const GetSpansAggregate = (
|
|||||||
total: spansAggregate.total,
|
total: spansAggregate.total,
|
||||||
pageSize: props.pageSize,
|
pageSize: props.pageSize,
|
||||||
order,
|
order,
|
||||||
|
orderParam: spansAggregate.orderParam,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -134,4 +140,5 @@ export interface GetSpansAggregateProps {
|
|||||||
pageSize: TraceReducer['spansAggregate']['pageSize'];
|
pageSize: TraceReducer['spansAggregate']['pageSize'];
|
||||||
selectedTags: TraceReducer['selectedTags'];
|
selectedTags: TraceReducer['selectedTags'];
|
||||||
order: GetSpanAggregateProps['order'];
|
order: GetSpanAggregateProps['order'];
|
||||||
|
orderParam: GetSpanAggregateProps['orderParam'];
|
||||||
}
|
}
|
||||||
|
@ -8,3 +8,4 @@ export * from './skippedSelected';
|
|||||||
export * from './spanAggregateCurrentPage';
|
export * from './spanAggregateCurrentPage';
|
||||||
export * from './spanAggregateCurrentPageSize';
|
export * from './spanAggregateCurrentPageSize';
|
||||||
export * from './spanAggregateOrder';
|
export * from './spanAggregateOrder';
|
||||||
|
export * from './spanAggregateOrderParam';
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
import { TraceReducer } from 'types/reducer/trace';
|
||||||
|
|
||||||
|
import { ParsedUrl } from '../util';
|
||||||
|
|
||||||
|
export const parseAggregateOrderParams = (
|
||||||
|
query: string,
|
||||||
|
stateCurrent: TraceReducer['spansAggregate']['orderParam'],
|
||||||
|
): ParsedUrl<TraceReducer['spansAggregate']['orderParam']> => {
|
||||||
|
const url = new URLSearchParams(query);
|
||||||
|
|
||||||
|
let current = '';
|
||||||
|
|
||||||
|
const selected = url.get('spanAggregateOrderParam');
|
||||||
|
|
||||||
|
if (selected) {
|
||||||
|
try {
|
||||||
|
const parsedValue = selected;
|
||||||
|
|
||||||
|
if (parsedValue && typeof parsedValue === 'string') {
|
||||||
|
current = parsedValue;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
console.log('error while parsing json');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selected) {
|
||||||
|
return {
|
||||||
|
currentValue: current,
|
||||||
|
urlValue: current,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
currentValue: stateCurrent,
|
||||||
|
urlValue: current,
|
||||||
|
};
|
||||||
|
};
|
@ -48,6 +48,7 @@ export const SelectedTraceFilter = (props: {
|
|||||||
traces.userSelectedFilter,
|
traces.userSelectedFilter,
|
||||||
traces.spansAggregate.order,
|
traces.spansAggregate.order,
|
||||||
traces.spansAggregate.pageSize,
|
traces.spansAggregate.pageSize,
|
||||||
|
traces.spansAggregate.orderParam,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -24,6 +24,7 @@ export const updateURL = (
|
|||||||
userSelectedFilter: TraceReducer['userSelectedFilter'],
|
userSelectedFilter: TraceReducer['userSelectedFilter'],
|
||||||
spanAggregateOrder: TraceReducer['spansAggregate']['order'],
|
spanAggregateOrder: TraceReducer['spansAggregate']['order'],
|
||||||
spanAggregateCurrentPageSize: TraceReducer['spansAggregate']['pageSize'],
|
spanAggregateCurrentPageSize: TraceReducer['spansAggregate']['pageSize'],
|
||||||
|
spanAggregateOrderParam: TraceReducer['spansAggregate']['orderParam'],
|
||||||
): void => {
|
): void => {
|
||||||
const search = new URLSearchParams(window.location.search);
|
const search = new URLSearchParams(window.location.search);
|
||||||
const preResult: { key: string; value: string }[] = [];
|
const preResult: { key: string; value: string }[] = [];
|
||||||
@ -38,6 +39,7 @@ export const updateURL = (
|
|||||||
'spanAggregateCurrentPage',
|
'spanAggregateCurrentPage',
|
||||||
'spanAggregateOrder',
|
'spanAggregateOrder',
|
||||||
'spanAggregateCurrentPageSize',
|
'spanAggregateCurrentPageSize',
|
||||||
|
'spanAggregateOrderParam',
|
||||||
];
|
];
|
||||||
|
|
||||||
search.forEach((value, key) => {
|
search.forEach((value, key) => {
|
||||||
@ -62,7 +64,7 @@ export const updateURL = (
|
|||||||
Object.fromEntries(isFilterExclude),
|
Object.fromEntries(isFilterExclude),
|
||||||
)}&userSelectedFilter=${JSON.stringify(
|
)}&userSelectedFilter=${JSON.stringify(
|
||||||
Object.fromEntries(userSelectedFilter),
|
Object.fromEntries(userSelectedFilter),
|
||||||
)}&spanAggregateCurrentPage=${spanAggregateCurrentPage}&spanAggregateOrder=${spanAggregateOrder}&spanAggregateCurrentPageSize=${spanAggregateCurrentPageSize}`,
|
)}&spanAggregateCurrentPage=${spanAggregateCurrentPage}&spanAggregateOrder=${spanAggregateOrder}&spanAggregateCurrentPageSize=${spanAggregateCurrentPageSize}&spanAggregateOrderParam=${spanAggregateOrderParam}`,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import {
|
|||||||
UPDATE_SELECTED_GROUP_BY,
|
UPDATE_SELECTED_GROUP_BY,
|
||||||
UPDATE_SELECTED_TAGS,
|
UPDATE_SELECTED_TAGS,
|
||||||
UPDATE_SPAN_ORDER,
|
UPDATE_SPAN_ORDER,
|
||||||
|
UPDATE_SPAN_ORDER_PARAMS,
|
||||||
UPDATE_SPANS_AGGREGATE,
|
UPDATE_SPANS_AGGREGATE,
|
||||||
UPDATE_SPANS_AGGREGATE_PAGE_NUMBER,
|
UPDATE_SPANS_AGGREGATE_PAGE_NUMBER,
|
||||||
UPDATE_SPANS_AGGREGATE_PAGE_SIZE,
|
UPDATE_SPANS_AGGREGATE_PAGE_SIZE,
|
||||||
@ -41,6 +42,7 @@ const initialValue: TraceReducer = {
|
|||||||
total: 0,
|
total: 0,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
order: 'ascend',
|
order: 'ascend',
|
||||||
|
orderParam: '',
|
||||||
},
|
},
|
||||||
selectedGroupBy: '',
|
selectedGroupBy: '',
|
||||||
selectedFunction: 'count',
|
selectedFunction: 'count',
|
||||||
@ -77,6 +79,7 @@ const traceReducer = (
|
|||||||
isFilterExclude,
|
isFilterExclude,
|
||||||
order,
|
order,
|
||||||
pageSize,
|
pageSize,
|
||||||
|
orderParam,
|
||||||
} = payload;
|
} = payload;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -92,6 +95,7 @@ const traceReducer = (
|
|||||||
currentPage: current,
|
currentPage: current,
|
||||||
pageSize,
|
pageSize,
|
||||||
order,
|
order,
|
||||||
|
orderParam,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -237,6 +241,16 @@ const traceReducer = (
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case UPDATE_SPAN_ORDER_PARAMS: {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
spansAggregate: {
|
||||||
|
...state.spansAggregate,
|
||||||
|
orderParam: action.payload.orderParam,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ export const UPDATE_SPANS_AGGREGATE_PAGE_NUMBER =
|
|||||||
'UPDATE_SPANS_AGGREGATE_PAGE_NUMBER';
|
'UPDATE_SPANS_AGGREGATE_PAGE_NUMBER';
|
||||||
export const UPDATE_SPANS_AGGREGATE_PAGE_SIZE =
|
export const UPDATE_SPANS_AGGREGATE_PAGE_SIZE =
|
||||||
'UPDATE_SPANS_AGGREGATE_PAGE_SIZE';
|
'UPDATE_SPANS_AGGREGATE_PAGE_SIZE';
|
||||||
|
export const UPDATE_SPAN_ORDER_PARAMS = 'UPDATE_SPAN_ORDER_PARAMS';
|
||||||
|
|
||||||
export interface UpdateFilter {
|
export interface UpdateFilter {
|
||||||
type: typeof UPDATE_TRACE_FILTER;
|
type: typeof UPDATE_TRACE_FILTER;
|
||||||
@ -78,6 +79,7 @@ export interface UpdateAllFilters {
|
|||||||
isFilterExclude: TraceReducer['isFilterExclude'];
|
isFilterExclude: TraceReducer['isFilterExclude'];
|
||||||
order: TraceReducer['spansAggregate']['order'];
|
order: TraceReducer['spansAggregate']['order'];
|
||||||
pageSize: TraceReducer['spansAggregate']['pageSize'];
|
pageSize: TraceReducer['spansAggregate']['pageSize'];
|
||||||
|
orderParam: TraceReducer['spansAggregate']['orderParam'];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -178,6 +180,13 @@ export interface UpdateSpanSize {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface UpdateSpanParams {
|
||||||
|
type: typeof UPDATE_SPAN_ORDER_PARAMS;
|
||||||
|
payload: {
|
||||||
|
orderParam: TraceReducer['spansAggregate']['orderParam'];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export type TraceActions =
|
export type TraceActions =
|
||||||
| UpdateFilter
|
| UpdateFilter
|
||||||
| GetTraceFilter
|
| GetTraceFilter
|
||||||
@ -198,4 +207,5 @@ export type TraceActions =
|
|||||||
| UpdateFilterExclude
|
| UpdateFilterExclude
|
||||||
| UpdateSpanOrder
|
| UpdateSpanOrder
|
||||||
| UpdateSpansAggregatePageNumber
|
| UpdateSpansAggregatePageNumber
|
||||||
| UpdateSpanSize;
|
| UpdateSpanSize
|
||||||
|
| UpdateSpanParams;
|
||||||
|
@ -9,6 +9,7 @@ export interface Props {
|
|||||||
selectedTags: TraceReducer['selectedTags'];
|
selectedTags: TraceReducer['selectedTags'];
|
||||||
order?: TraceReducer['spansAggregate']['order'];
|
order?: TraceReducer['spansAggregate']['order'];
|
||||||
isFilterExclude: TraceReducer['isFilterExclude'];
|
isFilterExclude: TraceReducer['isFilterExclude'];
|
||||||
|
orderParam: TraceReducer['spansAggregate']['orderParam'];
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PayloadProps = {
|
export type PayloadProps = {
|
||||||
|
@ -21,6 +21,7 @@ export interface TraceReducer {
|
|||||||
total: number;
|
total: number;
|
||||||
pageSize: number;
|
pageSize: number;
|
||||||
order: string;
|
order: string;
|
||||||
|
orderParam: string;
|
||||||
};
|
};
|
||||||
selectedGroupBy: string;
|
selectedGroupBy: string;
|
||||||
selectedFunction: string;
|
selectedFunction: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user