Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Lens][TSVB][Agg based] TSDB warning handling support for Lens, Agg based and TSVB #136833

Merged
merged 166 commits into from
Sep 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
8cd700e
start integrating TSDB into Lens
flash1293 Jul 21, 2022
7ba02d5
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Jul 27, 2022
ac12e1b
current state
flash1293 Aug 1, 2022
c8f3004
make new type filter work
flash1293 Aug 1, 2022
8042e78
fix translations
flash1293 Aug 1, 2022
2751e37
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 2, 2022
6aa932e
handle warnings
flash1293 Aug 2, 2022
a4ec322
clean up and make warnings better
flash1293 Aug 3, 2022
b414817
split function list for referenced fields too and extend list of unsu…
flash1293 Aug 3, 2022
ed718c4
improve warnings
flash1293 Aug 3, 2022
cca9c14
fix a bug
flash1293 Aug 3, 2022
312e87c
add todo for utc timezone
flash1293 Aug 3, 2022
ad396a1
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 3, 2022
e25ff1f
adding TSDB support to DataViews
ppisljar Aug 1, 2022
cbfd29c
adding test
ppisljar Aug 1, 2022
c592552
date_histogram: force fixed interval for tsdb rollups
ppisljar Aug 1, 2022
56305ef
fixing types
ppisljar Aug 1, 2022
dcbf1a4
fixing types
ppisljar Aug 1, 2022
6fe93b7
fixing types
ppisljar Aug 1, 2022
26829dc
fixing types
ppisljar Aug 1, 2022
922af99
handling edge cases
ppisljar Aug 1, 2022
15c11a6
removing undefined entries from FieldSpec
ppisljar Aug 4, 2022
d51c240
renaming .meta property
ppisljar Aug 4, 2022
c251280
enforce UTC timezone
ppisljar Aug 4, 2022
9b70f52
isRolledUpField helper
ppisljar Aug 4, 2022
7611070
updating snapshot
ppisljar Aug 4, 2022
cb5c749
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 8, 2022
c708a9f
adjust fixed interval and utc timezone for timelion and tsvb
flash1293 Aug 8, 2022
03a28c4
fixed interval mapping
ppisljar Aug 9, 2022
f3044ef
fixing test
ppisljar Aug 9, 2022
8d28321
Merge branch 'main' into tsdb/dataviews
ppisljar Aug 9, 2022
5425c54
Merge branch 'main' into tsdb/dataviews
ppisljar Aug 9, 2022
5384821
add showWarning to search service
tsullivan Aug 8, 2022
87218e4
add comments
tsullivan Aug 10, 2022
863295f
add unit tests
tsullivan Aug 10, 2022
3e74031
test foo
tsullivan Aug 10, 2022
543722a
cleanup
tsullivan Aug 10, 2022
1106e87
Merge branch 'main' into search/show-warnings-method
tsullivan Aug 10, 2022
d2b7c4f
Merge branch 'search/show-warnings-method' of github.com:tsullivan/ki…
tsullivan Aug 10, 2022
de25def
add s to property name in test
tsullivan Aug 10, 2022
457e307
comments for api items
tsullivan Aug 10, 2022
f65c349
fixing test
ppisljar Aug 11, 2022
cd8e1d1
Merge remote-tracking branch 'origin/tsdb/dataviews' into tsdb/dataviews
ppisljar Aug 11, 2022
1a8524f
Merge branch 'main' into tsdb/dataviews
ppisljar Aug 11, 2022
e7d707b
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 11, 2022
ccd5a3a
use the warnings when calling showWarnings
tsullivan Aug 11, 2022
f0871b1
change showWarning to just show a single warning
tsullivan Aug 11, 2022
0342cff
put handleWarnings on the request adapter
tsullivan Aug 11, 2022
042a620
comment
tsullivan Aug 11, 2022
cfa600d
simplify 1
tsullivan Aug 11, 2022
3421c7c
fix lens unit test
tsullivan Aug 12, 2022
9a507e3
Merge remote-tracking branch 'elastic' into search/show-warnings-method
tsullivan Aug 12, 2022
d798efa
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 12, 2022
72d1a5d
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 12, 2022
c77fbcd
Merge remote-tracking branch 'ppisljar/tsdb/dataviews' into lens-tsdb…
flash1293 Aug 12, 2022
04ff0ab
fix PR
flash1293 Aug 12, 2022
4ef5ec0
remove duplicate identifier
flash1293 Aug 12, 2022
500914e
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 15, 2022
7ad0ff3
remove underscoring for unused variables
tsullivan Aug 15, 2022
139bc0a
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 15, 2022
2795711
revert inspector changes, extract the response warnings in the search…
tsullivan Aug 15, 2022
a508da6
fix bug
tsullivan Aug 15, 2022
bda1417
remove console.log
tsullivan Aug 15, 2022
a8a024c
re-apply typescript fixes to app test code
tsullivan Aug 15, 2022
04949a6
declutter
tsullivan Aug 15, 2022
32aa23c
add test, improve comments
tsullivan Aug 15, 2022
d1a9ee6
fix some unexported public api items
tsullivan Aug 16, 2022
13ba3e8
include rawResponse in the warning structure
tsullivan Aug 16, 2022
939b23c
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 16, 2022
f3579da
fix lint
tsullivan Aug 16, 2022
95be2db
tweak clean up example app
tsullivan Aug 16, 2022
acb229c
SearchResponseWarnings and SearchResponseWarningNotification
tsullivan Aug 16, 2022
fc7c0be
fix export bug
tsullivan Aug 16, 2022
c3a78cc
Merge remote-tracking branch 'elastic' into search/show-warnings-method
tsullivan Aug 16, 2022
0108c41
not include shardStats if there are no warnings
tsullivan Aug 16, 2022
6d37763
Update src/plugins/data/common/search/types.ts
tsullivan Aug 16, 2022
5fa3935
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 17, 2022
b3a13e1
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 17, 2022
3f062b7
fix duplicated entries
flash1293 Aug 17, 2022
aeb0d7d
remove empty line
flash1293 Aug 17, 2022
ed21cdf
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 17, 2022
3a22146
simplify SearchResponseWarnings interface
tsullivan Aug 17, 2022
e33aafa
remove array copying
tsullivan Aug 18, 2022
1069498
[CI] Auto-commit changed files from 'node scripts/eslint --no-cache -…
kibanamachine Aug 18, 2022
2330089
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 21, 2022
c2ee790
comments for api_docs
tsullivan Aug 21, 2022
a4ff126
Merge remote-tracking branch 'elastic' into search/show-warnings-method
tsullivan Aug 22, 2022
58f8862
simplify per feedback
tsullivan Aug 23, 2022
016522e
Pass callback to handleResponse in showWarnings
tsullivan Aug 23, 2022
91c62f3
export more public types
tsullivan Aug 23, 2022
cff0518
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 23, 2022
f8f9fd2
update example to make possible to show shard failure
tsullivan Aug 23, 2022
4b42e86
pr cleanup
tsullivan Aug 23, 2022
b187df0
Merge branch 'main' into search/show-warnings-method
tsullivan Aug 23, 2022
f91220a
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 23, 2022
8369792
eslint fix
tsullivan Aug 23, 2022
0fb21fc
allow example app to not show default warnings
tsullivan Aug 23, 2022
1931aa3
move extractWarning and related types to inspector plugin
tsullivan Aug 24, 2022
f2398f2
wip functional test of example app
tsullivan Aug 24, 2022
a8dd067
Merge remote-tracking branch 'tsullivan/search/show-warnings-method' …
tsullivan Aug 24, 2022
235894c
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 24, 2022
d1583c6
fix test references
tsullivan Aug 24, 2022
9d016f0
Merge remote-tracking branch 'elastic' into search/show-warnings-method
tsullivan Aug 24, 2022
d6c210e
finish functional test
tsullivan Aug 24, 2022
94c95de
relocate extractWarnings back to search/fetch
tsullivan Aug 24, 2022
50fa217
fix test
tsullivan Aug 24, 2022
20e72c7
remove need for isTimeout, isShardFailure
tsullivan Aug 24, 2022
79eed0f
ts fix
tsullivan Aug 24, 2022
e3d45a1
improve test
tsullivan Aug 24, 2022
b7c945a
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 24, 2022
8280cd3
Change showWarnings to accept the RequestAdapter
tsullivan Aug 25, 2022
4ee7934
use showWarnings in vis_types/timeseries
tsullivan Aug 25, 2022
1be364f
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 25, 2022
0050b2d
more tests
tsullivan Aug 25, 2022
69866ec
use handle_warning name
tsullivan Aug 25, 2022
fa73802
fix ts
tsullivan Aug 25, 2022
5da2b99
add reason field to SearchResponseWarning
tsullivan Aug 25, 2022
09c3f5b
fix component snapshot
tsullivan Aug 25, 2022
fb80ec0
update comments
tsullivan Aug 25, 2022
97e6228
test cleanup
tsullivan Aug 25, 2022
ce1a9bf
fix test
tsullivan Aug 25, 2022
9e04f95
Merge branch 'main' into search/show-warnings-method
tsullivan Aug 26, 2022
378de08
Merge branch 'main' into search/show-warnings-method
tsullivan Aug 26, 2022
85572b1
Merge branch 'main' into search/show-warnings-method
tsullivan Aug 29, 2022
d470202
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 29, 2022
1514621
ensure notification appears only once
tsullivan Aug 29, 2022
7a5f3a9
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 30, 2022
37f6a2a
fix and cleanup
tsullivan Aug 30, 2022
625e567
fix ts
tsullivan Aug 30, 2022
17e4e42
fix response.json bug
tsullivan Aug 30, 2022
322d3e3
Merge remote-tracking branch 'elastic/main' into search/show-warnings…
tsullivan Aug 30, 2022
284f272
use top-level type, and lower-level reason.type
tsullivan Aug 30, 2022
6c2307f
Merge branch 'main' into search/show-warnings-method
tsullivan Aug 30, 2022
cd7e80f
cleanup
tsullivan Aug 30, 2022
63350e3
Merge branch 'main' into search/show-warnings-method
flash1293 Aug 31, 2022
d057bac
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Aug 31, 2022
c33fa5f
Merge remote-tracking branch 'tsullivan/search/show-warnings-method' …
flash1293 Aug 31, 2022
4976036
change warning structure
flash1293 Aug 31, 2022
79ad2fe
change warning infrastructure
flash1293 Aug 31, 2022
bfe053e
fix
flash1293 Aug 31, 2022
b0010cf
allows to disable automatic handling of shard warnings on expressions
ppisljar Aug 31, 2022
9340e99
[CI] Auto-commit changed files from 'node scripts/precommit_hook.js -…
kibanamachine Aug 31, 2022
c57ded9
fix tests
flash1293 Aug 31, 2022
718a115
fix tsconfig json
flash1293 Aug 31, 2022
eec781c
allows to disable automatic handling of shard warnings on expressions
ppisljar Aug 31, 2022
a74c5ce
Merge remote-tracking branch 'origin/expressions/disableshardwarnings…
ppisljar Aug 31, 2022
809d82d
Merge branch 'main' into expressions/disableshardwarnings
ppisljar Aug 31, 2022
8dcdfa6
fix tests
flash1293 Aug 31, 2022
5dceb37
allows to disable automatic handling of shard warnings on expressions
ppisljar Aug 31, 2022
04967f5
Merge remote-tracking branch 'origin/expressions/disableshardwarnings…
ppisljar Aug 31, 2022
613afa5
Merge branch 'expressions/disableshardwarnings' into lens-tsdb-rollup
flash1293 Aug 31, 2022
894ec5a
disable warnings the right way
flash1293 Aug 31, 2022
7c7645e
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Sep 1, 2022
9e04005
fix stuff and clean up
flash1293 Sep 1, 2022
ddd79ad
random cleanup
flash1293 Sep 1, 2022
b8ffebb
fix test
flash1293 Sep 1, 2022
3f26255
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Sep 1, 2022
d792e40
remove unused function
flash1293 Sep 1, 2022
34bcac7
Merge branch 'main' into lens-tsdb-rollup
flash1293 Sep 5, 2022
ed274f4
Merge branch 'main' into lens-tsdb-rollup
flash1293 Sep 6, 2022
539d425
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Sep 7, 2022
8906ca1
review comments
flash1293 Sep 7, 2022
d99299a
[CI] Auto-commit changed files from 'node scripts/precommit_hook.js -…
kibanamachine Sep 7, 2022
76ca7cc
Merge remote-tracking branch 'upstream/main' into lens-tsdb-rollup
flash1293 Sep 8, 2022
ac9ecd1
style warnings and switch to real error message
flash1293 Sep 8, 2022
2d769aa
Merge branch 'lens-tsdb-rollup' of github.com:flash1293/kibana into l…
flash1293 Sep 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/plugins/charts/public/static/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export { EmptyPlaceholder } from './empty_placeholder';

