From 0058764851d863cabec0f69b814abfbc4a663bfc Mon Sep 17 00:00:00 2001 From: Yaroslav Kuznietsov Date: Fri, 8 Oct 2021 11:28:29 +0300 Subject: [PATCH] [MetricVis] Move the expression function and renderer to a separate plugin. (#113427) (#114384) * Added expressionMetricVis plugin. * splitted metric vis_type and expression. * Fixed check errors. * Fixed plugin docs. * updated snapshots. * Added code owner to expressionMetricVis. * updated chart docs. * Changed the `Metric` type export. * Added storybook. * Added bucket story. * Added without label story. * Added "with custom font size" story. * Added other stories. * Added DatatableColumn accessors. * Replaced Metric with MetricOptions. * Fixed MetricOptions.any * updated the check of min/max existence. * Updated function/renderer names. metricRenderer -> metricVisRenderer metricFunction -> metricVisFunction * updated snapshot. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> # Conflicts: # .github/CODEOWNERS # packages/kbn-optimizer/limits.yml # src/dev/code_coverage/ingest_coverage/__tests__/enumerate_patterns.test.js # src/dev/code_coverage/ingest_coverage/__tests__/transforms.test.js --- .i18nrc.json | 1 + api_docs/charts.json | 92 +++---- docs/developer/plugin-list.asciidoc | 4 + packages/kbn-optimizer/limits.yml | 3 +- src/dev/storybook/aliases.ts | 1 + .../expression_metric/.i18nrc.json | 6 + .../expression_metric/.storybook/main.js | 23 ++ .../expression_metric/README.md | 9 + .../expression_metric/common/constants.ts | 9 + .../metric_vis_function.test.ts.snap} | 2 +- .../common/expression_functions/index.ts | 9 + .../metric_vis_function.test.ts} | 13 +- .../metric_vis_function.ts} | 82 ++---- .../expression_metric/common/index.ts | 25 ++ .../common/types/expression_functions.ts | 49 ++++ .../common/types/expression_renderers.ts | 46 ++++ .../expression_metric/common/types/index.ts | 10 + .../expression_metric/jest.config.js | 19 ++ .../expression_metric/kibana.json | 15 ++ .../public/__mocks__/format_service.ts | 13 + .../__stories__/metric_renderer.stories.tsx | 250 ++++++++++++++++++ .../metric_component.test.tsx.snap} | 0 .../public/components/metric.scss} | 0 .../components/metric_component.test.tsx} | 4 +- .../public/components/metric_component.tsx} | 48 ++-- .../public/components/metric_value.test.tsx} | 2 +- .../public/components/metric_value.tsx} | 6 +- .../public/expression_renderers/index.ts | 9 + .../metric_vis_renderer.tsx | 15 +- .../public/format_service.ts} | 9 +- .../expression_metric/public/index.ts | 13 + .../expression_metric/public/plugin.ts | 36 +++ .../expression_metric/server/index.ts | 13 + .../expression_metric/server/plugin.ts | 34 +++ .../expression_metric/tsconfig.json | 23 ++ src/plugins/charts/common/index.ts | 34 ++- .../static/color_maps/color_maps.ts | 0 .../static/color_maps/heatmap_color.test.ts | 0 .../static/color_maps/heatmap_color.ts | 0 .../static/color_maps/index.ts | 0 .../static/color_maps/mock.ts | 0 .../static/color_maps/truncated_color_maps.ts | 0 .../static/components/collections.ts | 0 .../charts/common/static/components/index.ts | 9 + src/plugins/charts/common/static/index.ts | 21 ++ .../static/components => common}/types.ts | 3 +- src/plugins/charts/kibana.json | 1 + src/plugins/charts/public/index.ts | 15 ++ src/plugins/charts/public/mocks.ts | 2 +- .../charts/public/static/components/index.ts | 2 - src/plugins/charts/public/static/index.ts | 1 - src/plugins/vis_types/metric/kibana.json | 2 +- .../metric/public/components/index.ts | 9 + .../metric/public/metric_vis_type.ts | 2 +- src/plugins/vis_types/metric/public/plugin.ts | 25 +- src/plugins/vis_types/metric/public/to_ast.ts | 4 +- src/plugins/vis_types/metric/public/types.ts | 9 - src/plugins/vis_types/metric/tsconfig.json | 4 +- .../screenshots/baseline/metric_all_data.png | Bin 29776 -> 29812 bytes .../baseline/metric_empty_data.png | Bin 5163 -> 5152 bytes .../baseline/metric_multi_metric_data.png | Bin 42478 -> 43524 bytes .../baseline/metric_percentage_mode.png | Bin 22032 -> 30182 bytes .../baseline/metric_single_metric_data.png | Bin 20209 -> 27840 bytes .../snapshots/baseline/combined_test3.json | 2 +- .../snapshots/baseline/final_output_test.json | 2 +- .../snapshots/baseline/metric_all_data.json | 2 +- .../snapshots/baseline/metric_empty_data.json | 2 +- .../baseline/metric_multi_metric_data.json | 2 +- .../baseline/metric_percentage_mode.json | 2 +- .../baseline/metric_single_metric_data.json | 2 +- .../snapshots/baseline/partial_test_2.json | 2 +- .../snapshots/baseline/step_output_test3.json | 2 +- .../snapshots/session/combined_test3.json | 2 +- .../snapshots/session/final_output_test.json | 2 +- .../snapshots/session/metric_all_data.json | 2 +- .../snapshots/session/metric_empty_data.json | 2 +- .../session/metric_multi_metric_data.json | 2 +- .../session/metric_percentage_mode.json | 2 +- .../session/metric_single_metric_data.json | 2 +- .../snapshots/session/partial_test_2.json | 2 +- .../snapshots/session/step_output_test3.json | 2 +- .../translations/translations/ja-JP.json | 30 +-- .../translations/translations/zh-CN.json | 30 +-- 83 files changed, 875 insertions(+), 257 deletions(-) create mode 100755 src/plugins/chart_expressions/expression_metric/.i18nrc.json create mode 100644 src/plugins/chart_expressions/expression_metric/.storybook/main.js create mode 100755 src/plugins/chart_expressions/expression_metric/README.md create mode 100644 src/plugins/chart_expressions/expression_metric/common/constants.ts rename src/plugins/{vis_types/metric/public/__snapshots__/metric_vis_fn.test.ts.snap => chart_expressions/expression_metric/common/expression_functions/__snapshots__/metric_vis_function.test.ts.snap} (98%) create mode 100644 src/plugins/chart_expressions/expression_metric/common/expression_functions/index.ts rename src/plugins/{vis_types/metric/public/metric_vis_fn.test.ts => chart_expressions/expression_metric/common/expression_functions/metric_vis_function.test.ts} (81%) rename src/plugins/{vis_types/metric/public/metric_vis_fn.ts => chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts} (66%) create mode 100755 src/plugins/chart_expressions/expression_metric/common/index.ts create mode 100644 src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts create mode 100644 src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts create mode 100644 src/plugins/chart_expressions/expression_metric/common/types/index.ts create mode 100644 src/plugins/chart_expressions/expression_metric/jest.config.js create mode 100755 src/plugins/chart_expressions/expression_metric/kibana.json create mode 100644 src/plugins/chart_expressions/expression_metric/public/__mocks__/format_service.ts create mode 100644 src/plugins/chart_expressions/expression_metric/public/__stories__/metric_renderer.stories.tsx rename src/plugins/{vis_types/metric/public/components/__snapshots__/metric_vis_component.test.tsx.snap => chart_expressions/expression_metric/public/components/__snapshots__/metric_component.test.tsx.snap} (100%) rename src/plugins/{vis_types/metric/public/components/metric_vis.scss => chart_expressions/expression_metric/public/components/metric.scss} (100%) rename src/plugins/{vis_types/metric/public/components/metric_vis_component.test.tsx => chart_expressions/expression_metric/public/components/metric_component.test.tsx} (97%) rename src/plugins/{vis_types/metric/public/components/metric_vis_component.tsx => chart_expressions/expression_metric/public/components/metric_component.tsx} (81%) rename src/plugins/{vis_types/metric/public/components/metric_vis_value.test.tsx => chart_expressions/expression_metric/public/components/metric_value.test.tsx} (97%) rename src/plugins/{vis_types/metric/public/components/metric_vis_value.tsx => chart_expressions/expression_metric/public/components/metric_value.tsx} (94%) create mode 100644 src/plugins/chart_expressions/expression_metric/public/expression_renderers/index.ts rename src/plugins/{vis_types/metric/public => chart_expressions/expression_metric/public/expression_renderers}/metric_vis_renderer.tsx (73%) rename src/plugins/{vis_types/metric/public/services.ts => chart_expressions/expression_metric/public/format_service.ts} (57%) create mode 100644 src/plugins/chart_expressions/expression_metric/public/index.ts create mode 100644 src/plugins/chart_expressions/expression_metric/public/plugin.ts create mode 100644 src/plugins/chart_expressions/expression_metric/server/index.ts create mode 100644 src/plugins/chart_expressions/expression_metric/server/plugin.ts create mode 100644 src/plugins/chart_expressions/expression_metric/tsconfig.json rename src/plugins/charts/{public => common}/static/color_maps/color_maps.ts (100%) rename src/plugins/charts/{public => common}/static/color_maps/heatmap_color.test.ts (100%) rename src/plugins/charts/{public => common}/static/color_maps/heatmap_color.ts (100%) rename src/plugins/charts/{public => common}/static/color_maps/index.ts (100%) rename src/plugins/charts/{public => common}/static/color_maps/mock.ts (100%) rename src/plugins/charts/{public => common}/static/color_maps/truncated_color_maps.ts (100%) rename src/plugins/charts/{public => common}/static/components/collections.ts (100%) create mode 100644 src/plugins/charts/common/static/components/index.ts create mode 100644 src/plugins/charts/common/static/index.ts rename src/plugins/charts/{public/static/components => common}/types.ts (88%) create mode 100644 src/plugins/vis_types/metric/public/components/index.ts diff --git a/.i18nrc.json b/.i18nrc.json index c78f006a1bad..6a0277ee66f8 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -30,6 +30,7 @@ "expressionRevealImage": "src/plugins/expression_reveal_image", "expressionShape": "src/plugins/expression_shape", "expressionTagcloud": "src/plugins/chart_expressions/expression_tagcloud", + "expressionMetricVis": "src/plugins/chart_expressions/expression_metric", "inputControl": "src/plugins/input_control_vis", "inspector": "src/plugins/inspector", "inspectorViews": "src/legacy/core_plugins/inspector_views", diff --git a/api_docs/charts.json b/api_docs/charts.json index 2066e0f6cd9c..aa92aabef685 100644 --- a/api_docs/charts.json +++ b/api_docs/charts.json @@ -478,7 +478,7 @@ "signature": [ "(value: any, colorSchemaName: string) => string" ], - "path": "src/plugins/charts/public/static/color_maps/heatmap_color.ts", + "path": "src/plugins/charts/common/static/color_maps/heatmap_color.ts", "deprecated": false, "children": [ { @@ -491,7 +491,7 @@ "signature": [ "any" ], - "path": "src/plugins/charts/public/static/color_maps/heatmap_color.ts", + "path": "src/plugins/charts/common/static/color_maps/heatmap_color.ts", "deprecated": false, "isRequired": true }, @@ -505,7 +505,7 @@ "signature": [ "string" ], - "path": "src/plugins/charts/public/static/color_maps/heatmap_color.ts", + "path": "src/plugins/charts/common/static/color_maps/heatmap_color.ts", "deprecated": false, "isRequired": true } @@ -936,7 +936,7 @@ "tags": [], "label": "ColorMap", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -949,7 +949,7 @@ "signature": [ "any" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ], @@ -962,7 +962,7 @@ "tags": [], "label": "ColorSchema", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -981,7 +981,7 @@ "text": "ColorSchemas" } ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -991,7 +991,7 @@ "tags": [], "label": "text", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ], @@ -1817,7 +1817,7 @@ "tags": [], "label": "RawColorSchema", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -1836,7 +1836,7 @@ "text": "ColorSchemas" } ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -1846,7 +1846,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -1859,7 +1859,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ], @@ -2011,7 +2011,7 @@ "tags": [], "label": "ColorSchemas", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "initialIsOpen": false } @@ -2027,7 +2027,7 @@ "signature": [ "\"Background\" | \"Labels\" | \"None\"" ], - "path": "src/plugins/charts/public/static/components/collections.ts", + "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, "initialIsOpen": false }, @@ -2048,7 +2048,7 @@ }, "[]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "initialIsOpen": false }, @@ -2059,7 +2059,7 @@ "tags": [], "label": "defaultCountLabel", "description": [], - "path": "src/plugins/charts/public/static/components/collections.ts", + "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, "initialIsOpen": false }, @@ -2073,7 +2073,7 @@ "signature": [ "number" ], - "path": "src/plugins/charts/public/static/components/collections.ts", + "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, "initialIsOpen": false }, @@ -2124,7 +2124,7 @@ }, "[]" ], - "path": "src/plugins/charts/public/static/color_maps/truncated_color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/truncated_color_maps.ts", "deprecated": false, "initialIsOpen": false } @@ -2140,7 +2140,7 @@ "signature": [ "{ readonly Background: \"Background\"; readonly Labels: \"Labels\"; readonly None: \"None\"; }" ], - "path": "src/plugins/charts/public/static/components/collections.ts", + "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, "initialIsOpen": false }, @@ -2154,7 +2154,7 @@ "signature": [ "{ readonly Horizontal: number; readonly Vertical: number; readonly Angled: number; }" ], - "path": "src/plugins/charts/public/static/components/collections.ts", + "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, "initialIsOpen": false }, @@ -2165,7 +2165,7 @@ "tags": [], "label": "truncatedColorMaps", "description": [], - "path": "src/plugins/charts/public/static/color_maps/truncated_color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/truncated_color_maps.ts", "deprecated": false, "children": [], "initialIsOpen": false @@ -2177,7 +2177,7 @@ "tags": [], "label": "vislibColorMaps", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2189,7 +2189,7 @@ "description": [ "// Sequential" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2209,7 +2209,7 @@ }, ".Blues" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2219,7 +2219,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2232,7 +2232,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ] @@ -2244,7 +2244,7 @@ "tags": [], "label": "[ColorSchemas.Greens]", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2264,7 +2264,7 @@ }, ".Greens" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2274,7 +2274,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2287,7 +2287,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ] @@ -2299,7 +2299,7 @@ "tags": [], "label": "[ColorSchemas.Greys]", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2319,7 +2319,7 @@ }, ".Greys" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2329,7 +2329,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2342,7 +2342,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ] @@ -2354,7 +2354,7 @@ "tags": [], "label": "[ColorSchemas.Reds]", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2374,7 +2374,7 @@ }, ".Reds" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2384,7 +2384,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2397,7 +2397,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ] @@ -2409,7 +2409,7 @@ "tags": [], "label": "[ColorSchemas.YellowToRed]", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2429,7 +2429,7 @@ }, ".YellowToRed" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2439,7 +2439,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2452,7 +2452,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ] @@ -2464,7 +2464,7 @@ "tags": [], "label": "[ColorSchemas.GreenToRed]", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false, "children": [ { @@ -2484,7 +2484,7 @@ }, ".GreenToRed" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2494,7 +2494,7 @@ "tags": [], "label": "label", "description": [], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false }, { @@ -2507,7 +2507,7 @@ "signature": [ "[number, number[]][]" ], - "path": "src/plugins/charts/public/static/color_maps/color_maps.ts", + "path": "src/plugins/charts/common/static/color_maps/color_maps.ts", "deprecated": false } ] diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index 45daea987ad1..acf98701e4b7 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -92,6 +92,10 @@ This API doesn't support angular, for registering angular dev tools, bootstrap a |Expression Metric plugin adds a metric renderer and function to the expression plugin. +|{kib-repo}blob/{branch}/src/plugins/chart_expressions/expression_metric/README.md[expressionMetricVis] +|Expression MetricVis plugin adds a metric renderer and function to the expression plugin. The renderer will display the metric chart. + + |{kib-repo}blob/{branch}/src/plugins/expression_repeat_image/README.md[expressionRepeatImage] |Expression Repeat Image plugin adds a repeatImage function to the expression plugin and an associated renderer. The renderer will display the given image in mutliple instances. diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 873548319a05..d62115c44b0c 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -81,7 +81,6 @@ pageLoadAssetSize: usageCollection: 39762 visDefaultEditor: 50178 visTypeMarkdown: 30896 - visTypeMetric: 42790 visTypeTable: 95078 visTypeTagcloud: 37575 visTypeTimelion: 68883 @@ -118,4 +117,6 @@ pageLoadAssetSize: share: 100298 snapshotRestore: 63225 customIntegrations: 28810 + expressionMetricVis: 23121 + visTypeMetric: 23332 dataViews: 42000 diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts index c04f0d4f9320..ee09c94477af 100644 --- a/src/dev/storybook/aliases.ts +++ b/src/dev/storybook/aliases.ts @@ -25,6 +25,7 @@ export const storybookAliases = { expression_reveal_image: 'src/plugins/expression_reveal_image/.storybook', expression_shape: 'src/plugins/expression_shape/.storybook', expression_tagcloud: 'src/plugins/chart_expressions/expression_tagcloud/.storybook', + expression_metric_vis: 'src/plugins/chart_expressions/expression_metric/.storybook', fleet: 'x-pack/plugins/fleet/storybook', infra: 'x-pack/plugins/infra/.storybook', security_solution: 'x-pack/plugins/security_solution/.storybook', diff --git a/src/plugins/chart_expressions/expression_metric/.i18nrc.json b/src/plugins/chart_expressions/expression_metric/.i18nrc.json new file mode 100755 index 000000000000..a107bad97f27 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/.i18nrc.json @@ -0,0 +1,6 @@ +{ + "prefix": "expressionMetricVis", + "paths": { + "expressionMetricVis": "." + } +} diff --git a/src/plugins/chart_expressions/expression_metric/.storybook/main.js b/src/plugins/chart_expressions/expression_metric/.storybook/main.js new file mode 100644 index 000000000000..cb483d539428 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/.storybook/main.js @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { defaultConfig } from '@kbn/storybook'; +import webpackMerge from 'webpack-merge'; +import { resolve } from 'path'; + +const mockConfig = { + resolve: { + alias: { + '../format_service': resolve(__dirname, '../public/__mocks__/format_service.ts'), + }, + }, +}; + +module.exports = { + ...defaultConfig, + webpackFinal: (config) => webpackMerge(config, mockConfig), +}; diff --git a/src/plugins/chart_expressions/expression_metric/README.md b/src/plugins/chart_expressions/expression_metric/README.md new file mode 100755 index 000000000000..ec2541ebf74d --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/README.md @@ -0,0 +1,9 @@ +# expressionMetricVis + +Expression MetricVis plugin adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart. + +--- + +## Development + +See the [kibana contributing guide](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md) for instructions setting up your development environment. diff --git a/src/plugins/chart_expressions/expression_metric/common/constants.ts b/src/plugins/chart_expressions/expression_metric/common/constants.ts new file mode 100644 index 000000000000..b39902f61ac4 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/common/constants.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const EXPRESSION_METRIC_NAME = 'metricVis'; diff --git a/src/plugins/vis_types/metric/public/__snapshots__/metric_vis_fn.test.ts.snap b/src/plugins/chart_expressions/expression_metric/common/expression_functions/__snapshots__/metric_vis_function.test.ts.snap similarity index 98% rename from src/plugins/vis_types/metric/public/__snapshots__/metric_vis_fn.test.ts.snap rename to src/plugins/chart_expressions/expression_metric/common/expression_functions/__snapshots__/metric_vis_function.test.ts.snap index a3be4d10d9bf..03055764cc4a 100644 --- a/src/plugins/vis_types/metric/public/__snapshots__/metric_vis_fn.test.ts.snap +++ b/src/plugins/chart_expressions/expression_metric/common/expression_functions/__snapshots__/metric_vis_function.test.ts.snap @@ -22,7 +22,7 @@ Object { exports[`interpreter/functions#metric returns an object with the correct structure 1`] = ` Object { - "as": "metric_vis", + "as": "metricVis", "type": "render", "value": Object { "visConfig": Object { diff --git a/src/plugins/chart_expressions/expression_metric/common/expression_functions/index.ts b/src/plugins/chart_expressions/expression_metric/common/expression_functions/index.ts new file mode 100644 index 000000000000..5eccaa62fe46 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/common/expression_functions/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { metricVisFunction } from './metric_vis_function'; diff --git a/src/plugins/vis_types/metric/public/metric_vis_fn.test.ts b/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.test.ts similarity index 81% rename from src/plugins/vis_types/metric/public/metric_vis_fn.test.ts rename to src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.test.ts index 28124a653629..1f90322e703b 100644 --- a/src/plugins/vis_types/metric/public/metric_vis_fn.test.ts +++ b/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.test.ts @@ -6,14 +6,13 @@ * Side Public License, v 1. */ -import { createMetricVisFn } from './metric_vis_fn'; -import { functionWrapper } from '../../../expressions/common/expression_functions/specs/tests/utils'; -import { Datatable } from '../../../expressions/common/expression_types/specs'; - -type Arguments = Parameters['fn']>[1]; +import { metricVisFunction } from './metric_vis_function'; +import type { MetricArguments } from '../../common'; +import { functionWrapper } from '../../../../expressions/common/expression_functions/specs/tests/utils'; +import { Datatable } from '../../../../expressions/common/expression_types/specs'; describe('interpreter/functions#metric', () => { - const fn = functionWrapper(createMetricVisFn()); + const fn = functionWrapper(metricVisFunction()); const context = { type: 'datatable', rows: [{ 'col-0-1': 0 }], @@ -52,7 +51,7 @@ describe('interpreter/functions#metric', () => { aggType: 'count', }, ], - } as unknown as Arguments; + } as unknown as MetricArguments; it('returns an object with the correct structure', () => { const actual = fn(context, args, undefined); diff --git a/src/plugins/vis_types/metric/public/metric_vis_fn.ts b/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts similarity index 66% rename from src/plugins/vis_types/metric/public/metric_vis_fn.ts rename to src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts index 210552732bc0..31f5b8421b3a 100644 --- a/src/plugins/vis_types/metric/public/metric_vis_fn.ts +++ b/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts @@ -8,60 +8,24 @@ import { i18n } from '@kbn/i18n'; -import { - ExpressionFunctionDefinition, - Datatable, - Range, - Render, - Style, -} from '../../../expressions/public'; -import { visType, VisParams } from './types'; -import { prepareLogTable, Dimension } from '../../../visualizations/public'; -import { ColorSchemas, vislibColorMaps, ColorMode } from '../../../charts/public'; -import { ExpressionValueVisDimension } from '../../../visualizations/public'; +import { visType } from '../types'; +import { prepareLogTable, Dimension } from '../../../../visualizations/common/prepare_log_table'; +import { vislibColorMaps, ColorMode } from '../../../../charts/common'; +import { MetricVisExpressionFunctionDefinition } from '../types'; +import { EXPRESSION_METRIC_NAME } from '../constants'; -export type Input = Datatable; - -interface Arguments { - percentageMode: boolean; - colorSchema: ColorSchemas; - colorMode: ColorMode; - useRanges: boolean; - invertColors: boolean; - showLabels: boolean; - bgFill: string; - subText: string; - colorRange: Range[]; - font: Style; - metric: ExpressionValueVisDimension[]; - bucket: ExpressionValueVisDimension; -} - -export interface MetricVisRenderValue { - visType: typeof visType; - visData: Input; - visConfig: Pick; -} - -export type MetricVisExpressionFunctionDefinition = ExpressionFunctionDefinition< - 'metricVis', - Input, - Arguments, - Render ->; - -export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ - name: 'metricVis', +export const metricVisFunction = (): MetricVisExpressionFunctionDefinition => ({ + name: EXPRESSION_METRIC_NAME, type: 'render', inputTypes: ['datatable'], - help: i18n.translate('visTypeMetric.function.help', { + help: i18n.translate('expressionMetricVis.function.help', { defaultMessage: 'Metric visualization', }), args: { percentageMode: { types: ['boolean'], default: false, - help: i18n.translate('visTypeMetric.function.percentageMode.help', { + help: i18n.translate('expressionMetricVis.function.percentageMode.help', { defaultMessage: 'Shows metric in percentage mode. Requires colorRange to be set.', }), }, @@ -69,7 +33,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ types: ['string'], default: '"Green to Red"', options: Object.values(vislibColorMaps).map((value: any) => value.id), - help: i18n.translate('visTypeMetric.function.colorSchema.help', { + help: i18n.translate('expressionMetricVis.function.colorSchema.help', { defaultMessage: 'Color schema to use', }), }, @@ -77,7 +41,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ types: ['string'], default: '"None"', options: [ColorMode.None, ColorMode.Labels, ColorMode.Background], - help: i18n.translate('visTypeMetric.function.colorMode.help', { + help: i18n.translate('expressionMetricVis.function.colorMode.help', { defaultMessage: 'Which part of metric to color', }), }, @@ -85,7 +49,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ types: ['range'], multi: true, default: '{range from=0 to=10000}', - help: i18n.translate('visTypeMetric.function.colorRange.help', { + help: i18n.translate('expressionMetricVis.function.colorRange.help', { defaultMessage: 'A range object specifying groups of values to which different colors should be applied.', }), @@ -93,21 +57,21 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ useRanges: { types: ['boolean'], default: false, - help: i18n.translate('visTypeMetric.function.useRanges.help', { + help: i18n.translate('expressionMetricVis.function.useRanges.help', { defaultMessage: 'Enabled color ranges.', }), }, invertColors: { types: ['boolean'], default: false, - help: i18n.translate('visTypeMetric.function.invertColors.help', { + help: i18n.translate('expressionMetricVis.function.invertColors.help', { defaultMessage: 'Inverts the color ranges', }), }, showLabels: { types: ['boolean'], default: true, - help: i18n.translate('visTypeMetric.function.showLabels.help', { + help: i18n.translate('expressionMetricVis.function.showLabels.help', { defaultMessage: 'Shows labels under the metric values.', }), }, @@ -115,14 +79,14 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ types: ['string'], default: '"#000"', aliases: ['backgroundFill', 'bgColor', 'backgroundColor'], - help: i18n.translate('visTypeMetric.function.bgFill.help', { + help: i18n.translate('expressionMetricVis.function.bgFill.help', { defaultMessage: 'Color as html hex code (#123456), html color (red, blue) or rgba value (rgba(255,255,255,1)).', }), }, font: { types: ['style'], - help: i18n.translate('visTypeMetric.function.font.help', { + help: i18n.translate('expressionMetricVis.function.font.help', { defaultMessage: 'Font settings.', }), default: '{font size=60}', @@ -131,13 +95,13 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ types: ['string'], aliases: ['label', 'text', 'description'], default: '""', - help: i18n.translate('visTypeMetric.function.subText.help', { + help: i18n.translate('expressionMetricVis.function.subText.help', { defaultMessage: 'Custom text to show under the metric', }), }, metric: { types: ['vis_dimension'], - help: i18n.translate('visTypeMetric.function.metric.help', { + help: i18n.translate('expressionMetricVis.function.metric.help', { defaultMessage: 'metric dimension configuration', }), required: true, @@ -145,7 +109,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ }, bucket: { types: ['vis_dimension'], - help: i18n.translate('visTypeMetric.function.bucket.help', { + help: i18n.translate('expressionMetricVis.function.bucket.help', { defaultMessage: 'bucket dimension configuration', }), }, @@ -161,7 +125,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ const argsTable: Dimension[] = [ [ args.metric, - i18n.translate('visTypeMetric.function.dimension.metric', { + i18n.translate('expressionMetricVis.function.dimension.metric', { defaultMessage: 'Metric', }), ], @@ -169,7 +133,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ if (args.bucket) { argsTable.push([ [args.bucket], - i18n.translate('visTypeMetric.function.adimension.splitGroup', { + i18n.translate('expressionMetricVis.function.dimension.splitGroup', { defaultMessage: 'Split group', }), ]); @@ -180,7 +144,7 @@ export const createMetricVisFn = (): MetricVisExpressionFunctionDefinition => ({ return { type: 'render', - as: 'metric_vis', + as: EXPRESSION_METRIC_NAME, value: { visData: input, visType, diff --git a/src/plugins/chart_expressions/expression_metric/common/index.ts b/src/plugins/chart_expressions/expression_metric/common/index.ts new file mode 100755 index 000000000000..ee023dca2f4f --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/common/index.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const PLUGIN_ID = 'expressionMetricVis'; +export const PLUGIN_NAME = 'expressionMetricVis'; + +export type { + MetricArguments, + MetricInput, + MetricVisRenderConfig, + MetricVisExpressionFunctionDefinition, + DimensionsVisParam, + MetricVisParam, + VisParams, + MetricOptions, +} from './types'; + +export { metricVisFunction } from './expression_functions'; + +export { EXPRESSION_METRIC_NAME } from './constants'; diff --git a/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts b/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts new file mode 100644 index 000000000000..5e8b01ec9300 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + Datatable, + ExpressionFunctionDefinition, + Range, + ExpressionValueRender, + Style, +} from '../../../../expressions'; +import { ExpressionValueVisDimension } from '../../../../visualizations/common'; +import { ColorSchemas, ColorMode } from '../../../../charts/common'; +import { VisParams, visType } from './expression_renderers'; +import { EXPRESSION_METRIC_NAME } from '../constants'; + +export interface MetricArguments { + percentageMode: boolean; + colorSchema: ColorSchemas; + colorMode: ColorMode; + useRanges: boolean; + invertColors: boolean; + showLabels: boolean; + bgFill: string; + subText: string; + colorRange: Range[]; + font: Style; + metric: ExpressionValueVisDimension[]; + bucket: ExpressionValueVisDimension; +} + +export type MetricInput = Datatable; + +export interface MetricVisRenderConfig { + visType: typeof visType; + visData: MetricInput; + visConfig: Pick; +} + +export type MetricVisExpressionFunctionDefinition = ExpressionFunctionDefinition< + typeof EXPRESSION_METRIC_NAME, + MetricInput, + MetricArguments, + ExpressionValueRender +>; diff --git a/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts b/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts new file mode 100644 index 000000000000..2cc7ce853f8b --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { Range } from '../../../../expressions/common'; +import { ExpressionValueVisDimension } from '../../../../visualizations/common'; +import { ColorMode, Labels, Style, ColorSchemas } from '../../../../charts/common'; + +export const visType = 'metric'; + +export interface DimensionsVisParam { + metrics: ExpressionValueVisDimension[]; + bucket?: ExpressionValueVisDimension; +} + +export interface MetricVisParam { + percentageMode: boolean; + percentageFormatPattern?: string; + useRanges: boolean; + colorSchema: ColorSchemas; + metricColorMode: ColorMode; + colorsRange: Range[]; + labels: Labels; + invertColors: boolean; + style: Style; +} + +export interface VisParams { + addTooltip: boolean; + addLegend: boolean; + dimensions: DimensionsVisParam; + metric: MetricVisParam; + type: typeof visType; +} + +export interface MetricOptions { + value: string; + label: string; + color?: string; + bgColor?: string; + lightText: boolean; + rowIndex: number; +} diff --git a/src/plugins/chart_expressions/expression_metric/common/types/index.ts b/src/plugins/chart_expressions/expression_metric/common/types/index.ts new file mode 100644 index 000000000000..9c50bfab1305 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/common/types/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './expression_functions'; +export * from './expression_renderers'; diff --git a/src/plugins/chart_expressions/expression_metric/jest.config.js b/src/plugins/chart_expressions/expression_metric/jest.config.js new file mode 100644 index 000000000000..d737b45f34e6 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/jest.config.js @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../../', + roots: ['/src/plugins/chart_expressions/expression_metric'], + coverageDirectory: + '/target/kibana-coverage/jest/src/plugins/chart_expressions/expression_metric', + coverageReporters: ['text', 'html'], + collectCoverageFrom: [ + '/src/plugins/chart_expressions/expression_metric/{common,public,server}/**/*.{ts,tsx}', + ], +}; diff --git a/src/plugins/chart_expressions/expression_metric/kibana.json b/src/plugins/chart_expressions/expression_metric/kibana.json new file mode 100755 index 000000000000..c662dc131032 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/kibana.json @@ -0,0 +1,15 @@ +{ + "id": "expressionMetricVis", + "version": "1.0.0", + "kibanaVersion": "kibana", + "owner": { + "name": "Vis Editors", + "githubTeam": "kibana-vis-editors" + }, + "description": "Expression MetricVis plugin adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart.", + "server": true, + "ui": true, + "requiredPlugins": ["expressions", "fieldFormats", "charts", "visualizations", "presentationUtil"], + "requiredBundles": ["kibanaUtils"], + "optionalPlugins": [] +} diff --git a/src/plugins/chart_expressions/expression_metric/public/__mocks__/format_service.ts b/src/plugins/chart_expressions/expression_metric/public/__mocks__/format_service.ts new file mode 100644 index 000000000000..77f6d8eb0bf3 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/public/__mocks__/format_service.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const getFormatService = () => ({ + deserialize: (target: any) => ({ + convert: (text: string, format: string) => text, + }), +}); diff --git a/src/plugins/chart_expressions/expression_metric/public/__stories__/metric_renderer.stories.tsx b/src/plugins/chart_expressions/expression_metric/public/__stories__/metric_renderer.stories.tsx new file mode 100644 index 000000000000..b22616af01c9 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/public/__stories__/metric_renderer.stories.tsx @@ -0,0 +1,250 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { storiesOf } from '@storybook/react'; +import { ExpressionValueVisDimension } from '../../../../visualizations/common'; +import { DatatableColumn, Range } from '../../../../expressions'; +import { Render } from '../../../../presentation_util/public/__stories__'; +import { ColorMode, ColorSchemas } from '../../../../charts/common'; +import { metricVisRenderer } from '../expression_renderers'; +import { MetricVisRenderConfig, visType } from '../../common/types'; + +const config: MetricVisRenderConfig = { + visType, + visData: { + type: 'datatable', + rows: [{ 'col-0-1': 85, 'col-0-2': 30 }], + columns: [ + { + id: 'col-0-1', + name: 'Max products count', + meta: { type: 'number', params: {} }, + }, + { + id: 'col-0-2', + name: 'Median products count', + meta: { type: 'number', params: {} }, + }, + ], + }, + visConfig: { + metric: { + percentageMode: false, + useRanges: false, + colorSchema: ColorSchemas.GreenToRed, + metricColorMode: ColorMode.None, + colorsRange: [], + labels: { show: true }, + invertColors: false, + style: { + bgColor: false, + bgFill: '#000', + fontSize: 60, + labelColor: false, + subText: '', + }, + }, + dimensions: { + metrics: [ + { + accessor: 0, + format: { + id: 'number', + params: {}, + }, + type: 'vis_dimension', + }, + { + accessor: { + id: 'col-0-2', + name: 'Median products count', + meta: { type: 'number' }, + }, + format: { + id: 'number', + params: {}, + }, + type: 'vis_dimension', + }, + ], + }, + }, +}; + +const dayColumn: DatatableColumn = { + id: 'col-0-3', + name: 'Day of the week', + meta: { type: 'string', params: {} }, +}; + +const dayAccessor: ExpressionValueVisDimension = { + accessor: { + id: 'col-0-3', + name: 'Day of the week', + meta: { type: 'string' }, + }, + format: { + id: 'string', + params: {}, + }, + type: 'vis_dimension', +}; + +const dataWithBuckets = [ + { 'col-0-1': 85, 'col-0-2': 30, 'col-0-3': 'Monday' }, + { 'col-0-1': 55, 'col-0-2': 32, 'col-0-3': 'Tuesday' }, + { 'col-0-1': 56, 'col-0-2': 52, 'col-0-3': 'Wednesday' }, +]; + +const colorsRange: Range[] = [ + { type: 'range', from: 0, to: 50 }, + { type: 'range', from: 51, to: 150 }, +]; + +const containerSize = { + width: '700px', + height: '700px', +}; + +storiesOf('renderers/visMetric', module) + .add('Default', () => { + return ; + }) + .add('Without labels', () => { + return ( + + ); + }) + .add('With custom font size', () => { + return ( + + ); + }) + .add('With color ranges, background color mode', () => { + return ( + + ); + }) + .add('With color ranges, labels color mode', () => { + return ( + + ); + }) + .add('With color ranges, labels color mode, reverse mode', () => { + return ( + + ); + }) + .add('With bucket', () => { + return ( + + ); + }) + .add('With empty results', () => { + return ( + + ); + }); diff --git a/src/plugins/vis_types/metric/public/components/__snapshots__/metric_vis_component.test.tsx.snap b/src/plugins/chart_expressions/expression_metric/public/components/__snapshots__/metric_component.test.tsx.snap similarity index 100% rename from src/plugins/vis_types/metric/public/components/__snapshots__/metric_vis_component.test.tsx.snap rename to src/plugins/chart_expressions/expression_metric/public/components/__snapshots__/metric_component.test.tsx.snap diff --git a/src/plugins/vis_types/metric/public/components/metric_vis.scss b/src/plugins/chart_expressions/expression_metric/public/components/metric.scss similarity index 100% rename from src/plugins/vis_types/metric/public/components/metric_vis.scss rename to src/plugins/chart_expressions/expression_metric/public/components/metric.scss diff --git a/src/plugins/vis_types/metric/public/components/metric_vis_component.test.tsx b/src/plugins/chart_expressions/expression_metric/public/components/metric_component.test.tsx similarity index 97% rename from src/plugins/vis_types/metric/public/components/metric_vis_component.test.tsx rename to src/plugins/chart_expressions/expression_metric/public/components/metric_component.test.tsx index c66704c44ea0..ec3b9aee8583 100644 --- a/src/plugins/vis_types/metric/public/components/metric_vis_component.test.tsx +++ b/src/plugins/chart_expressions/expression_metric/public/components/metric_component.test.tsx @@ -9,9 +9,9 @@ import React from 'react'; import { shallow } from 'enzyme'; -import MetricVisComponent, { MetricVisComponentProps } from './metric_vis_component'; +import MetricVisComponent, { MetricVisComponentProps } from './metric_component'; -jest.mock('../services', () => ({ +jest.mock('../format_service', () => ({ getFormatService: () => ({ deserialize: () => { return { diff --git a/src/plugins/vis_types/metric/public/components/metric_vis_component.tsx b/src/plugins/chart_expressions/expression_metric/public/components/metric_component.tsx similarity index 81% rename from src/plugins/vis_types/metric/public/components/metric_vis_component.tsx rename to src/plugins/chart_expressions/expression_metric/public/components/metric_component.tsx index 837ec5ff60dc..4efdefc7d28e 100644 --- a/src/plugins/vis_types/metric/public/components/metric_vis_component.tsx +++ b/src/plugins/chart_expressions/expression_metric/public/components/metric_component.tsx @@ -9,21 +9,19 @@ import { last, findIndex, isNaN } from 'lodash'; import React, { Component } from 'react'; import { isColorDark } from '@elastic/eui'; -import { MetricVisValue } from './metric_vis_value'; -import { Input } from '../metric_vis_fn'; +import { MetricVisValue } from './metric_value'; +import { MetricInput, VisParams, MetricOptions } from '../../common/types'; import type { FieldFormatsContentType, IFieldFormat } from '../../../../field_formats/common'; import { Datatable } from '../../../../expressions/public'; import { getHeatmapColors } from '../../../../charts/public'; -import { VisParams, MetricVisMetric } from '../types'; -import { getFormatService } from '../services'; +import { getFormatService } from '../format_service'; import { ExpressionValueVisDimension } from '../../../../visualizations/public'; -import { Range } from '../../../../expressions/public'; -import './metric_vis.scss'; +import './metric.scss'; export interface MetricVisComponentProps { visParams: Pick; - visData: Input; + visData: MetricInput; fireEvent: (event: any) => void; renderComplete: () => void; } @@ -33,7 +31,7 @@ class MetricVisComponent extends Component { const config = this.props.visParams.metric; const isPercentageMode = config.percentageMode; const colorsRange = config.colorsRange; - const max = (last(colorsRange) as Range).to; + const max = last(colorsRange)?.to ?? 1; const labels: string[] = []; colorsRange.forEach((range: any) => { @@ -66,7 +64,7 @@ class MetricVisComponent extends Component { }); if (bucket === -1) { - if (val < config.colorsRange[0].from) bucket = 0; + if (config.colorsRange?.[0] && val < config.colorsRange?.[0].from) bucket = 0; else bucket = config.colorsRange.length - 1; } @@ -109,14 +107,13 @@ class MetricVisComponent extends Component { } private processTableGroups(table: Datatable) { - const config = this.props.visParams.metric; - const dimensions = this.props.visParams.dimensions; - const isPercentageMode = config.percentageMode; - const min = config.colorsRange[0].from; - const max = (last(config.colorsRange) as Range).to; + const { metric: metricConfig, dimensions } = this.props.visParams; + const { percentageMode: isPercentageMode, colorsRange, style } = metricConfig; + const min = colorsRange?.[0]?.from; + const max = last(colorsRange)?.to; const colors = this.getColors(); const labels = this.getLabels(); - const metrics: MetricVisMetric[] = []; + const metrics: MetricOptions[] = []; let bucketColumnId: string; let bucketFormatter: IFieldFormat; @@ -131,27 +128,26 @@ class MetricVisComponent extends Component { const formatter = getFormatService().deserialize(metric.format); table.rows.forEach((row, rowIndex) => { let title = column.name; - let value: any = row[column.id]; + let value: number = row[column.id]; const color = this.getColor(value, labels, colors); - if (isPercentageMode) { + if (isPercentageMode && colorsRange?.length && max !== undefined && min !== undefined) { value = (value - min) / (max - min); } - value = this.getFormattedValue(formatter, value, 'html'); - + const formattedValue = this.getFormattedValue(formatter, value, 'html'); if (bucketColumnId) { const bucketValue = this.getFormattedValue(bucketFormatter, row[bucketColumnId]); title = `${bucketValue} - ${title}`; } - const shouldColor = config.colorsRange.length > 1; + const shouldColor = colorsRange && colorsRange.length > 1; metrics.push({ label: title, - value, - color: shouldColor && config.style.labelColor ? color : undefined, - bgColor: shouldColor && config.style.bgColor ? color : undefined, - lightText: shouldColor && config.style.bgColor && this.needsLightText(color), + value: formattedValue, + color: shouldColor && style.labelColor ? color : undefined, + bgColor: shouldColor && style.bgColor ? color : undefined, + lightText: shouldColor && style.bgColor && this.needsLightText(color), rowIndex, }); }); @@ -160,7 +156,7 @@ class MetricVisComponent extends Component { return metrics; } - private filterBucket = (metric: MetricVisMetric) => { + private filterBucket = (metric: MetricOptions) => { const dimensions = this.props.visParams.dimensions; if (!dimensions.bucket) { return; @@ -180,7 +176,7 @@ class MetricVisComponent extends Component { }); }; - private renderMetric = (metric: MetricVisMetric, index: number) => { + private renderMetric = (metric: MetricOptions, index: number) => { return ( void; + onFilter?: (metric: MetricOptions) => void; showLabel?: boolean; } diff --git a/src/plugins/chart_expressions/expression_metric/public/expression_renderers/index.ts b/src/plugins/chart_expressions/expression_metric/public/expression_renderers/index.ts new file mode 100644 index 000000000000..b4fb6cea84aa --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/public/expression_renderers/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { metricVisRenderer } from './metric_vis_renderer'; diff --git a/src/plugins/vis_types/metric/public/metric_vis_renderer.tsx b/src/plugins/chart_expressions/expression_metric/public/expression_renderers/metric_vis_renderer.tsx similarity index 73% rename from src/plugins/vis_types/metric/public/metric_vis_renderer.tsx rename to src/plugins/chart_expressions/expression_metric/public/expression_renderers/metric_vis_renderer.tsx index 0bd2efbfe2ef..6c3c7696fca4 100644 --- a/src/plugins/vis_types/metric/public/metric_vis_renderer.tsx +++ b/src/plugins/chart_expressions/expression_metric/public/expression_renderers/metric_vis_renderer.tsx @@ -9,14 +9,15 @@ import React, { lazy } from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; -import { VisualizationContainer } from '../../../visualizations/public'; -import { ExpressionRenderDefinition } from '../../../expressions/common/expression_renderers'; -import { MetricVisRenderValue } from './metric_vis_fn'; -// @ts-ignore -const MetricVisComponent = lazy(() => import('./components/metric_vis_component')); +import { VisualizationContainer } from '../../../../visualizations/public'; +import { ExpressionRenderDefinition } from '../../../../expressions/common/expression_renderers'; +import { EXPRESSION_METRIC_NAME, MetricVisRenderConfig } from '../../common'; -export const metricVisRenderer: () => ExpressionRenderDefinition = () => ({ - name: 'metric_vis', +// @ts-ignore +const MetricVisComponent = lazy(() => import('../components/metric_component')); + +export const metricVisRenderer: () => ExpressionRenderDefinition = () => ({ + name: EXPRESSION_METRIC_NAME, displayName: 'metric visualization', reuseDomNode: true, render: async (domNode, { visData, visConfig }, handlers) => { diff --git a/src/plugins/vis_types/metric/public/services.ts b/src/plugins/chart_expressions/expression_metric/public/format_service.ts similarity index 57% rename from src/plugins/vis_types/metric/public/services.ts rename to src/plugins/chart_expressions/expression_metric/public/format_service.ts index e705513675e7..19d2f9a5568c 100644 --- a/src/plugins/vis_types/metric/public/services.ts +++ b/src/plugins/chart_expressions/expression_metric/public/format_service.ts @@ -6,9 +6,8 @@ * Side Public License, v 1. */ -import { createGetterSetter } from '../../../kibana_utils/common'; -import { DataPublicPluginStart } from '../../../data/public'; +import { createGetterSetter } from '../../../kibana_utils/public'; +import { FieldFormatsStart } from '../../../field_formats/public'; -export const [getFormatService, setFormatService] = createGetterSetter< - DataPublicPluginStart['fieldFormats'] ->('metric data.fieldFormats'); +export const [getFormatService, setFormatService] = + createGetterSetter('fieldFormats'); diff --git a/src/plugins/chart_expressions/expression_metric/public/index.ts b/src/plugins/chart_expressions/expression_metric/public/index.ts new file mode 100644 index 000000000000..dfb442514d5f --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/public/index.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { ExpressionMetricPlugin } from './plugin'; + +export function plugin() { + return new ExpressionMetricPlugin(); +} diff --git a/src/plugins/chart_expressions/expression_metric/public/plugin.ts b/src/plugins/chart_expressions/expression_metric/public/plugin.ts new file mode 100644 index 000000000000..3ac338380a39 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/public/plugin.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { CoreSetup, CoreStart, Plugin } from '../../../../core/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../../expressions/public'; +import { metricVisFunction } from '../common'; +import { setFormatService } from './format_service'; +import { metricVisRenderer } from './expression_renderers'; +import { FieldFormatsStart } from '../../../field_formats/public'; + +/** @internal */ +export interface ExpressionMetricPluginSetup { + expressions: ReturnType; +} + +/** @internal */ +export interface ExpressionMetricPluginStart { + fieldFormats: FieldFormatsStart; +} + +/** @internal */ +export class ExpressionMetricPlugin implements Plugin { + public setup(core: CoreSetup, { expressions }: ExpressionMetricPluginSetup) { + expressions.registerFunction(metricVisFunction); + expressions.registerRenderer(metricVisRenderer); + } + + public start(core: CoreStart, { fieldFormats }: ExpressionMetricPluginStart) { + setFormatService(fieldFormats); + } +} diff --git a/src/plugins/chart_expressions/expression_metric/server/index.ts b/src/plugins/chart_expressions/expression_metric/server/index.ts new file mode 100644 index 000000000000..dfb442514d5f --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/server/index.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { ExpressionMetricPlugin } from './plugin'; + +export function plugin() { + return new ExpressionMetricPlugin(); +} diff --git a/src/plugins/chart_expressions/expression_metric/server/plugin.ts b/src/plugins/chart_expressions/expression_metric/server/plugin.ts new file mode 100644 index 000000000000..1a04d4702361 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/server/plugin.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { CoreSetup, CoreStart, Plugin } from '../../../../core/public'; +import { ExpressionsServerStart, ExpressionsServerSetup } from '../../../expressions/server'; +import { metricVisFunction } from '../common'; + +interface SetupDeps { + expressions: ExpressionsServerSetup; +} + +interface StartDeps { + expression: ExpressionsServerStart; +} + +export type ExpressionMetricPluginSetup = void; +export type ExpressionMetricPluginStart = void; + +export class ExpressionMetricPlugin + implements Plugin +{ + public setup(core: CoreSetup, { expressions }: SetupDeps): ExpressionMetricPluginSetup { + expressions.registerFunction(metricVisFunction); + } + + public start(core: CoreStart): ExpressionMetricPluginStart {} + + public stop() {} +} diff --git a/src/plugins/chart_expressions/expression_metric/tsconfig.json b/src/plugins/chart_expressions/expression_metric/tsconfig.json new file mode 100644 index 000000000000..ff5089c7f4d2 --- /dev/null +++ b/src/plugins/chart_expressions/expression_metric/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./target/types", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true, + "isolatedModules": true + }, + "include": [ + "common/**/*", + "public/**/*", + "server/**/*", + ], + "references": [ + { "path": "../../../core/tsconfig.json" }, + { "path": "../../expressions/tsconfig.json" }, + { "path": "../../presentation_util/tsconfig.json" }, + { "path": "../../field_formats/tsconfig.json" }, + { "path": "../../charts/tsconfig.json" }, + { "path": "../../visualizations/tsconfig.json" }, + ] +} diff --git a/src/plugins/charts/common/index.ts b/src/plugins/charts/common/index.ts index ad3d2d11bbdf..618466212f5b 100644 --- a/src/plugins/charts/common/index.ts +++ b/src/plugins/charts/common/index.ts @@ -6,9 +6,33 @@ * Side Public License, v 1. */ -// TODO: https://github.com/elastic/kibana/issues/110891 -/* eslint-disable @kbn/eslint/no_export_all */ - export const COLOR_MAPPING_SETTING = 'visualization:colorMapping'; -export * from './palette'; -export * from './constants'; + +export { + CustomPaletteArguments, + CustomPaletteState, + SystemPaletteArguments, + PaletteOutput, + defaultCustomColors, + palette, + systemPalette, +} from './palette'; + +export { paletteIds } from './constants'; + +export { + ColorSchemas, + ColorSchema, + RawColorSchema, + ColorMap, + vislibColorMaps, + colorSchemas, + getHeatmapColors, + truncatedColorMaps, + truncatedColorSchemas, + ColorMode, + LabelRotation, + defaultCountLabel, +} from './static'; + +export { ColorSchemaParams, Labels, Style } from './types'; diff --git a/src/plugins/charts/public/static/color_maps/color_maps.ts b/src/plugins/charts/common/static/color_maps/color_maps.ts similarity index 100% rename from src/plugins/charts/public/static/color_maps/color_maps.ts rename to src/plugins/charts/common/static/color_maps/color_maps.ts diff --git a/src/plugins/charts/public/static/color_maps/heatmap_color.test.ts b/src/plugins/charts/common/static/color_maps/heatmap_color.test.ts similarity index 100% rename from src/plugins/charts/public/static/color_maps/heatmap_color.test.ts rename to src/plugins/charts/common/static/color_maps/heatmap_color.test.ts diff --git a/src/plugins/charts/public/static/color_maps/heatmap_color.ts b/src/plugins/charts/common/static/color_maps/heatmap_color.ts similarity index 100% rename from src/plugins/charts/public/static/color_maps/heatmap_color.ts rename to src/plugins/charts/common/static/color_maps/heatmap_color.ts diff --git a/src/plugins/charts/public/static/color_maps/index.ts b/src/plugins/charts/common/static/color_maps/index.ts similarity index 100% rename from src/plugins/charts/public/static/color_maps/index.ts rename to src/plugins/charts/common/static/color_maps/index.ts diff --git a/src/plugins/charts/public/static/color_maps/mock.ts b/src/plugins/charts/common/static/color_maps/mock.ts similarity index 100% rename from src/plugins/charts/public/static/color_maps/mock.ts rename to src/plugins/charts/common/static/color_maps/mock.ts diff --git a/src/plugins/charts/public/static/color_maps/truncated_color_maps.ts b/src/plugins/charts/common/static/color_maps/truncated_color_maps.ts similarity index 100% rename from src/plugins/charts/public/static/color_maps/truncated_color_maps.ts rename to src/plugins/charts/common/static/color_maps/truncated_color_maps.ts diff --git a/src/plugins/charts/public/static/components/collections.ts b/src/plugins/charts/common/static/components/collections.ts similarity index 100% rename from src/plugins/charts/public/static/components/collections.ts rename to src/plugins/charts/common/static/components/collections.ts diff --git a/src/plugins/charts/common/static/components/index.ts b/src/plugins/charts/common/static/components/index.ts new file mode 100644 index 000000000000..9b2384d23771 --- /dev/null +++ b/src/plugins/charts/common/static/components/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { ColorMode, LabelRotation, defaultCountLabel } from './collections'; diff --git a/src/plugins/charts/common/static/index.ts b/src/plugins/charts/common/static/index.ts new file mode 100644 index 000000000000..9cde3bafe59e --- /dev/null +++ b/src/plugins/charts/common/static/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { + ColorSchemas, + ColorSchema, + RawColorSchema, + ColorMap, + vislibColorMaps, + colorSchemas, + getHeatmapColors, + truncatedColorMaps, + truncatedColorSchemas, +} from './color_maps'; + +export { ColorMode, LabelRotation, defaultCountLabel } from './components'; diff --git a/src/plugins/charts/public/static/components/types.ts b/src/plugins/charts/common/types.ts similarity index 88% rename from src/plugins/charts/public/static/components/types.ts rename to src/plugins/charts/common/types.ts index a92dba593f0c..841494c2edb8 100644 --- a/src/plugins/charts/public/static/components/types.ts +++ b/src/plugins/charts/common/types.ts @@ -6,8 +6,7 @@ * Side Public License, v 1. */ -import { ColorSchemas } from '../color_maps'; -import { LabelRotation } from './collections'; +import { ColorSchemas, LabelRotation } from './static'; export interface ColorSchemaParams { colorSchema: ColorSchemas; diff --git a/src/plugins/charts/kibana.json b/src/plugins/charts/kibana.json index 86971d1018e0..a3e0da41056d 100644 --- a/src/plugins/charts/kibana.json +++ b/src/plugins/charts/kibana.json @@ -3,6 +3,7 @@ "version": "kibana", "server": true, "ui": true, + "extraPublicDirs": ["common"], "requiredPlugins": ["expressions"], "owner": { "name": "Vis Editors", diff --git a/src/plugins/charts/public/index.ts b/src/plugins/charts/public/index.ts index 6674b98fce91..e3d38b797c57 100644 --- a/src/plugins/charts/public/index.ts +++ b/src/plugins/charts/public/index.ts @@ -26,4 +26,19 @@ export { CustomPaletteState, SystemPaletteArguments, paletteIds, + ColorSchemas, + ColorSchema, + RawColorSchema, + ColorMap, + vislibColorMaps, + colorSchemas, + getHeatmapColors, + truncatedColorMaps, + truncatedColorSchemas, + ColorMode, + LabelRotation, + defaultCountLabel, + ColorSchemaParams, + Labels, + Style, } from '../common'; diff --git a/src/plugins/charts/public/mocks.ts b/src/plugins/charts/public/mocks.ts index 7460962c3e1f..a481f8ca138c 100644 --- a/src/plugins/charts/public/mocks.ts +++ b/src/plugins/charts/public/mocks.ts @@ -28,7 +28,7 @@ const createStartContract = (): Start => ({ palettes: paletteServiceMock.setup({} as any), }); -export { colorMapsMock } from './static/color_maps/mock'; +export { colorMapsMock } from '../common/static/color_maps/mock'; export const chartPluginMock = { createSetupContract, diff --git a/src/plugins/charts/public/static/components/index.ts b/src/plugins/charts/public/static/components/index.ts index 549218cf992a..7f3af50a01aa 100644 --- a/src/plugins/charts/public/static/components/index.ts +++ b/src/plugins/charts/public/static/components/index.ts @@ -6,8 +6,6 @@ * Side Public License, v 1. */ -export { ColorMode, LabelRotation, defaultCountLabel } from './collections'; -export { ColorSchemaParams, Labels, Style } from './types'; export { LegendToggle } from './legend_toggle'; export { ColorPicker } from './color_picker'; export { CurrentTime } from './current_time'; diff --git a/src/plugins/charts/public/static/index.ts b/src/plugins/charts/public/static/index.ts index 068ac8289e00..6f5c87ce0df4 100644 --- a/src/plugins/charts/public/static/index.ts +++ b/src/plugins/charts/public/static/index.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -export * from './color_maps'; export * from './colors'; export * from './components'; export * from './utils'; diff --git a/src/plugins/vis_types/metric/kibana.json b/src/plugins/vis_types/metric/kibana.json index 950abea1c5a9..ab69f7843033 100644 --- a/src/plugins/vis_types/metric/kibana.json +++ b/src/plugins/vis_types/metric/kibana.json @@ -5,7 +5,7 @@ "server": true, "ui": true, "requiredPlugins": ["data", "visualizations", "charts", "expressions"], - "requiredBundles": ["kibanaUtils", "visDefaultEditor"], + "requiredBundles": ["visDefaultEditor"], "owner": { "name": "Vis Editors", "githubTeam": "kibana-vis-editors" diff --git a/src/plugins/vis_types/metric/public/components/index.ts b/src/plugins/vis_types/metric/public/components/index.ts new file mode 100644 index 000000000000..41c9bf10e738 --- /dev/null +++ b/src/plugins/vis_types/metric/public/components/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { MetricVisOptions } from './metric_vis_options'; diff --git a/src/plugins/vis_types/metric/public/metric_vis_type.ts b/src/plugins/vis_types/metric/public/metric_vis_type.ts index 9fc3856ba0ed..ccacd4eae6bf 100644 --- a/src/plugins/vis_types/metric/public/metric_vis_type.ts +++ b/src/plugins/vis_types/metric/public/metric_vis_type.ts @@ -7,7 +7,7 @@ */ import { i18n } from '@kbn/i18n'; -import { MetricVisOptions } from './components/metric_vis_options'; +import { MetricVisOptions } from './components'; import { ColorSchemas, ColorMode } from '../../../charts/public'; import { VisTypeDefinition } from '../../../visualizations/public'; import { AggGroupNames } from '../../../data/public'; diff --git a/src/plugins/vis_types/metric/public/plugin.ts b/src/plugins/vis_types/metric/public/plugin.ts index 205c02d8e9c3..a88bbc8e5f2e 100644 --- a/src/plugins/vis_types/metric/public/plugin.ts +++ b/src/plugins/vis_types/metric/public/plugin.ts @@ -7,27 +7,13 @@ */ import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from 'kibana/public'; -import { Plugin as ExpressionsPublicPlugin } from '../../../expressions/public'; import { VisualizationsSetup } from '../../../visualizations/public'; - -import { createMetricVisFn } from './metric_vis_fn'; import { createMetricVisTypeDefinition } from './metric_vis_type'; -import { ChartsPluginSetup } from '../../../charts/public'; -import { DataPublicPluginStart } from '../../../data/public'; -import { setFormatService } from './services'; import { ConfigSchema } from '../config'; -import { metricVisRenderer } from './metric_vis_renderer'; /** @internal */ export interface MetricVisPluginSetupDependencies { - expressions: ReturnType; visualizations: VisualizationsSetup; - charts: ChartsPluginSetup; -} - -/** @internal */ -export interface MetricVisPluginStartDependencies { - data: DataPublicPluginStart; } /** @internal */ @@ -38,16 +24,9 @@ export class MetricVisPlugin implements Plugin { this.initializerContext = initializerContext; } - public setup( - core: CoreSetup, - { expressions, visualizations, charts }: MetricVisPluginSetupDependencies - ) { - expressions.registerFunction(createMetricVisFn); - expressions.registerRenderer(metricVisRenderer); + public setup(core: CoreSetup, { visualizations }: MetricVisPluginSetupDependencies) { visualizations.createBaseVisualization(createMetricVisTypeDefinition()); } - public start(core: CoreStart, { data }: MetricVisPluginStartDependencies) { - setFormatService(data.fieldFormats); - } + public start(core: CoreStart) {} } diff --git a/src/plugins/vis_types/metric/public/to_ast.ts b/src/plugins/vis_types/metric/public/to_ast.ts index 10c782c9a50f..1e23a10dd760 100644 --- a/src/plugins/vis_types/metric/public/to_ast.ts +++ b/src/plugins/vis_types/metric/public/to_ast.ts @@ -9,7 +9,6 @@ import { get } from 'lodash'; import { getVisSchemas, SchemaConfig, VisToExpressionAst } from '../../../visualizations/public'; import { buildExpression, buildExpressionFunction } from '../../../expressions/public'; -import { MetricVisExpressionFunctionDefinition } from './metric_vis_fn'; import { EsaggsExpressionFunctionDefinition, IndexPatternLoadExpressionFunctionDefinition, @@ -63,8 +62,7 @@ export const toExpressionAst: VisToExpressionAst = (vis, params) => { }); } - // @ts-expect-error - const metricVis = buildExpressionFunction('metricVis', { + const metricVis = buildExpressionFunction('metricVis', { percentageMode, colorSchema, colorMode: metricColorMode, diff --git a/src/plugins/vis_types/metric/public/types.ts b/src/plugins/vis_types/metric/public/types.ts index 8e86c0217bba..98065348fa91 100644 --- a/src/plugins/vis_types/metric/public/types.ts +++ b/src/plugins/vis_types/metric/public/types.ts @@ -36,12 +36,3 @@ export interface VisParams { metric: MetricVisParam; type: typeof visType; } - -export interface MetricVisMetric { - value: any; - label: string; - color?: string; - bgColor?: string; - lightText: boolean; - rowIndex: number; -} diff --git a/src/plugins/vis_types/metric/tsconfig.json b/src/plugins/vis_types/metric/tsconfig.json index e8c878425ff7..e8e2bb057301 100644 --- a/src/plugins/vis_types/metric/tsconfig.json +++ b/src/plugins/vis_types/metric/tsconfig.json @@ -13,8 +13,6 @@ { "path": "../../visualizations/tsconfig.json" }, { "path": "../../charts/tsconfig.json" }, { "path": "../../expressions/tsconfig.json" }, - { "path": "../../kibana_utils/tsconfig.json" }, - { "path": "../../vis_default_editor/tsconfig.json" }, - { "path": "../../field_formats/tsconfig.json" } + { "path": "../../vis_default_editor/tsconfig.json" } ] } diff --git a/test/interpreter_functional/screenshots/baseline/metric_all_data.png b/test/interpreter_functional/screenshots/baseline/metric_all_data.png index 66357a371a5be96013f5a3cc4f33400f78f4392d..18dca6c2c39c2a17d51aeb6892edcc943363b867 100644 GIT binary patch literal 29812 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%0A(q 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 BWJv%3 literal 29776 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 D<^8a} diff --git a/test/interpreter_functional/screenshots/baseline/metric_empty_data.png b/test/interpreter_functional/screenshots/baseline/metric_empty_data.png index 06cd781415ab0569a0d7c055a3a0e7593a730f1f..db1dda5083de2d3b0bdada60bacea02c932a008d 100644 GIT binary patch literal 5152 zcmeHLYgAKL+CD8++d*I~)3N}Csfdxvh!6xZK-$j=B1ouo%pjMjKmfTKE&&3GNC!Tu z!f+7`35k_U+K&RC2?jz)qSYF?BoQdk5CU2V$o&!_1VS?V*!eSSe$Aih{ODR)**Pcs z^1jdW?B~4u6a@wPn*7e{cMt@b_?`aj90a}d1cKgje0L|f<7k`Ah9L84zt2AXBJ-_< zN4bBqNxOttUed36ei>e-JiveNJ+|?sXin!l2d>9HDX2R4#YOeh+TGsCx%)K0fz0+Ab2zAPcbe2~2gCNxidRY4H9tes^F~n>a+`N@2dGh45><&Ki zc;=aojuYT-bqoA=5V1v9c(b@Ty8G3uzxddMS7Ak)x2cL@3kYK1Kn|T3xi^dPX=#qZ z9eh4AIw~q0f-?2DA!zx!rM0r!K}49b=WX1>b?dZZR$@YeBLsOG00fzz$39rc_q>V) zKgq}5h8`N@FB4pXh1*189iNYyn3$ll2`aCdxjD(bQ!IQE4hKOSZNu+Ekc@x6@%EB( z+sx9|R+jfvEFKsdlv9Vs&R=K}Snk``1LEA=%;v=QeG9^@;w~t}oU0QPacmbYUN99RBW2z@0f=9w1{0yxxe9uP>O&7J^J8>;T3HbMx{L z5&5K#_-TKF8@!0GO-T95%1Uc`dd8GaE%V11RR}j?nLYwXuNC~N@mKIUexjRefh&IfSh&noir^qo`J>*L&LSw{k`USUETAH0DIfI8A~0)=d3 zAs}dPwGRXxPl${R9dH8y+fUPL0DEf9xHf47NK>7B2|zevqiA=AyCk@=FFv}y+sWz- zN51?=~}2Sy=83yYuMLUjeQ>nDWO%3KRm2<&d`v667w`0#Yco zUx`El8E=5ynetOXVWCSjf#A|KG}gMdF6|l>3W1V;{sjo2!6O~ZRcxRpxyy-apaPiM zho4Y@gs)zK6;;P#p}f45meL?_Yvu4S+ujw3d(WlqO_LDOOXfhvqek2ZfFukcY44tc z2M;1oocIt3hxX4#0Beae*f@+|t9}qi+HS$Yd$IH1wGMdc)Se!fv#~%cO)PDFP zzwehjFe-6y*a<*lMn>Bne`w)dj5GZKWVCbVCUAh%U@-nukA?ta2=Wzz08P8Un;95z zV{aD$uqNS@^9kq2J4b~tW8{NZRC6WGXAL(OU3*$P|3V*hcLy@$!;Bsh6ZchdHm6j1 zeGeLrr?lDgXorVleZH%FOS1#IX6FxMR5rmc?x{C2 zeq&g_uC2cK-_|U3tPMFT@j}yikXI(~Ki_t=mdTW^F?kLcjovJrT6n&x>xN`YzcCSl zVjoEiW&TvTW=&?COdnPn?r8KYVs%VUa_^JL#m?U+8Km7|ni*>&D5VaF<@ooBxtBv1 z1xvo#v2If8-6l*z&!UpFdKt-0550il_OENk1qj?m|1jYjAw`zUiD22HKo(o9*#i64y85sS~#*`XlpmjIhgR`23@ml*rn7$RxThbT0G_p_@PNY8v zT6-VE5Dg_*6~e9rzciMc_2O&a)uIxi6PRym=mTQZU^Nr3?-X{fm|&xl#^+m`_Jvf1 zCh_ge`3E_Z(J_P?suc+h=`BPqZ7Rp5 z#Wm*IsjpCM{KDzL6W^j+_-P?ik~x1xI>2$RrQOkJ+qgetLW1kc^8ax9=0E{KxoXXM zt+VHCF>Irj#spal_C16t%NzY%ib0<7MsrJ+x?@MFzQav2dyDYD zZEtC&yU_yg#vz@ng`<~~wR>V$Avz;{eLl+t_^|dTguyWtFO&9TYiOb8N2$q5GIqo! zGv&`2^P{B>W-S+L&eFt$yLtMm$;mu(Bq;-PB!cUD3y;L<#&I&`xPcYcnGiS9tow1b zb$y{HPwF+@o2KdQeer#{y1KsQnJ{;2b)`{{waLyrTPd6!O&Dplx79v5CchsU^Dpc4 zuRqLhT-90|K1QsG4v5p!RsR={F7HzE2iAEa-MPhfH7V-{UQCQwT9h-l&VL(9agBu$ zS}AT5c~F-121asoI}#g4_G_3Q7omydnCLMBj_l4dVODdC!p(UL>wI=>>`{z+?xwT0 zR-=zN;}9aqI1u{uDO*=v56k0-4H+kiPKC{MqudcemY6|bMNuy z!@J`3E2+rml*g)*P%v}%H$=hVYCmddyb6LEpGN~0R@oGaOQX|JD= zQ993<;Q?=b6D?DWt>w{k&QbKrIVah7j78o4 zIWpH9(Tn!35!=wX#l^*r*)tB7AsS8?;bp%kEqE73S|J?su(Ta7Wumzbi7W6Q)d`yEQO`Vj&V0Vq(<#cZ}9Vr8h&)!K>u2 zrPLaHZ7C*PJKo>dSLz_PL3t&L)@Y(qcm1X+D|WCtXQf40iO_gb+XO0fLtkvvaC1=r z5E|C>X_paVDi}*XWUbfUAJr;JgtZ4u$pdWe0Zw*@x@D#YiBgEgZ+uNQ^Y~<3ysMS` zLHz#UjQO8#8>OeEP0rwDvwjM0;sn);k4P->;yM6-&3_++-y2HVaz{GzP)!07DE9`b zJJi!EC((u~AaGF{Y3;6poeI!DC3m#4>J@HpsTWY9D!5LgwN2*R3O}x-~Tk{E-gNFlMVe)Htkng_8u2$>NlK`|Rs$?ShNFGP1|C zT=(g2%%3p6zP=;+Wv^rzqDA;oGDTxsUr~k?T=r|uT(H+t(kDOhQXH0vc$GIhp@Tx`P#wZ@G@BP`l%t2zam=H>8LJY(r|Tr5}s_> zm)sSj*G=VU8^;4Ueb15wGq*xA36zl|qWSL~4WkyTd1e%s8wEQD6ev`1cWW6;@`0Jt z3QDdnmw8dg-|{rax?K6sHkoy-1jA(8qLe zqqv58H4J+OoW+h?fx0ND6cpWin-{6b)c{b;f)Aq$?&yQX#+bT-r(`L?4 zt3<{C2aNsiInMoO50AgC_A8&>eG0)E}2&#(Rd>K{A6V7!Ak^5QyU^7ruDGrv=T LpEdu_#p{0uvmoSU literal 5163 zcmeHLTR>A+y56={I;H68;Z&puXi=#`6`_LRV#cbdh%iS~KoF>0QVQWtLbyfi85s}( zfq)^9R1v7QxKd3I+Q*Iv0%hY$@8mx97oD-0(T;PX5i?R|8^WzC-XKiUcphc3Mb51$^~0zPl%6vIFMe8vMFe)xPpJpASUf5O9$=l%o_ zmmmK>Ewh54-38ut9ad=6DwmC58@~trGV|mU2qGt+I<<;w9UJ=XH_p;Bn=!J#rmCaE z1%h1FpKXDr{g0*0PJFzh#XdZxm0)DH$nG-AGo!dtJR$vY^F_P$~w~?FFYS<7V`|Gb!glQ-IV@Mb~fYVmTMpdaqL3~ z;+9poU?YY$HAB2n9*=bYKALEMyw#B%fxlYkSMoOD8jlB0Y=svJ*A%(A(M-L&JFTid zO~Uf@^a{Ii!@jq-{^RYmk?0jvUru=B%4!WdEG&TLx^_1yIXOb#Su`RLm_yL^Ab^Hz zC0HB&x<3{L)}cY35?lXr154eR{(ek^UWYUFYu$sEJ4Lhl?~&|}9wpAqT-|065b3CO z=&H3ric}%hQ<++Ge|ozA)rORl5On1XZ8mMKlIr+@oWb9u(N;V4F>!{Htg zY=R0#OAj+NMrPFb*=kQu&j`{L2=-9U!HqzP8o@ zMM;j>wr%I!6L<&W9Fw`FstZk-z5R6oSnNa@TVJj%Gzm{hiHd1k&Wbd%5SHD#wFp6R z(=d0Dre^hQpZg{M*CgOAh<*26Csn1FpgV-*>VC z{+T<#;porSJ{pY#mL(Z<=XQS1r%e0s=xAF|Uu2Y{c631rcEoi9495+YZEWEBn878K zSe#w`_;^zCKjpH^?>|6v(p%hR07QTbNaXsv1HhM`+I^LTzvC#P(C+dA{|ltK2shN&N$6@Mu$1g#x zdSGP7_Y7FLS)oa^d;nLk?^|C6lDps;`;{s%98z1p?i9HZG&#U@B1DU_dt7hQ~xAzSr(-}txQ#h zx1oBwa1A&q1^>k=I&%-&YLbRx-tK1gXcoUj4!P)cr`Dg3@xs!1i>_wlnbPreoeys- zG#&RgmKmSs)*^~W(eZKxUo=Ql@VnBy$x#-jd@>`O(Y!%X3QD+mSroz#*{aAZ?@qmP zV)@OE@Rd5Ut64uL52dA@eIJTz1#U9^;jcUw7yQQhCULaX)+1O{?m9f1k0hJ%GM%ux zIWmjrW@A#98DCP4`HnnqEq9!&At||``3m;+)o4~0@--({F-4FY#17p_%NlXj|JJFw zQYvW;O&i6CBnAlrBd73mX+!zXFPA!_*&jq|*T#5rgwh6v4wpEJVViUpQaOGlAoEc1 zBt9KQ$I8)sgd=&!hWH9jOA4kma5(8=xl`CiKSlDqZKG|is@4H7%;t-p1#7N3iZ-bq z#|p~KUHVny$n@)=QPlN4qy%LKDN)5xtC~t1IBy0lff9o=E(YObWh{!56PlO)#s(qJ z4M$`!9;NGEMK!%DcSvBOk(|(cx01U@0xP5x`f;>&MZx4X29r7#Ckkfs6wGo26(F|n zi!IRc_sY99`%V4gJQ{R!!BUWbYkXZ>)hIFJHL{1qH8rTKSpCZ(Z>do0D9yeW&>{)A z?IhJ3(B}TG=CbJ-+5~=Z5W#45yLjpfN<1^(sG{!(y6={D!2Sf?#!@$EJ;IwLT{&{X zfoCKvhiO1#1zme9Lo12E)~lOoCki*%6zmNzBK}fp8cO>8SnbIC0?S0N$4g5rb)kp- zx(=aBGnQU?E(%B+6>X|@;;{~ELkiX-Gjxp4@4&{MNLt?zB+zY? zXGm1JdH1CK&qPMhFZX}=1iESUoFrPB&@npnQS@UeiHE!9{_e?di4Bg?bLw$Cyr$O{ zp?J}JPq~|G6xB`YySr18UG1$LqIAvXU-Dp71JHc)T?=a)bs^OkNhNBIn{{jovxAyB zn}PTy20y_;B;rbJEe44;rB!K?+}%G$Y{nCj%E!6+O3q!*H6jh13?d!#xd>Fl;HyL~ zW92ONapFYtLaZ#ZCIaK_?M24lxOzCa?BXh#6BiYA0w=~ZhtHZ5?sC%3>(?qQ2Nl>U zf+076P}3x-s#X6~+IW6aAa@eyQKl-cNIUJ2Ys2O^u8XMfj3K4;LZ({RDcvYFfTqv= z`XThoCpSQgbVNLwzHB*s1UqQL-5f+hE$h0rNCZ%;E%rR&`;gxV?w; zHW0S=BL7($mdwhntf_gn>}zUneql1)H?X2HGs8~p<-8YF@v|+u1FK{-CQdy1D<46( z0Uce;=t@)PW9yjSPRIfRv$Ps5D?HN{^IGD%6lcQ|#Q9(p!it&^ft%HU`DAGneNDU| z?6PjzT;oKy$9@4pXTJw`jF)E&6In;Qh?lAfp15Iu)Z88XnwL;# ztz?TW)4hZAO@@hMs0OxE!zN~8Jh0iBt)ErNS!H8I$V|0dE$i0YpzFqBtAK2j-I6h! z@Su7G!zfcHETfPVY`4( zw0#WBcO?R;Bw;WT1~}G9{tRDVaRRE{o#RhURULtIJbW-VY7T7h{QveG_D&xA{wVSt tKX?B@z#jy>+sBo6{pRWatON8%sw^icGpFOD;5TXK&v>0~_&VhKe*krZ1FQf5 diff --git a/test/interpreter_functional/screenshots/baseline/metric_multi_metric_data.png b/test/interpreter_functional/screenshots/baseline/metric_multi_metric_data.png index 5888fba713befbec30700999ea5f8df175b4cbc5..1e8594425015631de6fbba07ab5d65db7ccfee5f 100644 GIT binary patch literal 43524 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 literal 42478 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 g5%2S4fy`}OVpo}v%H!JCIfD{E{~aL00M2rTrm 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 diff --git a/test/interpreter_functional/screenshots/baseline/metric_percentage_mode.png b/test/interpreter_functional/screenshots/baseline/metric_percentage_mode.png index 8a5fd9d7a728564cb01d1e13722429a2b3450a21..bcf33d9171193e7176a149aeebf5dd903b718e5f 100644 GIT binary patch literal 30182 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

Q|RUTdzozWL2>&RtJ6)D-Dx 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 Kv+|=JSN;ufq5X{j literal 20209 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 diff --git a/test/interpreter_functional/snapshots/baseline/combined_test3.json b/test/interpreter_functional/snapshots/baseline/combined_test3.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/baseline/combined_test3.json +++ b/test/interpreter_functional/snapshots/baseline/combined_test3.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/final_output_test.json b/test/interpreter_functional/snapshots/baseline/final_output_test.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/baseline/final_output_test.json +++ b/test/interpreter_functional/snapshots/baseline/final_output_test.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/metric_all_data.json b/test/interpreter_functional/snapshots/baseline/metric_all_data.json index 0e1e5a723373..9c10b53ce860 100644 --- a/test/interpreter_functional/snapshots/baseline/metric_all_data.json +++ b/test/interpreter_functional/snapshots/baseline/metric_all_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/metric_empty_data.json b/test/interpreter_functional/snapshots/baseline/metric_empty_data.json index c318121535c8..6fa08239f422 100644 --- a/test/interpreter_functional/snapshots/baseline/metric_empty_data.json +++ b/test/interpreter_functional/snapshots/baseline/metric_empty_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/metric_multi_metric_data.json b/test/interpreter_functional/snapshots/baseline/metric_multi_metric_data.json index fc8622a818de..4410447d2bb2 100644 --- a/test/interpreter_functional/snapshots/baseline/metric_multi_metric_data.json +++ b/test/interpreter_functional/snapshots/baseline/metric_multi_metric_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/metric_percentage_mode.json b/test/interpreter_functional/snapshots/baseline/metric_percentage_mode.json index 95c011f9259b..2abb3070c3d0 100644 --- a/test/interpreter_functional/snapshots/baseline/metric_percentage_mode.json +++ b/test/interpreter_functional/snapshots/baseline/metric_percentage_mode.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/metric_single_metric_data.json b/test/interpreter_functional/snapshots/baseline/metric_single_metric_data.json index f4a8cd1f14e1..cce892a2f8c6 100644 --- a/test/interpreter_functional/snapshots/baseline/metric_single_metric_data.json +++ b/test/interpreter_functional/snapshots/baseline/metric_single_metric_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/partial_test_2.json b/test/interpreter_functional/snapshots/baseline/partial_test_2.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/baseline/partial_test_2.json +++ b/test/interpreter_functional/snapshots/baseline/partial_test_2.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/baseline/step_output_test3.json b/test/interpreter_functional/snapshots/baseline/step_output_test3.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/baseline/step_output_test3.json +++ b/test/interpreter_functional/snapshots/baseline/step_output_test3.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/combined_test3.json b/test/interpreter_functional/snapshots/session/combined_test3.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/session/combined_test3.json +++ b/test/interpreter_functional/snapshots/session/combined_test3.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/final_output_test.json b/test/interpreter_functional/snapshots/session/final_output_test.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/session/final_output_test.json +++ b/test/interpreter_functional/snapshots/session/final_output_test.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/metric_all_data.json b/test/interpreter_functional/snapshots/session/metric_all_data.json index 0e1e5a723373..9c10b53ce860 100644 --- a/test/interpreter_functional/snapshots/session/metric_all_data.json +++ b/test/interpreter_functional/snapshots/session/metric_all_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":2,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/metric_empty_data.json b/test/interpreter_functional/snapshots/session/metric_empty_data.json index c318121535c8..6fa08239f422 100644 --- a/test/interpreter_functional/snapshots/session/metric_empty_data.json +++ b/test/interpreter_functional/snapshots/session/metric_empty_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/metric_multi_metric_data.json b/test/interpreter_functional/snapshots/session/metric_multi_metric_data.json index fc8622a818de..4410447d2bb2 100644 --- a/test/interpreter_functional/snapshots/session/metric_multi_metric_data.json +++ b/test/interpreter_functional/snapshots/session/metric_multi_metric_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},{"accessor":1,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/metric_percentage_mode.json b/test/interpreter_functional/snapshots/session/metric_percentage_mode.json index 95c011f9259b..2abb3070c3d0 100644 --- a/test/interpreter_functional/snapshots/session/metric_percentage_mode.json +++ b/test/interpreter_functional/snapshots/session/metric_percentage_mode.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":1000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":true,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/metric_single_metric_data.json b/test/interpreter_functional/snapshots/session/metric_single_metric_data.json index f4a8cd1f14e1..cce892a2f8c6 100644 --- a/test/interpreter_functional/snapshots/session/metric_single_metric_data.json +++ b/test/interpreter_functional/snapshots/session/metric_single_metric_data.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"metrics":[{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"},{"id":"col-2-1","meta":{"field":"bytes","index":"logstash-*","params":{"id":"bytes","params":null},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{"field":"bytes"},"schema":"metric","type":"max"},"type":"number"},"name":"Max bytes"}],"rows":[{"col-0-2":"200","col-1-1":12891,"col-2-1":19986},{"col-0-2":"404","col-1-1":696,"col-2-1":19881},{"col-0-2":"503","col-1-1":417,"col-2-1":0}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/partial_test_2.json b/test/interpreter_functional/snapshots/session/partial_test_2.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/session/partial_test_2.json +++ b/test/interpreter_functional/snapshots/session/partial_test_2.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/test/interpreter_functional/snapshots/session/step_output_test3.json b/test/interpreter_functional/snapshots/session/step_output_test3.json index 64b1052552c8..107d3fcbc5c5 100644 --- a/test/interpreter_functional/snapshots/session/step_output_test3.json +++ b/test/interpreter_functional/snapshots/session/step_output_test3.json @@ -1 +1 @@ -{"as":"metric_vis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file +{"as":"metricVis","type":"render","value":{"visConfig":{"dimensions":{"bucket":{"accessor":0,"format":{"id":"string","params":{}},"type":"vis_dimension"},"metrics":[{"accessor":1,"format":{"id":"number","params":{}},"type":"vis_dimension"}]},"metric":{"colorSchema":"Green to Red","colorsRange":[{"from":0,"to":10000,"type":"range"}],"invertColors":false,"labels":{"show":true},"metricColorMode":"None","percentageMode":false,"style":{"bgColor":false,"bgFill":"#000","fontSize":60,"labelColor":false,"subText":""},"useRanges":false}},"visData":{"columns":[{"id":"col-0-2","meta":{"field":"response.raw","index":"logstash-*","params":{"id":"terms","params":{"id":"string","missingBucketLabel":"Missing","otherBucketLabel":"Other"}},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"2","indexPatternId":"logstash-*","params":{"field":"response.raw","missingBucket":false,"missingBucketLabel":"Missing","order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","size":4},"schema":"segment","type":"terms"},"type":"string"},"name":"response.raw: Descending"},{"id":"col-1-1","meta":{"field":null,"index":"logstash-*","params":{"id":"number"},"source":"esaggs","sourceParams":{"appliedTimeRange":null,"enabled":true,"id":"1","indexPatternId":"logstash-*","params":{},"schema":"metric","type":"count"},"type":"number"},"name":"Count"}],"rows":[{"col-0-2":"200","col-1-1":12891},{"col-0-2":"404","col-1-1":696},{"col-0-2":"503","col-1-1":417}],"type":"datatable"},"visType":"metric"}} \ No newline at end of file diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index c0c8748869d3..6e986e7f9f59 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -5029,21 +5029,21 @@ "visTypeMetric.colorModes.backgroundOptionLabel": "背景", "visTypeMetric.colorModes.labelsOptionLabel": "ラベル", "visTypeMetric.colorModes.noneOptionLabel": "なし", - "visTypeMetric.function.adimension.splitGroup": "グループを分割", - "visTypeMetric.function.bgFill.help": "html 16 進数コード(#123456)、html 色(red、blue)、または rgba 値(rgba(255,255,255,1))。", - "visTypeMetric.function.bucket.help": "バケットディメンションの構成です。", - "visTypeMetric.function.colorMode.help": "色を変更するメトリックの部分", - "visTypeMetric.function.colorRange.help": "別の色が適用される値のグループを指定する範囲オブジェクト。", - "visTypeMetric.function.colorSchema.help": "使用する配色", - "visTypeMetric.function.dimension.metric": "メトリック", - "visTypeMetric.function.font.help": "フォント設定です。", - "visTypeMetric.function.help": "メトリックビジュアライゼーション", - "visTypeMetric.function.invertColors.help": "色範囲を反転します", - "visTypeMetric.function.metric.help": "メトリックディメンションの構成です。", - "visTypeMetric.function.percentageMode.help": "百分率モードでメトリックを表示します。colorRange を設定する必要があります。", - "visTypeMetric.function.showLabels.help": "メトリック値の下にラベルを表示します。", - "visTypeMetric.function.subText.help": "メトリックの下に表示するカスタムテキスト", - "visTypeMetric.function.useRanges.help": "有効な色範囲です。", + "expressionMetricVis.function.dimension.splitGroup": "グループを分割", + "expressionMetricVis.function.bgFill.help": "html 16 進数コード(#123456)、html 色(red、blue)、または rgba 値(rgba(255,255,255,1))。", + "expressionMetricVis.function.bucket.help": "バケットディメンションの構成です。", + "expressionMetricVis.function.colorMode.help": "色を変更するメトリックの部分", + "expressionMetricVis.function.colorRange.help": "別の色が適用される値のグループを指定する範囲オブジェクト。", + "expressionMetricVis.function.colorSchema.help": "使用する配色", + "expressionMetricVis.function.dimension.metric": "メトリック", + "expressionMetricVis.function.font.help": "フォント設定です。", + "expressionMetricVis.function.help": "メトリックビジュアライゼーション", + "expressionMetricVis.function.invertColors.help": "色範囲を反転します", + "expressionMetricVis.function.metric.help": "メトリックディメンションの構成です。", + "expressionMetricVis.function.percentageMode.help": "百分率モードでメトリックを表示します。colorRange を設定する必要があります。", + "expressionMetricVis.function.showLabels.help": "メトリック値の下にラベルを表示します。", + "expressionMetricVis.function.subText.help": "メトリックの下に表示するカスタムテキスト", + "expressionMetricVis.function.useRanges.help": "有効な色範囲です。", "visTypeMetric.metricDescription": "計算結果を単独の数字として表示します。", "visTypeMetric.metricTitle": "メトリック", "visTypeMetric.params.color.useForLabel": "使用する色", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index dfbdb36724a7..2f04a4117c24 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -5075,21 +5075,21 @@ "visTypeMetric.colorModes.backgroundOptionLabel": "背景", "visTypeMetric.colorModes.labelsOptionLabel": "标签", "visTypeMetric.colorModes.noneOptionLabel": "无", - "visTypeMetric.function.adimension.splitGroup": "拆分组", - "visTypeMetric.function.bgFill.help": "将颜色表示为 html 十六进制代码 (#123456)、html 颜色(red、blue)或 rgba 值 (rgba(255,255,255,1))。", - "visTypeMetric.function.bucket.help": "存储桶维度配置", - "visTypeMetric.function.colorMode.help": "指标的哪部分要上色", - "visTypeMetric.function.colorRange.help": "指定应将不同颜色应用到的值组的范围对象。", - "visTypeMetric.function.colorSchema.help": "要使用的颜色方案", - "visTypeMetric.function.dimension.metric": "指标", - "visTypeMetric.function.font.help": "字体设置。", - "visTypeMetric.function.help": "指标可视化", - "visTypeMetric.function.invertColors.help": "反转颜色范围", - "visTypeMetric.function.metric.help": "指标维度配置", - "visTypeMetric.function.percentageMode.help": "以百分比模式显示指标。需要设置 colorRange。", - "visTypeMetric.function.showLabels.help": "在指标值下显示标签。", - "visTypeMetric.function.subText.help": "要在指标下显示的定制文本", - "visTypeMetric.function.useRanges.help": "已启用颜色范围。", + "expressionMetricVis.function.dimension.splitGroup": "拆分组", + "expressionMetricVis.function.bgFill.help": "将颜色表示为 html 十六进制代码 (#123456)、html 颜色(red、blue)或 rgba 值 (rgba(255,255,255,1))。", + "expressionMetricVis.function.bucket.help": "存储桶维度配置", + "expressionMetricVis.function.colorMode.help": "指标的哪部分要上色", + "expressionMetricVis.function.colorRange.help": "指定应将不同颜色应用到的值组的范围对象。", + "expressionMetricVis.function.colorSchema.help": "要使用的颜色方案", + "expressionMetricVis.function.dimension.metric": "指标", + "expressionMetricVis.function.font.help": "字体设置。", + "expressionMetricVis.function.help": "指标可视化", + "expressionMetricVis.function.invertColors.help": "反转颜色范围", + "expressionMetricVis.function.metric.help": "指标维度配置", + "expressionMetricVis.function.percentageMode.help": "以百分比模式显示指标。需要设置 colorRange。", + "expressionMetricVis.function.showLabels.help": "在指标值下显示标签。", + "expressionMetricVis.function.subText.help": "要在指标下显示的定制文本", + "expressionMetricVis.function.useRanges.help": "已启用颜色范围。", "visTypeMetric.metricDescription": "将计算结果显示为单个数字。", "visTypeMetric.metricTitle": "指标", "visTypeMetric.params.color.useForLabel": "将颜色用于",