mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
# Backport This will backport the following commits from `main` to `8.12`: - [[Lens] stop gap solution for invalid formula and math columns (#175644)](https://github.com/elastic/kibana/pull/175644) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Drew Tate","email":"drew.tate@elastic.co"},"sourceCommit":{"committedDate":"2024-01-26T06:09:57Z","message":"[Lens] stop gap solution for invalid formula and math columns (#175644)\n\n## Summary\r\n\r\nA stop-gap solution for https://github.com/elastic/kibana/issues/168561\r\n\r\nThis visualization can be used to test.\r\n\r\n```\r\n{\"attributes\":{\"fieldFormatMap\":\"{\\\"hour_of_day\\\":{}}\",\"name\":\"Kibana Sample Data Logs\",\"runtimeFieldMap\":\"{\\\"hour_of_day\\\":{\\\"type\\\":\\\"long\\\",\\\"script\\\":{\\\"source\\\":\\\"emit(doc['timestamp'].value.getHour());\\\"}}}\",\"timeFieldName\":\"timestamp\",\"title\":\"kibana_sample_data_logs\"},\"coreMigrationVersion\":\"8.8.0\",\"created_at\":\"2024-01-24T19:57:34.193Z\",\"id\":\"90943e30-9a47-11e8-b64d-95841ca0b247\",\"managed\":false,\"references\":[],\"type\":\"index-pattern\",\"typeMigrationVersion\":\"8.0.0\",\"updated_at\":\"2024-01-24T19:57:34.193Z\",\"version\":\"WzM1LDFd\"}\r\n{\"attributes\":{\"description\":\"\",\"state\":{\"adHocDataViews\":{},\"datasourceStates\":{\"formBased\":{\"layers\":{\"7945fa55-b9ea-4b10-a498-e265ef192d7d\":{\"columnOrder\":[\"207508ea-7433-494f-9925-70d55831c74c\",\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\",\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\"],\"columns\":{\"207508ea-7433-494f-9925-70d55831c74c\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"dropPartials\":false,\"includeEmptyRows\":true,\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"timestamp\"},\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"median(bytes)\",\"operationType\":\"formula\",\"sourceField\":\"___records___\",\"params\":{\"formula\":\"median(bytes)\",\"isFormulaBroken\":false},\"references\":[\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\"],\"scale\":\"ratio\"},\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Part of median(bytes)\",\"operationType\":\"median\",\"params\":{\"emptyAsNull\":false},\"scale\":\"ratio\",\"sourceField\":\"bytes\"}},\"incompleteColumns\":{},\"sampling\":1}}},\"indexpattern\":{\"layers\":{}},\"textBased\":{\"layers\":{}}},\"filters\":[],\"internalReferences\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\"],\"layerId\":\"7945fa55-b9ea-4b10-a498-e265ef192d7d\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"207508ea-7433-494f-9925-70d55831c74c\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\"}},\"title\":\"Vis with formula\",\"visualizationType\":\"lnsXY\"},\"coreMigrationVersion\":\"8.8.0\",\"created_at\":\"2024-01-25T21:12:58.923Z\",\"id\":\"2139b4e8-ee7c-41dc-9564-74b7c1e54216\",\"managed\":false,\"references\":[{\"id\":\"90943e30-9a47-11e8-b64d-95841ca0b247\",\"name\":\"indexpattern-datasource-layer-7945fa55-b9ea-4b10-a498-e265ef192d7d\",\"type\":\"index-pattern\"}],\"type\":\"lens\",\"typeMigrationVersion\":\"8.9.0\",\"updated_at\":\"2024-01-25T21:12:58.923Z\",\"version\":\"WzgwLDFd\"}\r\n{\"excludedObjects\":[],\"excludedObjectsCount\":0,\"exportedCount\":2,\"missingRefCount\":0,\"missingReferences\":[]}\r\n```\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)","sha":"0dfff4c208d4c4c78c14c8b46dff841689623ee4","branchLabelMapping":{"^v8.13.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","Team:Visualizations","Feature:Lens","backport:prev-minor","v8.12.1","v8.13.0"],"title":"[Lens] stop gap solution for invalid formula and math columns","number":175644,"url":"https://github.com/elastic/kibana/pull/175644","mergeCommit":{"message":"[Lens] stop gap solution for invalid formula and math columns (#175644)\n\n## Summary\r\n\r\nA stop-gap solution for https://github.com/elastic/kibana/issues/168561\r\n\r\nThis visualization can be used to test.\r\n\r\n```\r\n{\"attributes\":{\"fieldFormatMap\":\"{\\\"hour_of_day\\\":{}}\",\"name\":\"Kibana Sample Data Logs\",\"runtimeFieldMap\":\"{\\\"hour_of_day\\\":{\\\"type\\\":\\\"long\\\",\\\"script\\\":{\\\"source\\\":\\\"emit(doc['timestamp'].value.getHour());\\\"}}}\",\"timeFieldName\":\"timestamp\",\"title\":\"kibana_sample_data_logs\"},\"coreMigrationVersion\":\"8.8.0\",\"created_at\":\"2024-01-24T19:57:34.193Z\",\"id\":\"90943e30-9a47-11e8-b64d-95841ca0b247\",\"managed\":false,\"references\":[],\"type\":\"index-pattern\",\"typeMigrationVersion\":\"8.0.0\",\"updated_at\":\"2024-01-24T19:57:34.193Z\",\"version\":\"WzM1LDFd\"}\r\n{\"attributes\":{\"description\":\"\",\"state\":{\"adHocDataViews\":{},\"datasourceStates\":{\"formBased\":{\"layers\":{\"7945fa55-b9ea-4b10-a498-e265ef192d7d\":{\"columnOrder\":[\"207508ea-7433-494f-9925-70d55831c74c\",\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\",\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\"],\"columns\":{\"207508ea-7433-494f-9925-70d55831c74c\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"dropPartials\":false,\"includeEmptyRows\":true,\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"timestamp\"},\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"median(bytes)\",\"operationType\":\"formula\",\"sourceField\":\"___records___\",\"params\":{\"formula\":\"median(bytes)\",\"isFormulaBroken\":false},\"references\":[\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\"],\"scale\":\"ratio\"},\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Part of median(bytes)\",\"operationType\":\"median\",\"params\":{\"emptyAsNull\":false},\"scale\":\"ratio\",\"sourceField\":\"bytes\"}},\"incompleteColumns\":{},\"sampling\":1}}},\"indexpattern\":{\"layers\":{}},\"textBased\":{\"layers\":{}}},\"filters\":[],\"internalReferences\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\"],\"layerId\":\"7945fa55-b9ea-4b10-a498-e265ef192d7d\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"207508ea-7433-494f-9925-70d55831c74c\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\"}},\"title\":\"Vis with formula\",\"visualizationType\":\"lnsXY\"},\"coreMigrationVersion\":\"8.8.0\",\"created_at\":\"2024-01-25T21:12:58.923Z\",\"id\":\"2139b4e8-ee7c-41dc-9564-74b7c1e54216\",\"managed\":false,\"references\":[{\"id\":\"90943e30-9a47-11e8-b64d-95841ca0b247\",\"name\":\"indexpattern-datasource-layer-7945fa55-b9ea-4b10-a498-e265ef192d7d\",\"type\":\"index-pattern\"}],\"type\":\"lens\",\"typeMigrationVersion\":\"8.9.0\",\"updated_at\":\"2024-01-25T21:12:58.923Z\",\"version\":\"WzgwLDFd\"}\r\n{\"excludedObjects\":[],\"excludedObjectsCount\":0,\"exportedCount\":2,\"missingRefCount\":0,\"missingReferences\":[]}\r\n```\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)","sha":"0dfff4c208d4c4c78c14c8b46dff841689623ee4"}},"sourceBranch":"main","suggestedTargetBranches":["8.12"],"targetPullRequestStates":[{"branch":"8.12","label":"v8.12.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.13.0","branchLabelMappingKey":"^v8.13.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/175644","number":175644,"mergeCommit":{"message":"[Lens] stop gap solution for invalid formula and math columns (#175644)\n\n## Summary\r\n\r\nA stop-gap solution for https://github.com/elastic/kibana/issues/168561\r\n\r\nThis visualization can be used to test.\r\n\r\n```\r\n{\"attributes\":{\"fieldFormatMap\":\"{\\\"hour_of_day\\\":{}}\",\"name\":\"Kibana Sample Data Logs\",\"runtimeFieldMap\":\"{\\\"hour_of_day\\\":{\\\"type\\\":\\\"long\\\",\\\"script\\\":{\\\"source\\\":\\\"emit(doc['timestamp'].value.getHour());\\\"}}}\",\"timeFieldName\":\"timestamp\",\"title\":\"kibana_sample_data_logs\"},\"coreMigrationVersion\":\"8.8.0\",\"created_at\":\"2024-01-24T19:57:34.193Z\",\"id\":\"90943e30-9a47-11e8-b64d-95841ca0b247\",\"managed\":false,\"references\":[],\"type\":\"index-pattern\",\"typeMigrationVersion\":\"8.0.0\",\"updated_at\":\"2024-01-24T19:57:34.193Z\",\"version\":\"WzM1LDFd\"}\r\n{\"attributes\":{\"description\":\"\",\"state\":{\"adHocDataViews\":{},\"datasourceStates\":{\"formBased\":{\"layers\":{\"7945fa55-b9ea-4b10-a498-e265ef192d7d\":{\"columnOrder\":[\"207508ea-7433-494f-9925-70d55831c74c\",\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\",\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\"],\"columns\":{\"207508ea-7433-494f-9925-70d55831c74c\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"dropPartials\":false,\"includeEmptyRows\":true,\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"timestamp\"},\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"median(bytes)\",\"operationType\":\"formula\",\"sourceField\":\"___records___\",\"params\":{\"formula\":\"median(bytes)\",\"isFormulaBroken\":false},\"references\":[\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\"],\"scale\":\"ratio\"},\"36d445ea-dd2a-4b13-96e2-d51d07d98f70X0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Part of median(bytes)\",\"operationType\":\"median\",\"params\":{\"emptyAsNull\":false},\"scale\":\"ratio\",\"sourceField\":\"bytes\"}},\"incompleteColumns\":{},\"sampling\":1}}},\"indexpattern\":{\"layers\":{}},\"textBased\":{\"layers\":{}}},\"filters\":[],\"internalReferences\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"36d445ea-dd2a-4b13-96e2-d51d07d98f70\"],\"layerId\":\"7945fa55-b9ea-4b10-a498-e265ef192d7d\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"207508ea-7433-494f-9925-70d55831c74c\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\"}},\"title\":\"Vis with formula\",\"visualizationType\":\"lnsXY\"},\"coreMigrationVersion\":\"8.8.0\",\"created_at\":\"2024-01-25T21:12:58.923Z\",\"id\":\"2139b4e8-ee7c-41dc-9564-74b7c1e54216\",\"managed\":false,\"references\":[{\"id\":\"90943e30-9a47-11e8-b64d-95841ca0b247\",\"name\":\"indexpattern-datasource-layer-7945fa55-b9ea-4b10-a498-e265ef192d7d\",\"type\":\"index-pattern\"}],\"type\":\"lens\",\"typeMigrationVersion\":\"8.9.0\",\"updated_at\":\"2024-01-25T21:12:58.923Z\",\"version\":\"WzgwLDFd\"}\r\n{\"excludedObjects\":[],\"excludedObjectsCount\":0,\"exportedCount\":2,\"missingRefCount\":0,\"missingReferences\":[]}\r\n```\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] [Flaky Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\r\nused on any tests changed\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)","sha":"0dfff4c208d4c4c78c14c8b46dff841689623ee4"}}]}] BACKPORT--> Co-authored-by: Drew Tate <drew.tate@elastic.co>
This commit is contained in:
parent
e4d53bd048
commit
1f1f85f288
2 changed files with 74 additions and 7 deletions
|
@ -435,5 +435,68 @@ describe('indexpattern_datasource utils', () => {
|
|||
);
|
||||
expect(warnings).toHaveLength(2);
|
||||
});
|
||||
|
||||
// formula columns should never have a source field
|
||||
// but it has been observed in the wild (https://github.com/elastic/kibana/issues/168561)
|
||||
it('should ignore formula column with source field', () => {
|
||||
const state = {
|
||||
layers: {
|
||||
'08ae29be-2717-4320-a908-a50ca73ee558': {
|
||||
indexPatternId: '0',
|
||||
columnOrder: [
|
||||
'62f73507-09c4-4bf9-9e6f-a9692e348d94',
|
||||
'1a027207-98b3-4a57-a97f-4c67e95eebc1',
|
||||
],
|
||||
columns: {
|
||||
'1a027207-98b3-4a57-a97f-4c67e95eebc1': {
|
||||
customLabel: true,
|
||||
dataType: 'number',
|
||||
filter: {
|
||||
language: 'kuery',
|
||||
query: 'my:field',
|
||||
},
|
||||
isBucketed: false,
|
||||
label: 'Failures',
|
||||
operationType: 'count',
|
||||
params: {
|
||||
emptyAsNull: true,
|
||||
},
|
||||
scale: 'ratio',
|
||||
sourceField: '___records___',
|
||||
},
|
||||
'62f73507-09c4-4bf9-9e6f-a9692e348d94': {
|
||||
customLabel: true,
|
||||
dataType: 'number',
|
||||
filter: {
|
||||
language: 'kuery',
|
||||
query: 'my:field',
|
||||
},
|
||||
isBucketed: false,
|
||||
label: 'Success',
|
||||
operationType: 'formula',
|
||||
params: {
|
||||
emptyAsNull: true,
|
||||
formula: 'count(kql=\'message:"some message" AND message:"SUCCESS"\')',
|
||||
isFormulaBroken: false,
|
||||
},
|
||||
references: ['62f73507-09c4-4bf9-9e6f-a9692e348d94X0'],
|
||||
scale: 'ratio',
|
||||
// here's the issue - this should not be here
|
||||
sourceField: '___records___',
|
||||
},
|
||||
},
|
||||
incompleteColumns: {},
|
||||
},
|
||||
},
|
||||
} as unknown as FormBasedPrivateState;
|
||||
|
||||
expect(() => {
|
||||
getUnsupportedOperationsWarningMessage(
|
||||
state,
|
||||
createFramePublic(createMockedIndexPatternWithAdditionalFields([])),
|
||||
docLinks
|
||||
);
|
||||
}).not.toThrow();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -338,20 +338,24 @@ export function getUnsupportedOperationsWarningMessage(
|
|||
const columnsEntries = Object.entries(layer.columns);
|
||||
return columnsEntries
|
||||
.filter(([_, column]) => {
|
||||
if (!hasField(column)) {
|
||||
const operation = operationDefinitionMap[column.operationType] as Extract<
|
||||
GenericOperationDefinition,
|
||||
{ input: 'field' }
|
||||
>;
|
||||
|
||||
// this check for getPossibleOperationForField is needed as long as
|
||||
// https://github.com/elastic/kibana/issues/168561 is unresolved
|
||||
if (!operation.getPossibleOperationForField || !hasField(column)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const field = dataView.getFieldByName(column.sourceField);
|
||||
if (!field) {
|
||||
return false;
|
||||
}
|
||||
return (
|
||||
!(
|
||||
operationDefinitionMap[column.operationType] as Extract<
|
||||
GenericOperationDefinition,
|
||||
{ input: 'field' }
|
||||
>
|
||||
).getPossibleOperationForField(field) && field?.timeSeriesMetric === 'counter'
|
||||
!operation.getPossibleOperationForField?.(field) &&
|
||||
field?.timeSeriesMetric === 'counter'
|
||||
);
|
||||
})
|
||||
.map(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue