12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import { DateHistogram } from './components/QueryEditor/BucketAggregationsEditor/aggregations';
- import {
- ExtendedStat,
- MetricAggregation,
- MovingAverageModelOption,
- MetricAggregationType,
- } from './components/QueryEditor/MetricAggregationsEditor/aggregations';
- import { metricAggregationConfig, pipelineOptions } from './components/QueryEditor/MetricAggregationsEditor/utils';
- import { ElasticsearchQuery } from './types';
- export const extendedStats: ExtendedStat[] = [
- { label: 'Avg', value: 'avg' },
- { label: 'Min', value: 'min' },
- { label: 'Max', value: 'max' },
- { label: 'Sum', value: 'sum' },
- { label: 'Count', value: 'count' },
- { label: 'Std Dev', value: 'std_deviation' },
- { label: 'Std Dev Upper', value: 'std_deviation_bounds_upper' },
- { label: 'Std Dev Lower', value: 'std_deviation_bounds_lower' },
- ];
- export const movingAvgModelOptions: MovingAverageModelOption[] = [
- { label: 'Simple', value: 'simple' },
- { label: 'Linear', value: 'linear' },
- { label: 'Exponentially Weighted', value: 'ewma' },
- { label: 'Holt Linear', value: 'holt' },
- { label: 'Holt Winters', value: 'holt_winters' },
- ];
- export const highlightTags = {
- pre: '@HIGHLIGHT@',
- post: '@/HIGHLIGHT@',
- };
- export function defaultMetricAgg(id = '1'): MetricAggregation {
- return { type: 'count', id };
- }
- export function defaultBucketAgg(id = '1'): DateHistogram {
- return { type: 'date_histogram', id, settings: { interval: 'auto' } };
- }
- export const findMetricById = (metrics: MetricAggregation[], id: MetricAggregation['id']) =>
- metrics.find((metric) => metric.id === id);
- export function hasMetricOfType(target: ElasticsearchQuery, type: MetricAggregationType): boolean {
- return !!target?.metrics?.some((m) => m.type === type);
- }
- // Even if we have type guards when building a query, we currently have no way of getting this information from the response.
- // We should try to find a better (type safe) way of doing the following 2.
- export function isPipelineAgg(metricType: MetricAggregationType) {
- return metricType in pipelineOptions;
- }
- export function isPipelineAggWithMultipleBucketPaths(metricType: MetricAggregationType) {
- return !!metricAggregationConfig[metricType].supportsMultipleBucketPaths;
- }
|