diff --git a/frontend/src/api/queryBuilder/getAttributeKeys.ts b/frontend/src/api/queryBuilder/getAttributeKeys.ts index f9b84ea2a94e..faa181cedf48 100644 --- a/frontend/src/api/queryBuilder/getAttributeKeys.ts +++ b/frontend/src/api/queryBuilder/getAttributeKeys.ts @@ -17,6 +17,7 @@ export const getAggregateKeys = async ({ dataSource, aggregateAttribute, tagType, + signalSource, }: IGetAttributeKeysPayload): Promise< SuccessResponse | ErrorResponse > => { @@ -29,6 +30,7 @@ export const getAggregateKeys = async ({ searchText, dataSource, aggregateAttribute, + source: signalSource, })}&tagType=${tagType}`, ); diff --git a/frontend/src/components/QueryBuilderV2/QueryV2/MerticsAggregateSection/MetricsAggregateSection.tsx b/frontend/src/components/QueryBuilderV2/QueryV2/MerticsAggregateSection/MetricsAggregateSection.tsx index db7b140da3c9..6f9820ab1655 100644 --- a/frontend/src/components/QueryBuilderV2/QueryV2/MerticsAggregateSection/MetricsAggregateSection.tsx +++ b/frontend/src/components/QueryBuilderV2/QueryV2/MerticsAggregateSection/MetricsAggregateSection.tsx @@ -18,11 +18,13 @@ const MetricsAggregateSection = memo(function MetricsAggregateSection({ index, version, panelType, + signalSource = '', }: { query: IBuilderQuery; index: number; version: string; panelType: PANEL_TYPES | null; + signalSource: string; }): JSX.Element { const { setAggregationOptions } = useQueryBuilderV2Context(); const { @@ -208,6 +210,7 @@ const MetricsAggregateSection = memo(function MetricsAggregateSection({ disabled={!queryAggregation.metricName} query={query} onChange={handleChangeGroupByKeys} + signalSource={signalSource} /> @@ -244,6 +247,7 @@ const MetricsAggregateSection = memo(function MetricsAggregateSection({ disabled={!queryAggregation.metricName} query={query} onChange={handleChangeGroupByKeys} + signalSource={signalSource} /> diff --git a/frontend/src/components/QueryBuilderV2/QueryV2/QueryV2.tsx b/frontend/src/components/QueryBuilderV2/QueryV2/QueryV2.tsx index b4830a4ff932..2108161a307f 100644 --- a/frontend/src/components/QueryBuilderV2/QueryV2/QueryV2.tsx +++ b/frontend/src/components/QueryBuilderV2/QueryV2/QueryV2.tsx @@ -221,6 +221,7 @@ export const QueryV2 = memo(function QueryV2({ index={index} key={`metrics-aggregate-section-${query.queryName}-${query.dataSource}`} version="v4" + signalSource={signalSource as 'meter' | ''} /> )} diff --git a/frontend/src/container/ExplorerOptions/ExplorerOptionWrapper.tsx b/frontend/src/container/ExplorerOptions/ExplorerOptionWrapper.tsx index beef5c66861d..a2ecfce579d1 100644 --- a/frontend/src/container/ExplorerOptions/ExplorerOptionWrapper.tsx +++ b/frontend/src/container/ExplorerOptions/ExplorerOptionWrapper.tsx @@ -16,6 +16,7 @@ function ExplorerOptionWrapper({ sourcepage, isOneChartPerQuery, splitedQueries, + signalSource, }: ExplorerOptionsWrapperProps): JSX.Element { const [isExplorerOptionHidden, setIsExplorerOptionHidden] = useState(false); @@ -32,6 +33,7 @@ function ExplorerOptionWrapper({ isLoading={isLoading} onExport={onExport} sourcepage={sourcepage} + signalSource={signalSource} isExplorerOptionHidden={isExplorerOptionHidden} setIsExplorerOptionHidden={setIsExplorerOptionHidden} isOneChartPerQuery={isOneChartPerQuery} diff --git a/frontend/src/container/ExplorerOptions/ExplorerOptions.styles.scss b/frontend/src/container/ExplorerOptions/ExplorerOptions.styles.scss index ddc8f6ed7ac6..93dad5eb029d 100644 --- a/frontend/src/container/ExplorerOptions/ExplorerOptions.styles.scss +++ b/frontend/src/container/ExplorerOptions/ExplorerOptions.styles.scss @@ -1,12 +1,12 @@ .explorer-options-container { position: fixed; - bottom: 24px; + bottom: 8px; left: calc(50% + 240px); transform: translate(calc(-50% - 120px), 0); transition: left 0.2s linear; display: flex; - gap: 16px; + gap: 8px; background-color: transparent; .multi-alert-button, @@ -33,11 +33,12 @@ display: inline-flex; align-items: center; gap: 12px; - padding: 10px 10px; - border-radius: 50px; - border: 1px solid var(--bg-slate-400); + padding: 10px 12px; background: rgba(22, 24, 29, 0.6); + border: 1px solid var(--bg-slate-500); + border-radius: 4px; backdrop-filter: blur(20px); + box-sizing: border-box; .action-icon { display: flex; diff --git a/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx b/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx index 3483a2f59e16..f46e695b7531 100644 --- a/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx +++ b/frontend/src/container/ExplorerOptions/ExplorerOptions.tsx @@ -93,6 +93,7 @@ function ExplorerOptions({ onExport, query, sourcepage, + signalSource, isExplorerOptionHidden = false, setIsExplorerOptionHidden, isOneChartPerQuery = false, @@ -505,6 +506,11 @@ function ExplorerOptions({ : defaultLogsSelectedColumns, }); + if (signalSource === 'meter') { + history.replace(ROUTES.METER_EXPLORER); + return; + } + history.replace(DATASOURCE_VS_ROUTES[sourcepage]); }; @@ -993,6 +999,7 @@ export interface ExplorerOptionsProps { query: Query | null; disabled: boolean; sourcepage: DataSource; + signalSource?: string; isExplorerOptionHidden?: boolean; setIsExplorerOptionHidden?: Dispatch>; isOneChartPerQuery?: boolean; @@ -1005,6 +1012,7 @@ ExplorerOptions.defaultProps = { setIsExplorerOptionHidden: undefined, isOneChartPerQuery: false, splitedQueries: [], + signalSource: '', }; export default ExplorerOptions; diff --git a/frontend/src/container/MeterExplorer/Explorer/Explorer.tsx b/frontend/src/container/MeterExplorer/Explorer/Explorer.tsx index 5d1e619a0f54..37852f50ffd5 100644 --- a/frontend/src/container/MeterExplorer/Explorer/Explorer.tsx +++ b/frontend/src/container/MeterExplorer/Explorer/Explorer.tsx @@ -168,6 +168,7 @@ function Explorer(): JSX.Element { disabled={!stagedQuery} query={exportDefaultQuery} sourcepage={DataSource.METRICS} + signalSource="meter" onExport={handleExport} isOneChartPerQuery={false} splitedQueries={splitedQueries} diff --git a/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.interfaces.ts b/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.interfaces.ts index cea028d3ee69..8c7f72f3858f 100644 --- a/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.interfaces.ts +++ b/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.interfaces.ts @@ -5,4 +5,5 @@ export type GroupByFilterProps = { query: IBuilderQuery; onChange: (values: BaseAutocompleteData[]) => void; disabled: boolean; + signalSource?: string; }; diff --git a/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.tsx b/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.tsx index 1541384bbf61..896989bfa52a 100644 --- a/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.tsx +++ b/frontend/src/container/QueryBuilder/filters/GroupByFilter/GroupByFilter.tsx @@ -25,6 +25,7 @@ export const GroupByFilter = memo(function GroupByFilter({ query, onChange, disabled, + signalSource, }: GroupByFilterProps): JSX.Element { const queryClient = useQueryClient(); const [searchText, setSearchText] = useState(''); @@ -44,6 +45,7 @@ export const GroupByFilter = memo(function GroupByFilter({ dataSource: query.dataSource, aggregateOperator: query.aggregateOperator || '', searchText: debouncedValue, + signalSource: signalSource as 'meter' | '', }, { queryKey: [debouncedValue, isFocused], diff --git a/frontend/src/container/SideNav/menuItems.tsx b/frontend/src/container/SideNav/menuItems.tsx index 72fb057342bb..aa6a581bd21f 100644 --- a/frontend/src/container/SideNav/menuItems.tsx +++ b/frontend/src/container/SideNav/menuItems.tsx @@ -114,7 +114,7 @@ const menuItems: SidebarItem[] = [ key: ROUTES.METRICS_EXPLORER, label: 'Metrics', icon: , - isNew: true, + isNew: false, itemKey: 'metrics', }, { @@ -231,7 +231,7 @@ export const defaultMoreMenuItems: SidebarItem[] = [ key: ROUTES.METRICS_EXPLORER, label: 'Metrics', icon: , - isNew: true, + isNew: false, isEnabled: true, itemKey: 'metrics', }, diff --git a/frontend/src/types/api/queryBuilder/getAttributeKeys.ts b/frontend/src/types/api/queryBuilder/getAttributeKeys.ts index c3062e256223..e510f99962b7 100644 --- a/frontend/src/types/api/queryBuilder/getAttributeKeys.ts +++ b/frontend/src/types/api/queryBuilder/getAttributeKeys.ts @@ -8,4 +8,5 @@ export interface IGetAttributeKeysPayload { searchText: string; aggregateAttribute: string; tagType?: BaseAutocompleteData['type']; + signalSource?: string; }