export { useCommonChartStyles } from './common_chart_styles';
export * from './endzones';
export * from './warnings';

/**
* The Lazily-loaded `ColorPicker` component. Consumers should use `React.Suspense` or
Expand Down
52 changes: 52 additions & 0 deletions src/plugins/charts/public/static/components/warnings.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
* 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 { EuiButtonEmpty, EuiHorizontalRule, EuiPopover, EuiText } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { euiThemeVars } from '@kbn/ui-theme';
import React, { useState } from 'react';

export function Warnings({ warnings }: { warnings: React.ReactNode[] }) {
const [open, setOpen] = useState(false);
if (warnings.length === 0) return null;
return (
<>
<EuiPopover
isOpen={open}
panelPaddingSize="none"
closePopover={() => setOpen(false)}
button={
<EuiButtonEmpty color="warning" iconType="alert" onClick={() => setOpen(!open)} size="xs">
{i18n.translate('charts.warning.warningLabel', {
defaultMessage:
'{numberWarnings, number} {numberWarnings, plural, one {warning} other {warnings}}',
values: {
numberWarnings: warnings.length,
},
})}
</EuiButtonEmpty>
}
>
<div style={{ maxWidth: 512 }}>
{warnings.map((w, i) => (
<React.Fragment key={i}>
<div
css={{
padding: euiThemeVars.euiSizeS,
}}
>
<EuiText size="s">{w}</EuiText>
</div>
{i < warnings.length - 1 && <EuiHorizontalRule margin="none" />}
</React.Fragment>
))}
</div>
</EuiPopover>
</>
);
}
5 changes: 3 additions & 2 deletions src/plugins/vis_types/timeseries/public/metrics_type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ import {
extractIndexPatternValues,
isStringTypeIndexPattern,
} from '../common/index_patterns_utils';
import { TSVB_DEFAULT_COLOR } from '../common/constants';
import { TSVB_DEFAULT_COLOR, UI_SETTINGS } from '../common/constants';
import { toExpressionAst } from './to_ast';
import { getDataViewsStart } from './services';
import { getDataViewsStart, getUISettings } from './services';
import type { TimeseriesVisDefaultParams, TimeseriesVisParams } from './types';
import type { IndexPatternValue, Panel } from '../common/types';
import { convertTSVBtoLensConfiguration } from './convert_to_lens';
Expand Down Expand Up @@ -176,5 +176,6 @@ export const metricsVisDefinition: VisTypeDefinition<
requests: new RequestAdapter(),
}),
requiresSearch: true,
suppressWarnings: () => !getUISettings().get(UI_SETTINGS.ALLOW_CHECKING_FOR_FAILED_SHARDS),
getUsedIndexPattern: getUsedIndexPatterns,
};
10 changes: 1 addition & 9 deletions src/plugins/vis_types/timeseries/public/request_handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import type { Adapters } from '@kbn/inspector-plugin/common';
import { KibanaContext } from '@kbn/data-plugin/public';
import { getTimezone } from './application/lib/get_timezone';
import { getUISettings, getDataStart, getCoreStart } from './services';
import { ROUTES, UI_SETTINGS } from '../common/constants';
import { ROUTES } from '../common/constants';

import type { TimeseriesVisParams } from './types';
import type { TimeseriesVisData } from '../common/types';
Expand Down Expand Up @@ -84,14 +84,6 @@ export const metricsRequestHandler = async ({
?.start(query.label ?? key, { searchSessionId })
.json(query.body)
.ok({ time: query.time, json: { rawResponse: query.response } });

if (
query.response &&
inspectorAdapters?.requests &&
config.get(UI_SETTINGS.ALLOW_CHECKING_FOR_FAILED_SHARDS)
) {
data.search.showWarnings(inspectorAdapters.requests);
}
});

return visData;
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/visualizations/kibana.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"ui": true,
"requiredPlugins": [
"data",
"charts",
"expressions",
"fieldFormats",
"uiActions",
Expand All @@ -19,7 +20,7 @@
"dataViewEditor"
],
"optionalPlugins": ["home", "share", "spaces", "savedObjectsTaggingOss"],
"requiredBundles": ["kibanaUtils", "savedSearch", "kibanaReact"],
"requiredBundles": ["kibanaUtils", "savedSearch", "kibanaReact", "charts"],
"extraPublicDirs": ["common/constants", "common/utils", "common/expression_functions"],
"owner": {
"name": "Vis Editors",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@
}
}

.visPanel__warnings {
position: absolute;
z-index: 2;
right: $euiSizeM;
bottom: $euiSizeM;
}

// OPTIONS MENU

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type { ErrorLike } from '@kbn/expressions-plugin/common';
import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public';
import { TimefilterContract } from '@kbn/data-plugin/public';
import type { DataView } from '@kbn/data-views-plugin/public';
import { Warnings } from '@kbn/charts-plugin/public';
import {
Adapters,
AttributeService,
Expand Down Expand Up @@ -115,6 +116,7 @@ export class VisualizeEmbeddable
private expression?: ExpressionAstExpression;
private vis: Vis;
private domNode: any;
private warningDomNode: any;
public readonly type = VISUALIZE_EMBEDDABLE_TYPE;
private abortController?: AbortController;
private readonly deps: VisualizeEmbeddableFactoryDeps;
Expand Down Expand Up @@ -332,6 +334,31 @@ export class VisualizeEmbeddable
return dirty;
}

private handleWarnings() {
const warnings: React.ReactNode[] = [];
if (this.getInspectorAdapters()?.requests) {
this.deps
.start()
.plugins.data.search.showWarnings(this.getInspectorAdapters()!.requests!, (warning) => {
if (
warning.type === 'shard_failure' &&
warning.reason.type === 'unsupported_aggregation_on_downsampled_index'
) {
warnings.push(warning.reason.reason || warning.message);
return true;
}
if (this.vis.type.suppressWarnings?.()) {
// if the vis type wishes to supress all warnings, return true so the default logic won't pick it up
return true;
}
});
}

if (this.warningDomNode) {
render(<Warnings warnings={warnings || []} />, this.warningDomNode);
}
}

// this is a hack to make editor still work, will be removed once we clean up editor
// @ts-ignore
hasInspector = () => Boolean(this.getInspectorAdapters());
Expand All @@ -347,6 +374,7 @@ export class VisualizeEmbeddable
};

onContainerData = () => {
this.handleWarnings();
this.updateOutput({
...this.getOutput(),
loading: false,
Expand Down Expand Up @@ -386,6 +414,11 @@ export class VisualizeEmbeddable
div.className = `visualize panel-content panel-content--fullWidth`;
domNode.appendChild(div);

const warningDiv = document.createElement('div');
warningDiv.className = 'visPanel__warnings';
domNode.appendChild(warningDiv);
this.warningDomNode = warningDiv;

this.domNode = div;
super.render(this.domNode);

Expand Down Expand Up @@ -532,6 +565,7 @@ export class VisualizeEmbeddable
timeRange: this.timeRange,
query: this.input.query,
filters: this.input.filters,
disableShardWarnings: true,
},
variables: {
embeddableTitle: this.getTitle(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ export class BaseVisType<TVisParams = VisParams> {
public readonly editorConfig;
public hidden;
public readonly requiresSearch;
public readonly suppressWarnings;
public readonly hasPartialRows;
public readonly hierarchicalData;
public readonly setup;
Expand All @@ -64,6 +65,7 @@ export class BaseVisType<TVisParams = VisParams> {
this.title = opts.title;
this.icon = opts.icon;
this.image = opts.image;
this.suppressWarnings = opts.suppressWarnings;
this.visConfig = defaultsDeep({}, opts.visConfig, { defaults: {} });
this.editorConfig = defaultsDeep({}, opts.editorConfig, { collections: {} });
this.options = defaultsDeep({}, opts.options, defaultOptions);
Expand Down
4 changes: 4 additions & 0 deletions src/plugins/visualizations/public/vis_types/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,10 @@ export interface VisTypeDefinition<TVisParams> {
* It sets the vis type on a deprecated mode when is true
*/
readonly isDeprecated?: boolean;
/**
* If returns true, no warning toasts will be shown
*/
readonly suppressWarnings?: () => boolean;
/**
* Describes the experience group that the visualization belongs.
* It can be on tools, aggregation based or promoted group.
Expand Down
1 change: 1 addition & 0 deletions src/plugins/visualizations/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
],
"references": [
{ "path": "../../core/tsconfig.json" },
{ "path": "../charts/tsconfig.json" },
{ "path": "../data/tsconfig.json" },
{ "path": "../data_views/tsconfig.json" },
{ "path": "../expressions/tsconfig.json" },
Expand Down
2 changes: 1 addition & 1 deletion test/examples/search/warnings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const testRollupIndex = 'sample-01-rollup';
const testRollupField = 'kubernetes.container.memory.usage.bytes';
const toastsSelector = '[data-test-subj=globalToastList] [data-test-subj=euiToastHeader]';
const shardFailureType = 'unsupported_aggregation_on_rollup_index';
const shardFailureType = 'unsupported_aggregation_on_downsampled_index';
const shardFailureReason = `Field [${testRollupField}] of type [aggregate_metric_double] is not supported for aggregation [percentiles]`;

const getTestJson = async (tabTestSubj: string, codeTestSubj: string) => {
Expand Down
3 changes: 2 additions & 1 deletion x-pack/plugins/lens/kibana.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@
"kibanaUtils",
"kibanaReact",
"embeddable",
"fieldFormats"
"fieldFormats",
"charts"
],
"owner": {
"name": "Vis Editors",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
@include euiYScroll;
max-height: $euiSize * 20;
width: $euiSize * 16;
overflow-wrap: break-word;
}

.lnsWorkspaceWarningList__item {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,10 @@ describe('workspace_panel', () => {

expect(mounted.lensStore.dispatch).toHaveBeenCalledWith({
type: 'lens/onActiveDataChange',
payload: tablesData,
payload: {
activeData: tablesData,
requestWarnings: [],
},
});
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,22 +217,34 @@ export const InnerWorkspacePanel = React.memo(function InnerWorkspacePanel({
if (renderDeps.current) {
const [defaultLayerId] = Object.keys(renderDeps.current.datasourceLayers);

const requestWarnings: string[] = [];
const datasource = Object.values(renderDeps.current?.datasourceMap)[0];
const datasourceState = Object.values(renderDeps.current?.datasourceStates)[0].state;
if (adapters?.requests) {
plugins.data.search.showWarnings(adapters.requests, (warning) => {
const warningMessage = datasource.getSearchWarningMessages?.(datasourceState, warning);

requestWarnings.push(...(warningMessage || []));
if (warningMessage && warningMessage.length) return true;
});
}
if (adapters && adapters.tables) {
dispatchLens(
onActiveDataChange(
Object.entries(adapters.tables?.tables).reduce<Record<string, Datatable>>(
onActiveDataChange({
activeData: Object.entries(adapters.tables?.tables).reduce<Record<string, Datatable>>(
(acc, [key, value], index, tables) => ({
...acc,
[tables.length === 1 ? defaultLayerId : key]: value,
}),
{}
)
)
),
requestWarnings,
})
);
}
}
},
[dispatchLens]
[dispatchLens, plugins.data.search]
);

const shouldApplyExpression = autoApplyEnabled || !initialRenderComplete.current || triggerApply;
Expand Down Expand Up @@ -606,6 +618,7 @@ export const InnerWorkspacePanel = React.memo(function InnerWorkspacePanel({
datasourceMap={datasourceMap}
visualizationMap={visualizationMap}
isFullscreen={isFullscreen}
lensInspector={lensInspector}
>
{renderWorkspace()}
</WorkspacePanelWrapper>
Expand Down Expand Up @@ -656,6 +669,7 @@ export const VisualizationWrapper = ({
to: context.dateRange.toDate,
},
filters: context.filters,
disableShardWarnings: true,
}),
[context]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
selectTriggerApplyChanges,
} from '../../../state_management';
import { enableAutoApply, setChangesApplied } from '../../../state_management/lens_slice';
import { LensInspector } from '../../../lens_inspector_service';

describe('workspace_panel_wrapper', () => {
let mockVisualization: jest.Mocked<Visualization>;
Expand All @@ -39,6 +40,7 @@ describe('workspace_panel_wrapper', () => {
datasourceMap={{}}
datasourceStates={{}}
isFullscreen={false}
lensInspector={{} as unknown as LensInspector}
>
<MyChild />
</WorkspacePanelWrapper>
Expand All @@ -60,6 +62,7 @@ describe('workspace_panel_wrapper', () => {
datasourceMap={{}}
datasourceStates={{}}
isFullscreen={false}
lensInspector={{} as unknown as LensInspector}
/>
);

Expand Down Expand Up @@ -114,6 +117,7 @@ describe('workspace_panel_wrapper', () => {
datasourceMap={{}}
datasourceStates={{}}
isFullscreen={false}
lensInspector={{} as unknown as LensInspector}
>
<div />
</WorkspacePanelWrapper>
Expand Down
Loading