From 6a4aa9a956b4b6536f60e7b47cb75d17bcdc5f55 Mon Sep 17 00:00:00 2001 From: Yunus M Date: Thu, 4 Apr 2024 11:05:58 +0530 Subject: [PATCH] QB - Logs - Enable TimeShift function (#4792) * feat: qb - logs - enable time shift function * feat: qb - logs - enable time shift function * feat: show functions for logs in v3 version too --- .../src/constants/queryFunctionOptions.ts | 8 +++++- .../container/FormAlertRules/QuerySection.tsx | 5 ++-- .../QBEntityOptions.styles.scss | 1 + .../QBEntityOptions/QBEntityOptions.tsx | 7 ++++- .../QueryBuilder/components/Query/Query.tsx | 6 ++++- .../components/QueryFunctions/Function.tsx | 19 +++++++++++--- .../QueryFunctions/QueryFunctions.tsx | 26 ++++++++++++++++--- .../queryBuilder/useQueryBuilderOperations.ts | 7 ++++- 8 files changed, 66 insertions(+), 13 deletions(-) diff --git a/frontend/src/constants/queryFunctionOptions.ts b/frontend/src/constants/queryFunctionOptions.ts index b79f673c46..4aa6332d67 100644 --- a/frontend/src/constants/queryFunctionOptions.ts +++ b/frontend/src/constants/queryFunctionOptions.ts @@ -2,7 +2,7 @@ import { QueryFunctionsTypes } from 'types/common/queryBuilder'; import { SelectOption } from 'types/common/select'; -export const queryFunctionOptions: SelectOption[] = [ +export const metricQueryFunctionOptions: SelectOption[] = [ { value: QueryFunctionsTypes.CUTOFF_MIN, label: 'Cut Off Min', @@ -65,6 +65,12 @@ export const queryFunctionOptions: SelectOption[] = [ }, ]; +export const logsQueryFunctionOptions: SelectOption[] = [ + { + value: QueryFunctionsTypes.TIME_SHIFT, + label: 'Time Shift', + }, +]; interface QueryFunctionConfigType { [key: string]: { showInput: boolean; diff --git a/frontend/src/container/FormAlertRules/QuerySection.tsx b/frontend/src/container/FormAlertRules/QuerySection.tsx index 1604cdb929..406a757eda 100644 --- a/frontend/src/container/FormAlertRules/QuerySection.tsx +++ b/frontend/src/container/FormAlertRules/QuerySection.tsx @@ -56,8 +56,9 @@ function QuerySection({ initialDataSource: ALERTS_DATA_SOURCE_MAP[alertType], }} showFunctions={ - alertType === AlertTypes.METRICS_BASED_ALERT && - alertDef.version === ENTITY_VERSION_V4 + (alertType === AlertTypes.METRICS_BASED_ALERT && + alertDef.version === ENTITY_VERSION_V4) || + alertType === AlertTypes.LOGS_BASED_ALERT } version={alertDef.version || 'v3'} /> diff --git a/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.styles.scss b/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.styles.scss index 3bafb59879..f0c7565d29 100644 --- a/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.styles.scss +++ b/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.styles.scss @@ -77,6 +77,7 @@ .qb-entity-options { .options { border-color: var(--bg-vanilla-300); + box-shadow: none; .periscope-btn { border-color: var(--bg-vanilla-300); diff --git a/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.tsx b/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.tsx index 8730506a88..fd8e860508 100644 --- a/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.tsx +++ b/frontend/src/container/QueryBuilder/components/QBEntityOptions/QBEntityOptions.tsx @@ -17,6 +17,7 @@ import { IBuilderQuery, QueryFunctionProps, } from 'types/api/queryBuilder/queryBuilderData'; +import { DataSource } from 'types/common/queryBuilder'; import QueryFunctions from '../QueryFunctions/QueryFunctions'; @@ -57,6 +58,8 @@ export default function QBEntityOptions({ } }; + const isLogsDataSource = query?.dataSource === DataSource.LOGS; + return (
@@ -97,12 +100,14 @@ export default function QBEntityOptions({ {showFunctions && - isMetricsDataSource && + (isMetricsDataSource || isLogsDataSource) && query && onQueryFunctionsUpdates && ( )} diff --git a/frontend/src/container/QueryBuilder/components/Query/Query.tsx b/frontend/src/container/QueryBuilder/components/Query/Query.tsx index 1bb761fde7..fb8b0e1561 100644 --- a/frontend/src/container/QueryBuilder/components/Query/Query.tsx +++ b/frontend/src/container/QueryBuilder/components/Query/Query.tsx @@ -36,6 +36,7 @@ import { } from 'react'; import { useLocation } from 'react-use'; import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData'; +import { DataSource } from 'types/common/queryBuilder'; import { transformToUpperCase } from 'utils/transformToUpperCase'; import QBEntityOptions from '../QBEntityOptions/QBEntityOptions'; @@ -324,7 +325,10 @@ export const Query = memo(function Query({