| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- ///<reference path="../../../headers/common.d.ts" />
- import _ from "lodash";
- export const metricAggTypes = [
- { text: "Count", value: "count", requiresField: false },
- {
- text: "Average",
- value: "avg",
- requiresField: true,
- supportsInlineScript: true,
- supportsMissing: true
- },
- {
- text: "Sum",
- value: "sum",
- requiresField: true,
- supportsInlineScript: true,
- supportsMissing: true
- },
- {
- text: "Max",
- value: "max",
- requiresField: true,
- supportsInlineScript: true,
- supportsMissing: true
- },
- {
- text: "Min",
- value: "min",
- requiresField: true,
- supportsInlineScript: true,
- supportsMissing: true
- },
- {
- text: "Extended Stats",
- value: "extended_stats",
- requiresField: true,
- supportsMissing: true,
- supportsInlineScript: true
- },
- {
- text: "Percentiles",
- value: "percentiles",
- requiresField: true,
- supportsMissing: true,
- supportsInlineScript: true
- },
- {
- text: "Unique Count",
- value: "cardinality",
- requiresField: true,
- supportsMissing: true
- },
- {
- text: "Moving Average",
- value: "moving_avg",
- requiresField: false,
- isPipelineAgg: true,
- minVersion: 2
- },
- {
- text: "Derivative",
- value: "derivative",
- requiresField: false,
- isPipelineAgg: true,
- minVersion: 2
- },
- { text: "Raw Document", value: "raw_document", requiresField: false }
- ];
- export const bucketAggTypes = [
- { text: "Terms", value: "terms", requiresField: true },
- { text: "Filters", value: "filters" },
- { text: "Geo Hash Grid", value: "geohash_grid", requiresField: true },
- { text: "Date Histogram", value: "date_histogram", requiresField: true },
- { text: "Histogram", value: "histogram", requiresField: true }
- ];
- export const orderByOptions = [
- { text: "Doc Count", value: "_count" },
- { text: "Term value", value: "_term" }
- ];
- export const orderOptions = [
- { text: "Top", value: "desc" },
- { text: "Bottom", value: "asc" }
- ];
- export const sizeOptions = [
- { text: "No limit", value: "0" },
- { text: "1", value: "1" },
- { text: "2", value: "2" },
- { text: "3", value: "3" },
- { text: "5", value: "5" },
- { text: "10", value: "10" },
- { text: "15", value: "15" },
- { text: "20", value: "20" }
- ];
- export const extendedStats = [
- { text: "Avg", value: "avg" },
- { text: "Min", value: "min" },
- { text: "Max", value: "max" },
- { text: "Sum", value: "sum" },
- { text: "Count", value: "count" },
- { text: "Std Dev", value: "std_deviation" },
- { text: "Std Dev Upper", value: "std_deviation_bounds_upper" },
- { text: "Std Dev Lower", value: "std_deviation_bounds_lower" }
- ];
- export const intervalOptions = [
- { text: "auto", value: "auto" },
- { text: "10s", value: "10s" },
- { text: "1m", value: "1m" },
- { text: "5m", value: "5m" },
- { text: "10m", value: "10m" },
- { text: "20m", value: "20m" },
- { text: "1h", value: "1h" },
- { text: "1d", value: "1d" }
- ];
- export const movingAvgModelOptions = [
- { text: "Simple", value: "simple" },
- { text: "Linear", value: "linear" },
- { text: "Exponentially Weighted", value: "ewma" },
- { text: "Holt Linear", value: "holt" },
- { text: "Holt Winters", value: "holt_winters" }
- ];
- export const pipelineOptions = {
- moving_avg: [
- { text: "window", default: 5 },
- { text: "model", default: "simple" },
- { text: "predict", default: undefined },
- { text: "minimize", default: false }
- ],
- derivative: [{ text: "unit", default: undefined }]
- };
- export const movingAvgModelSettings = {
- simple: [],
- linear: [],
- ewma: [{ text: "Alpha", value: "alpha", default: undefined }],
- holt: [
- { text: "Alpha", value: "alpha", default: undefined },
- { text: "Beta", value: "beta", default: undefined }
- ],
- holt_winters: [
- { text: "Alpha", value: "alpha", default: undefined },
- { text: "Beta", value: "beta", default: undefined },
- { text: "Gamma", value: "gamma", default: undefined },
- { text: "Period", value: "period", default: undefined },
- { text: "Pad", value: "pad", default: undefined, isCheckbox: true }
- ]
- };
- export function getMetricAggTypes(esVersion) {
- return _.filter(metricAggTypes, function(f) {
- if (f.minVersion) {
- return f.minVersion <= esVersion;
- } else {
- return true;
- }
- });
- }
- export function getPipelineOptions(metric) {
- if (!isPipelineAgg(metric.type)) {
- return [];
- }
- return pipelineOptions[metric.type];
- }
- export function isPipelineAgg(metricType) {
- if (metricType) {
- var po = pipelineOptions[metricType];
- return po !== null && po !== undefined;
- }
- return false;
- }
- export function getPipelineAggOptions(targets) {
- var result = [];
- _.each(targets.metrics, function(metric) {
- if (!isPipelineAgg(metric.type)) {
- result.push({ text: describeMetric(metric), value: metric.id });
- }
- });
- return result;
- }
- export function getMovingAvgSettings(model, filtered) {
- var filteredResult = [];
- if (filtered) {
- _.each(movingAvgModelSettings[model], function(setting) {
- if (!setting.isCheckbox) {
- filteredResult.push(setting);
- }
- });
- return filteredResult;
- }
- return movingAvgModelSettings[model];
- }
- export function getOrderByOptions(target) {
- var metricRefs = [];
- _.each(target.metrics, function(metric) {
- if (metric.type !== "count") {
- metricRefs.push({ text: describeMetric(metric), value: metric.id });
- }
- });
- return orderByOptions.concat(metricRefs);
- }
- export function describeOrder(order) {
- var def = _.find(orderOptions, { value: order });
- return def.text;
- }
- export function describeMetric(metric) {
- var def = _.find(metricAggTypes, { value: metric.type });
- return def.text + " " + metric.field;
- }
- export function describeOrderBy(orderBy, target) {
- var def = _.find(orderByOptions, { value: orderBy });
- if (def) {
- return def.text;
- }
- var metric = _.find(target.metrics, { id: orderBy });
- if (metric) {
- return describeMetric(metric);
- } else {
- return "metric not found";
- }
- }
|