2025-04-01 10:38:02 +09:00

61 lines
1.3 KiB
TypeScript

import { VAR_GROUP_BY_EXP, VAR_METRIC_EXPR } from '../../shared';
import { simpleGraphBuilder } from '../graphBuilders';
import { AutoQueryInfo } from '../types';
export type CommonQueryInfoParams = {
description: string;
mainQueryExpr: string;
breakdownQueryExpr: string;
unit: string;
};
export function generateCommonAutoQueryInfo({
description,
mainQueryExpr,
breakdownQueryExpr,
unit,
}: CommonQueryInfoParams): AutoQueryInfo {
const common = {
title: VAR_METRIC_EXPR,
unit,
};
const mainQuery = {
refId: 'A',
expr: mainQueryExpr,
legendFormat: description,
fromExploreMetrics: true,
};
const main = {
...common,
title: description,
queries: [mainQuery],
variant: 'main',
vizBuilder: () => simpleGraphBuilder({ ...main }),
};
const preview = {
...common,
queries: [{ ...mainQuery, legendFormat: description }],
vizBuilder: () => simpleGraphBuilder(preview),
variant: 'preview',
};
const breakdown = {
...common,
queries: [
{
refId: 'A',
expr: breakdownQueryExpr,
legendFormat: `{{${VAR_GROUP_BY_EXP}}}`,
fromExploreMetrics: true,
},
],
vizBuilder: () => simpleGraphBuilder(breakdown),
variant: 'breakdown',
};
return { preview, main, breakdown, variants: [] };
}