mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 16:58:59 +08:00
NOOP to Count in alert creation from logs (#5464)
* fix: change NOOP to count on creating alert from Logs and traces * fix: change 'count' back to 'noop' in Traces page, in case there is a single query * fix: handle the query modification in useGetCompositeQueryParam instead of Filter * chore: use values StringOperators enum instead of hard coded strings * Revert "fix: handle the query modification in useGetCompositeQueryParam instead of Filter" This reverts commit 5bb837ec2756a8bae11a208dc31ebc504157a57b. * Revert "fix: change 'count' back to 'noop' in Traces page, in case there is a single query" This reverts commit 5e506dbd35e72827eee177472dada2c004496432.
This commit is contained in:
parent
1b9683d699
commit
5d903b5487
@ -33,6 +33,7 @@ import useErrorNotification from 'hooks/useErrorNotification';
|
|||||||
import { useHandleExplorerTabChange } from 'hooks/useHandleExplorerTabChange';
|
import { useHandleExplorerTabChange } from 'hooks/useHandleExplorerTabChange';
|
||||||
import { useNotifications } from 'hooks/useNotifications';
|
import { useNotifications } from 'hooks/useNotifications';
|
||||||
import { mapCompositeQueryFromQuery } from 'lib/newQueryBuilder/queryBuilderMappers/mapCompositeQueryFromQuery';
|
import { mapCompositeQueryFromQuery } from 'lib/newQueryBuilder/queryBuilderMappers/mapCompositeQueryFromQuery';
|
||||||
|
import { cloneDeep } from 'lodash-es';
|
||||||
import {
|
import {
|
||||||
Check,
|
Check,
|
||||||
ConciergeBell,
|
ConciergeBell,
|
||||||
@ -56,7 +57,7 @@ import { useHistory } from 'react-router-dom';
|
|||||||
import { AppState } from 'store/reducers';
|
import { AppState } from 'store/reducers';
|
||||||
import { Dashboard } from 'types/api/dashboard/getAll';
|
import { Dashboard } from 'types/api/dashboard/getAll';
|
||||||
import { Query } from 'types/api/queryBuilder/queryBuilderData';
|
import { Query } from 'types/api/queryBuilder/queryBuilderData';
|
||||||
import { DataSource } from 'types/common/queryBuilder';
|
import { DataSource, StringOperators } from 'types/common/queryBuilder';
|
||||||
import AppReducer from 'types/reducer/app';
|
import AppReducer from 'types/reducer/app';
|
||||||
import { USER_ROLES } from 'types/roles';
|
import { USER_ROLES } from 'types/roles';
|
||||||
|
|
||||||
@ -120,6 +121,21 @@ function ExplorerOptions({
|
|||||||
|
|
||||||
const { role } = useSelector<AppState, AppReducer>((state) => state.app);
|
const { role } = useSelector<AppState, AppReducer>((state) => state.app);
|
||||||
|
|
||||||
|
const handleConditionalQueryModification = useCallback((): string => {
|
||||||
|
if (
|
||||||
|
query?.builder?.queryData?.[0]?.aggregateOperator !== StringOperators.NOOP
|
||||||
|
) {
|
||||||
|
return JSON.stringify(query);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Modify aggregateOperator to count, as noop is not supported in alerts
|
||||||
|
const modifiedQuery = cloneDeep(query);
|
||||||
|
|
||||||
|
modifiedQuery.builder.queryData[0].aggregateOperator = StringOperators.COUNT;
|
||||||
|
|
||||||
|
return JSON.stringify(modifiedQuery);
|
||||||
|
}, [query]);
|
||||||
|
|
||||||
const onCreateAlertsHandler = useCallback(() => {
|
const onCreateAlertsHandler = useCallback(() => {
|
||||||
if (sourcepage === DataSource.TRACES) {
|
if (sourcepage === DataSource.TRACES) {
|
||||||
logEvent('Traces Explorer: Create alert', {
|
logEvent('Traces Explorer: Create alert', {
|
||||||
@ -130,13 +146,16 @@ function ExplorerOptions({
|
|||||||
panelType,
|
panelType,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const stringifiedQuery = handleConditionalQueryModification();
|
||||||
|
|
||||||
history.push(
|
history.push(
|
||||||
`${ROUTES.ALERTS_NEW}?${QueryParams.compositeQuery}=${encodeURIComponent(
|
`${ROUTES.ALERTS_NEW}?${QueryParams.compositeQuery}=${encodeURIComponent(
|
||||||
JSON.stringify(query),
|
stringifiedQuery,
|
||||||
)}`,
|
)}`,
|
||||||
);
|
);
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [history, query]);
|
}, [handleConditionalQueryModification, history]);
|
||||||
|
|
||||||
const onCancel = (value: boolean) => (): void => {
|
const onCancel = (value: boolean) => (): void => {
|
||||||
onModalToggle(value);
|
onModalToggle(value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user