mirror of
https://github.com/SigNoz/signoz.git
synced 2026-10-18 08:00:41 +01:00
<!--A few plain bullets saying what changed and why, for a reviewer skimming it - not a wall of text, not a restatement of the diff, not generated boilerplate.--> #### Description Adds a new query plugin kind `signoz/AIBuilderQuery`. Its corresponding spec is equivalent to `qb.QueryBuilderQuery[qb.TraceAggregation]` <!--Reference issues using `Closes #issue-number` to enable automatic closure on merge. --> #### Issues closed by this PR Closes https://github.com/SigNoz/pulse-pod/issues/334 #### Screenshots / Screen Recordings https://github.com/user-attachments/assets/3388abc1-f079-464c-b660-7b65ef54cb68 <!--Anything reviewers should keep in mind while reviewing --> #### Additional Information Will need to build UI changes on top of this <!--Please delete paragraphs that you did not use before submitting.--> --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com>
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import {
|
|
initialFormulaBuilderFormValues,
|
|
initialQueryBuilderFormValuesMap,
|
|
} from 'constants/queryBuilder';
|
|
import { FORMULA_REGEXP, TRACE_OPERATOR_REGEXP } from 'constants/regExp';
|
|
import {
|
|
BuilderQueryDataResourse,
|
|
IBuilderFormula,
|
|
IBuilderQuery,
|
|
IBuilderTraceOperator,
|
|
} from 'types/api/queryBuilder/queryBuilderData';
|
|
import { QueryBuilderData } from 'types/common/queryBuilder';
|
|
|
|
export const transformQueryBuilderDataModel = (
|
|
data: BuilderQueryDataResourse,
|
|
queryTypes?: Record<
|
|
string,
|
|
| 'builder_query'
|
|
| 'builder_ai_query'
|
|
| 'builder_formula'
|
|
| 'builder_trace_operator'
|
|
>,
|
|
): QueryBuilderData => {
|
|
const queryData: QueryBuilderData['queryData'] = [];
|
|
const queryFormulas: QueryBuilderData['queryFormulas'] = [];
|
|
const queryTraceOperator: QueryBuilderData['queryTraceOperator'] = [];
|
|
|
|
Object.entries(data).forEach(([key, value]) => {
|
|
const isFormula = queryTypes
|
|
? queryTypes[key] === 'builder_formula'
|
|
: FORMULA_REGEXP.test(value.queryName);
|
|
|
|
const isTraceOperator = queryTypes
|
|
? queryTypes[key] === 'builder_trace_operator'
|
|
: TRACE_OPERATOR_REGEXP.test(value.queryName);
|
|
|
|
if (isFormula) {
|
|
const formula = value as IBuilderFormula;
|
|
queryFormulas.push({ ...initialFormulaBuilderFormValues, ...formula });
|
|
} else if (isTraceOperator) {
|
|
const traceOperator = value as IBuilderTraceOperator;
|
|
queryTraceOperator.push({ ...traceOperator });
|
|
} else {
|
|
const queryFromData = value as IBuilderQuery;
|
|
queryData.push({
|
|
...initialQueryBuilderFormValuesMap.metrics,
|
|
...queryFromData,
|
|
});
|
|
}
|
|
});
|
|
|
|
return { queryData, queryFormulas, queryTraceOperator };
|
|
};
|