61 lines
1.3 KiB
TypeScript
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: [] };
|
|
}
|