diff --git a/frontend/src/constants/dashboard.ts b/frontend/src/constants/dashboard.ts
index 3aa495d6b8..587b781906 100644
--- a/frontend/src/constants/dashboard.ts
+++ b/frontend/src/constants/dashboard.ts
@@ -30,4 +30,5 @@ export const QueryBuilderQueryTemplate = {
export const QueryBuilderFormulaTemplate = {
expression: '',
disabled: false,
+ legend: '',
};
diff --git a/frontend/src/container/FormAlertRules/QuerySection.tsx b/frontend/src/container/FormAlertRules/QuerySection.tsx
index b34247e265..2450f31dcd 100644
--- a/frontend/src/container/FormAlertRules/QuerySection.tsx
+++ b/frontend/src/container/FormAlertRules/QuerySection.tsx
@@ -68,15 +68,20 @@ function QuerySection({
const handleFormulaChange = ({
formulaIndex,
expression,
+ legend,
toggleDisable,
toggleDelete,
}: IQueryBuilderFormulaHandleChange): void => {
const allFormulas = formulaQueries;
const current = allFormulas[formulaIndex];
- if (expression) {
+ if (expression !== undefined) {
current.expression = expression;
}
+ if (legend !== undefined) {
+ current.legend = legend;
+ }
+
if (toggleDisable) {
current.disabled = !current.disabled;
}
@@ -179,6 +184,7 @@ function QuerySection({
formulaOnly: true,
expression: 'A',
disabled: false,
+ legend: '',
};
setFormulaQueries({ ...formulas });
diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx
index 02bc41198c..9a5ce5e8c5 100644
--- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx
+++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/formula.tsx
@@ -37,6 +37,14 @@ function MetricsBuilderFormula({
style={{ marginBottom: '0.5rem' }}
rows={2}
/>
+ {
+ handleFormulaChange({ formulaIndex, legend: event.target.value });
+ }}
+ size="middle"
+ defaultValue={formulaData.legend}
+ addonBefore="Legend Format"
+ />
);
}
diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx
index fdb6d4b7bc..f485b4e95c 100644
--- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx
+++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/index.tsx
@@ -85,6 +85,7 @@ function QueryBuilderQueryContainer({
const handleQueryBuilderFormulaChange = ({
formulaIndex,
expression,
+ legend,
toggleDisable,
toggleDelete,
}: IQueryBuilderFormulaHandleChange): void => {
@@ -94,9 +95,12 @@ function QueryBuilderQueryContainer({
];
const currentIndexFormula = allFormulas[formulaIndex as number];
- if (expression) {
+ if (expression !== undefined) {
currentIndexFormula.expression = expression;
}
+ if (legend !== undefined) {
+ currentIndexFormula.legend = legend;
+ }
if (toggleDisable) {
currentIndexFormula.disabled = !currentIndexFormula.disabled;
diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts
index c577b8d123..d468579d2a 100644
--- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts
+++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/types.ts
@@ -19,5 +19,6 @@ export interface IQueryBuilderFormulaHandleChange {
formulaIndex: number | string;
expression?: IMetricsBuilderFormula['expression'];
toggleDisable?: IMetricsBuilderFormula['disabled'];
+ legend?: IMetricsBuilderFormula['legend'];
toggleDelete?: boolean;
}
diff --git a/frontend/src/store/actions/dashboard/getQueryResults.ts b/frontend/src/store/actions/dashboard/getQueryResults.ts
index 17137b13c1..88cd3bbf07 100644
--- a/frontend/src/store/actions/dashboard/getQueryResults.ts
+++ b/frontend/src/store/actions/dashboard/getQueryResults.ts
@@ -76,9 +76,11 @@ export async function GetMetricQueryRange({
queryData[WIDGET_QUERY_BUILDER_FORMULA_KEY_NAME].map((formula) => {
const generatedFormulaPayload = {};
+ legendMap[formula.name] = formula.legend || formula.name;
generatedFormulaPayload.queryName = formula.name;
generatedFormulaPayload.expression = formula.expression;
generatedFormulaPayload.disabled = formula.disabled;
+ generatedFormulaPayload.legend = formula.legend;
builderQueries[formula.name] = generatedFormulaPayload;
});
QueryPayload.compositeMetricQuery.builderQueries = builderQueries;
diff --git a/frontend/src/types/api/alerts/compositeQuery.ts b/frontend/src/types/api/alerts/compositeQuery.ts
index 868eb712c4..42c0c5a753 100644
--- a/frontend/src/types/api/alerts/compositeQuery.ts
+++ b/frontend/src/types/api/alerts/compositeQuery.ts
@@ -28,10 +28,9 @@ export interface IBuilderQueries {
// for api calls
export interface IBuilderQuery
extends Omit<
- IMetricQuery,
- 'aggregateOperator' | 'legend' | 'metricName' | 'tagFilters'
- >,
- Omit {
+ IMetricQuery,
+ 'aggregateOperator' | 'legend' | 'metricName' | 'tagFilters'
+ > {
aggregateOperator: EAggregateOperator | undefined;
disabled: boolean;
name: string;
diff --git a/frontend/src/types/api/dashboard/getAll.ts b/frontend/src/types/api/dashboard/getAll.ts
index 6ae751475f..c158bff826 100644
--- a/frontend/src/types/api/dashboard/getAll.ts
+++ b/frontend/src/types/api/dashboard/getAll.ts
@@ -71,6 +71,7 @@ export interface IMetricsBuilderFormula {
expression: string;
disabled: boolean;
name: string;
+ legend: string;
}
export interface IMetricsBuilderQuery {
aggregateOperator: EAggregateOperator;