mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* add history links for monaco completion provider folder * add history links for monaco query field folder * add history links for components folder * add history links for configuration folder * add history links for dashboard json folder * add history links for gcopypaste folder * add history link for variableMigration * add history link for querybuilder/components/metrics-modal folder * add history link for querybuilder/components/promqail folder * add history links for querybuilder/components folder * add history links for querybuilder/hooks folder * add history links for querybuilder/shared folder * add history links for querybuilder folder * add history links for querycache folder * add history links for src folder * use frontend package and custom auth in module.ts * remove files and fix import issues * remove usePrometheusFrontendPackage * remove extra files * update betterer * remove extra files after rebase * fix betterer for rebase * fix e2e flakiness
64 lines
2.6 KiB
TypeScript
64 lines
2.6 KiB
TypeScript
// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/querybuilder/aggregations.ts
|
|
import {
|
|
createAggregationOperation,
|
|
createAggregationOperationWithParam,
|
|
getPromOperationDisplayName,
|
|
getRangeVectorParamDef,
|
|
} from './operationUtils';
|
|
import { addOperationWithRangeVector } from './operations';
|
|
import { QueryBuilderOperation, QueryBuilderOperationDef } from './shared/types';
|
|
import { PromOperationId, PromVisualQueryOperationCategory } from './types';
|
|
|
|
export function getAggregationOperations(): QueryBuilderOperationDef[] {
|
|
return [
|
|
...createAggregationOperation(PromOperationId.Sum),
|
|
...createAggregationOperation(PromOperationId.Avg),
|
|
...createAggregationOperation(PromOperationId.Min),
|
|
...createAggregationOperation(PromOperationId.Max),
|
|
...createAggregationOperation(PromOperationId.Count),
|
|
...createAggregationOperationWithParam(PromOperationId.TopK, {
|
|
params: [{ name: 'K-value', type: 'number' }],
|
|
defaultParams: [5],
|
|
}),
|
|
...createAggregationOperationWithParam(PromOperationId.BottomK, {
|
|
params: [{ name: 'K-value', type: 'number' }],
|
|
defaultParams: [5],
|
|
}),
|
|
...createAggregationOperationWithParam(PromOperationId.CountValues, {
|
|
params: [{ name: 'Identifier', type: 'string' }],
|
|
defaultParams: ['count'],
|
|
}),
|
|
createAggregationOverTime(PromOperationId.SumOverTime),
|
|
createAggregationOverTime(PromOperationId.AvgOverTime),
|
|
createAggregationOverTime(PromOperationId.MinOverTime),
|
|
createAggregationOverTime(PromOperationId.MaxOverTime),
|
|
createAggregationOverTime(PromOperationId.CountOverTime),
|
|
createAggregationOverTime(PromOperationId.LastOverTime),
|
|
createAggregationOverTime(PromOperationId.PresentOverTime),
|
|
createAggregationOverTime(PromOperationId.AbsentOverTime),
|
|
createAggregationOverTime(PromOperationId.StddevOverTime),
|
|
];
|
|
}
|
|
|
|
function createAggregationOverTime(name: string): QueryBuilderOperationDef {
|
|
return {
|
|
id: name,
|
|
name: getPromOperationDisplayName(name),
|
|
params: [getRangeVectorParamDef()],
|
|
defaultParams: ['$__interval'],
|
|
alternativesKey: 'overtime function',
|
|
category: PromVisualQueryOperationCategory.RangeFunctions,
|
|
renderer: operationWithRangeVectorRenderer,
|
|
addOperationHandler: addOperationWithRangeVector,
|
|
};
|
|
}
|
|
|
|
function operationWithRangeVectorRenderer(
|
|
model: QueryBuilderOperation,
|
|
def: QueryBuilderOperationDef,
|
|
innerExpr: string
|
|
) {
|
|
let rangeVector = (model.params ?? [])[0] ?? '$__interval';
|
|
return `${def.id}(${innerExpr}[${rangeVector}])`;
|
|
}
|