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] New value labels config option for bar charts #75426

Closed
wants to merge 12 commits into from

Conversation

dej611
Copy link
Contributor

@dej611 dej611 commented Aug 19, 2020

Summary

Based on the feedback received I've opened change the PR to enable various experiments on various directions with value labels:

  • The value label setting is now enable on both the dimension editor and the chart settings:

Screenshot 2020-08-21 at 19 14 30

Screenshot 2020-08-21 at 19 18 06

  • The setting work globally per chart, but its configuration is reachable in different ways.

  • It is possible to set the size of the font for the value labels and their positioning

    • the size input should be improved with a debounce
    • the positioning is offsetting the labels: there's an issue with the outside option and the longest bar

Screenshot 2020-08-21 at 19 14 16

  • The colors are currently hardcoded (white when inside and black when outside) but this should be improved hopefully with the contrasting PR in elastic-charts

  • The value label setting is now enable on all the types of bar charts (stacked, multi-series, multi-layers, and break down)

Screenshot 2020-08-21 at 19 14 46

Screenshot 2020-08-21 at 19 15 10

Screenshot 2020-08-21 at 19 18 20

Screenshot 2020-08-21 at 19 28 43

  • If the label does not fit in the bar it is automatically hidden from elastic-charts.

Note: there are definitely more options enabled now than what's needed, but I thought it may be worth exploring all of them.

Note 2: the Settings menu is going to be replaced and redesigned probably, so do not take it as final version.

Old content below

Show old version #### First iteration features now removed
  • Having the setting enabled per dimension can enable to have only a part of the chart with the labels
    • Not super clear to me when it's the case to have it. Maybe there's none.
Screenshot 2020-08-21 at 19 19 50

Original post

This PR introduce value labels for the horizontal bar charts in Lens.
Now horizontal bar chart expose a new setting to enable value labels on the bars:

Screenshot 2020-08-19 at 14 54 34 Screenshot 2020-08-19 at 15 06 48 Screenshot 2020-08-19 at 14 54 47

Here's a list of tasks to be completed before making this PR ready:

  • Fix the CSS alignment of the EUI switch component.
  • Decide when to activate the feature: horizontal bars only? Single series only? Limited number of bars?
    • should a debug set of options be enabled to test different scenarios?

Screenshot 2020-08-19 at 12 04 55

  • Make it possible to distinguish previews from current chart to avoid labels to show up
  • There's currently an issue as labels show up on previews as it's no possible to distinguish them from regular chart rendering - the legend based criteria may lead to issues

Screenshot 2020-08-19 at 14 57 03

Screenshot 2020-08-19 at 14 54 55

  • Improve labels readability: as for now the white color is hardcoded, but need to be discussed

  • Improve positioning of labels on the bar. It currently sits on the top right corner and its styling can be improved

  • Discuss about hiding criterias: alternative (overlapping) values? Show only values that fit in the bar? What about small bars?

    • Currently clipped values are hidden, together with values that do not fit the bar box. The alternate value criteria is disabled.
  • Possibly fix the value formatter issue for the isValueContainedInElement option

  • Revisit the i18n support labels

Ref issue: #69100

Checklist

@dej611 dej611 added Team:Visualizations Visualization editors, elastic-charts and infrastructure v8.0.0 Feature:Lens v7.9.1 labels Aug 19, 2020
@dej611 dej611 self-assigned this Aug 19, 2020
@dej611 dej611 changed the title New value labels config option for horizontal bar charts New value labels config option for bar charts Aug 19, 2020
@dej611 dej611 linked an issue Aug 19, 2020 that may be closed by this pull request
@mbondyra mbondyra changed the title New value labels config option for bar charts [Lens] New value labels config option for bar charts Aug 19, 2020
@dej611
Copy link
Contributor Author

dej611 commented Aug 20, 2020

@elasticmachine merge upstream

@AlonaNadler
Copy link

@dej611 @flash1293 why aren't we using Elastic chart? https://elastic.github.io/elastic-charts/?path=/story/bar-chart--with-value-label seems like the capability already exists and supports also stacked bars ?

I tried the pr twice, for some reason I don't see the feature
image

Copy link
Contributor

@wylieconlon wylieconlon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a really good start, and I'm glad you've started looking into improvements to the underlying elastic-charts implementation! I've left a lot of comments based on the implementations of "value labeling" that I've seen in other products, and if it's easier to go through them in a meeting we should.

The main changes that I was hoping for are:

  • Providing the best possible defaults so that labels always look good
  • Adding some additional styling options so that users have control
  • Moving the labeling option to a top-level chart setting instead of per-dimension
  • Keeping the form visible but disabled when the settings can't be used

x-pack/plugins/lens/public/xy_visualization/types.ts Outdated Show resolved Hide resolved
!chartHasMoreThanOneSeries &&
shouldRotate &&
yConfig &&
yConfig?.find(({ forAccessor }) => forAccessor === accessor)?.showValueLabels;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the "show value labels" option should not be set on any layer, but on the chart as a whole.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see both being valuable. @cchaos @AlonaNadler What do you think? Should "show values" be a dimension level, layer level or chart level setting? Or maybe offering multiple ways?

@wylieconlon
Copy link
Contributor

Since I don't think we've been working from a specific target, I think this might help. I'm expecting that with default settings for value labels, we'd get a visualization that looks like this:

Screen Shot 2020-08-20 at 4 58 45 PM

Screen Shot 2020-08-20 at 4 59 23 PM

There are a few parts of this that I want to call out specifically:

  • Fonts are large and aligned in a way that includes padding
  • The color looks high-contrast due to the 3px shadow
  • If the bars don't fit the text, no text is shown

@dej611
Copy link
Contributor Author

dej611 commented Aug 21, 2020

Integrated some of the feedback. thanks @wylieconlon and @AlonaNadler .
I've opened now the feature to be tested in various scenarios (as global chart setting or per dimension, stacked or break down, etc...).

Copy link
Contributor

@wylieconlon wylieconlon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like all of the other features in Lens, we are trying to provide the best defaults with the least configuration, and that sometimes means that we won't offer full functionality. With that in mind, here's my feedback about how this is offered in the product:

  • The "outside" labels don't work well in the current implementation because they are not rendered for the tallest bars. Unless this can be fixed inside elastic-charts, we should not offer this option.
  • I found it almost impossible to see the value labels when dealing with histogram charts- date histogram in particular. I would prefer disabling it when using histogram mode.
  • I originally thought that the multi-series charts would be hard to read, but they aren't as bad as I originally thought. This doesn't mean that the multi-series charts are easy to read, so maybe you should make a decision: is the risk of a bad chart rendering worth it for users?
  • I was expecting that when I turn value labeling on, it would be turned on for all series. Instead, this PR has an intermediate state where I can have value labels on one Y axis but not another. This looks weird, and you should make it a global on/off setting:

Screen Shot 2020-08-21 at 4 19 13 PM

@dej611
Copy link
Contributor Author

dej611 commented Aug 24, 2020

Thanks @wylieconlon for your feedback, I think that is very useful.

The "outside" labels don't work well in the current implementation because they are not rendered for the tallest bars. Unless this can be fixed inside elastic-charts, we should not offer this option.

That was a configuration glitch which can be partially solved.
The only issue I can see for the outside option is when used for horizontal bar charts, as it requires a dynamical computation of both the offset and chart margins proportional to the label box size.
Maybe we could turn this off for now and reopen the discussion about it later on when more features would be enabled? I've investigated the current blockers for the features and already raised some feat. requests on the elastic-charts repo.

I found it almost impossible to see the value labels when dealing with histogram charts- date histogram in particular. I would prefer disabling it when using histogram mode.

Yes, I agree with that. Histograms increase the complexity of the chart already, and if combined with other option I see no particular values of value labels in there.

I originally thought that the multi-series charts would be hard to read, but they aren't as bad as I originally thought. This doesn't mean that the multi-series charts are easy to read, so maybe you should make a decision: is the risk of a bad chart rendering worth it for users?

I may be leaning on the "yes" side here: enabling value labels is a precise action of the user already who can preview its result live.
I can see an issue for value labels when many bars are shown, for instance with too many multi-series, but I guess at that point the "label doesn't not fit the bar" check should kick in and disable them automatically.

I was expecting that when I turn value labeling on, it would be turned on for all series. Instead, this PR has an intermediate state where I can have value labels on one Y axis but not another. This looks weird, and you should make it a global on/off setting:

Yes, the co-existence of both dimension-local and global setting has no sense, I agree. I am leaning on the global setting too, but heard some feedback about local that maybe is worth discuss ( @AlonaNadler , @flash1293 ).
The current state was not meant to be the final state of it, rather give the power to explore both approaches.

@kibanamachine
Copy link
Contributor

kibanamachine commented Aug 24, 2020

💔 Build Failed

Failed CI Steps


Test Failures

Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/lens/dashboard·ts.lens app lens dashboard tests should be able to add filters/timerange by clicking in XYChart

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 1 times on tracked branches: https://dryrun

[00:00:00]       │
[00:14:44]         └-: lens app
[00:14:44]           └-> "before all" hook
[00:14:44]           └-> "before all" hook
[00:14:44]             │ debg Starting lens before method
[00:14:45]             │ info [logstash_functional] Loading "mappings.json"
[00:14:45]             │ info [logstash_functional] Loading "data.json.gz"
[00:14:45]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.22"
[00:14:45]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.20"
[00:14:45]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.21"
[00:14:46]             │ info [lens/basic] Loading "mappings.json"
[00:14:46]             │ info [lens/basic] Loading "data.json.gz"
[00:14:46]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_1/vn-dfSLuRz6iT_20U8hMHw] deleting index
[00:14:46]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/K1oE65_9QQK_3qXikJXtdQ] deleting index
[00:14:46]             │ info [lens/basic] Deleted existing index [".kibana_2",".kibana_1"]
[00:14:46]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_1] creating index, cause [api], templates [], shards [1]/[0]
[00:14:46]             │ info [lens/basic] Created index ".kibana_1"
[00:14:46]             │ debg [lens/basic] ".kibana_1" settings {"index":{"auto_expand_replicas":"0-1","number_of_replicas":"0","number_of_shards":"1"}}
[00:14:46]             │ info [lens/basic] Indexed 11 docs into ".kibana_1"
[00:14:46]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_1/-T7pIrpDSPW646uMp3BafQ] update_mapping [_doc]
[00:14:46]             │ debg Migrating saved objects
[00:14:46]             │ proc [kibana]   log   [16:55:46.784] [error][data][elasticsearch] [version_conflict_engine_exception]: [task:session_cleanup]: version conflict, document already exists (current version [4])
[00:14:46]             │ proc [kibana]   log   [16:55:46.804] [info][savedobjects-service] Creating index .kibana_2.
[00:14:46]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1]
[00:14:46]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] updating number_of_replicas to [0] for indices [.kibana_2]
[00:14:47]             │ proc [kibana]   log   [16:55:46.924] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:14:47]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/OnTRskO_TJ-zqrRLCnBBgA] update_mapping [_doc]
[00:14:47]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/OnTRskO_TJ-zqrRLCnBBgA] update_mapping [_doc]
[00:14:47]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/OnTRskO_TJ-zqrRLCnBBgA] update_mapping [_doc]
[00:14:47]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/OnTRskO_TJ-zqrRLCnBBgA] update_mapping [_doc]
[00:14:47]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/OnTRskO_TJ-zqrRLCnBBgA] update_mapping [_doc]
[00:14:47]             │ proc [kibana]   log   [16:55:47.265] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:14:47]             │ proc [kibana]   log   [16:55:47.351] [info][savedobjects-service] Finished in 548ms.
[00:14:47]           └-: 
[00:14:47]             └-> "before all" hook
[00:14:47]               │ proc [kibana]   log   [16:55:47.371] [error][data][elasticsearch] [version_conflict_engine_exception]: [task:session_cleanup]: version conflict, document already exists (current version [4])
[00:21:17]             └-: lens dashboard tests
[00:21:17]               └-> "before all" hook
[00:21:17]               └-> metric should be embeddable
[00:21:17]                 └-> "before each" hook: global before each
[00:21:17]                 │ debg navigating to dashboard url: http://localhost:6131/app/dashboards#/list
[00:21:17]                 │ debg navigate to: http://localhost:6131/app/dashboards#/list
[00:21:17]                 │ debg ... sleep(700) start
[00:21:17]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598288537125#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:21:17]                 │
[00:21:17]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:21:17]                 │ debg ... sleep(700) end
[00:21:17]                 │ debg returned from get, calling refresh
[00:21:19]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T17:02:18Z
[00:21:19]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:21:19]                 │
[00:21:19]                 │      "
[00:21:19]                 │ERROR browser[SEVERE] http://localhost:6131/35721/bundles/core/core.entry.js 83:272826 TypeError: Failed to fetch
[00:21:19]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598288537125#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:21:19]                 │
[00:21:19]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:21:19]                 │ debg currentUrl = http://localhost:6131/app/dashboards#/list
[00:21:19]                 │          appUrl = http://localhost:6131/app/dashboards#/list
[00:21:19]                 │ debg TestSubjects.find(kibanaChrome)
[00:21:19]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:21:21]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T17:02:20Z
[00:21:21]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:21:21]                 │
[00:21:21]                 │      "
[00:21:21]                 │ debg ... sleep(501) start
[00:21:21]                 │ debg ... sleep(501) end
[00:21:21]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:21:21]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:21:22]                 │ debg ... sleep(501) start
[00:21:22]                 │ debg ... sleep(501) end
[00:21:22]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:21:22]                 │ debg TestSubjects.exists(statusPageContainer)
[00:21:22]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:21:25]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:21:25]                 │ debg TestSubjects.exists(newItemButton)
[00:21:25]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:21:28]                 │ debg --- retry.tryForTime error: [data-test-subj="newItemButton"] is not displayed
[00:21:31]                 │ debg --- retry.tryForTime failed again with the same message...
[00:21:34]                 │ debg --- retry.tryForTime failed again with the same message...
[00:21:37]                 │ debg --- retry.tryForTime failed again with the same message...
[00:21:37]                 │ debg TestSubjects.click(createDashboardPromptButton)
[00:21:37]                 │ debg Find.clickByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:21:37]                 │ debg Find.findByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:21:37]                 │ debg waitForRenderComplete
[00:21:37]                 │ debg in getSharedItemsCount
[00:21:37]                 │ debg Find.findByCssSelector('[data-shared-items-count]') with timeout=10000
[00:21:38]                 │ debg Renderable.waitForRender for 0 elements
[00:21:38]                 │ debg Find.allByCssSelector('[data-render-complete="true"]') with timeout=10000
[00:21:48]                 │ debg Find.allByCssSelector('[data-loading]') with timeout=1000
[00:21:49]                 │ debg DashboardAddPanel.clickOpenAddPanel
[00:21:49]                 │ debg TestSubjects.click(dashboardAddPanelButton)
[00:21:49]                 │ debg Find.clickByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:21:49]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:21:49]                 │ debg ... sleep(500) start
[00:21:49]                 │ debg ... sleep(500) end
[00:21:49]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:21:50]                 │ debg TestSubjects.setValue(savedObjectFinderSearchInput, Artistpreviouslyknownaslens)
[00:21:50]                 │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:21:50]                 │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:21:50]                 │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:21:50]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:21:51]                 │ debg Find.clickByButtonText('Artistpreviouslyknownaslens') with timeout=10000
[00:21:51]                 │ debg Find.byButtonText('Artistpreviouslyknownaslens') with timeout=10000
[00:21:51]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:21:51]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:21:51]                 │ debg Closing flyout dashboardAddPanel
[00:21:51]                 │ debg TestSubjects.find(dashboardAddPanel)
[00:21:51]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=10000
[00:21:51]                 │ debg Waiting up to 20000ms for flyout closed...
[00:21:51]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:21:51]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:21:51]                 │ proc [kibana]   log   [17:02:51.772] [info][data][data][plugins] Get strategy es
[00:21:51]                 │ proc [kibana]   log   [17:02:51.773] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"2cd09808-3915-49f4-b3b0-82767eba23f7":{"max":{"field":"bytes"}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2020-08-24T16:47:51.746Z","lte":"2020-08-24T17:02:51.746Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598288540176,"timeout":"30000ms"}
[00:21:52]                 │ debg --- retry.tryForTime error: [data-test-subj="dashboardAddPanel"] is not displayed
[00:21:53]                 │ debg lensPage.goToTimeRange()
[00:21:53]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:21:53]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:21:55]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:21:56]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:21:56]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:21:56]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:21:56]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:21:56]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:21:56]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:21:56]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:21:56]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:21:56]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:21:56]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:21:56]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:21:56]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:21:56]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:56]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:56]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:56]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:21:56]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:56]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:57]                 │ debg ... sleep(500) start
[00:21:57]                 │ debg ... sleep(500) end
[00:21:57]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:21:57]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:21:57]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:21:58]                 │ debg Find.waitForElementStale with timeout=10000
[00:21:58]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:21:58]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:21:58]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:58]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:58]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:58]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:58]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:58]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:21:58]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:58]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:58]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:58]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:21:58]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:22:01]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:22:01]                 │ debg TestSubjects.click(querySubmitButton)
[00:22:01]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:01]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:02]                 │ debg Find.waitForElementStale with timeout=10000
[00:22:02]                 │ proc [kibana]   log   [17:03:01.940] [info][data][data][plugins] Get strategy es
[00:22:02]                 │ proc [kibana]   log   [17:03:01.941] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"2cd09808-3915-49f4-b3b0-82767eba23f7":{"max":{"field":"bytes"}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2015-09-19T06:31:44.000Z","lte":"2015-09-23T18:31:44.000Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598288540176,"timeout":"30000ms"}
[00:22:02]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:22:02]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:22:02]                 │ debg lensPage.assertMetric('Maximum of bytes', '19,986')
[00:22:02]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_title"]', 'Maximum of bytes')
[00:22:02]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_title"]', value => value === expectedText)
[00:22:02]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:22:02]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_title"]') with timeout=10000
[00:22:02]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_value"]', '19,986')
[00:22:02]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_value"]', value => value === expectedText)
[00:22:02]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:22:02]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_value"]') with timeout=10000
[00:22:02]                 └- ✓ pass  (45.1s) "lens app  lens dashboard tests metric should be embeddable"
[00:22:02]               └-> should be able to add filters/timerange by clicking in XYChart
[00:22:02]                 └-> "before each" hook: global before each
[00:22:02]                 │ debg navigating to dashboard url: http://localhost:6131/app/dashboards#/list
[00:22:02]                 │ debg navigate to: http://localhost:6131/app/dashboards#/list
[00:22:02]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598288582218#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:22:02]                 │
[00:22:02]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:22:02]                 │ debg ... sleep(700) start
[00:22:03]                 │ debg ... sleep(700) end
[00:22:03]                 │ debg returned from get, calling refresh
[00:22:04]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T17:03:03Z
[00:22:04]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:22:04]                 │
[00:22:04]                 │      "
[00:22:04]                 │ERROR browser[SEVERE] http://localhost:6131/35721/bundles/core/core.entry.js 83:272826 TypeError: Failed to fetch
[00:22:04]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598288582218#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:22:04]                 │
[00:22:04]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:22:04]                 │ debg currentUrl = http://localhost:6131/app/dashboards#/list
[00:22:04]                 │          appUrl = http://localhost:6131/app/dashboards#/list
[00:22:04]                 │ debg TestSubjects.find(kibanaChrome)
[00:22:04]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:22:06]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T17:03:05Z
[00:22:06]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:22:06]                 │
[00:22:06]                 │      "
[00:22:06]                 │ debg ... sleep(501) start
[00:22:06]                 │ debg ... sleep(501) end
[00:22:06]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:22:06]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:22:07]                 │ debg ... sleep(501) start
[00:22:07]                 │ debg ... sleep(501) end
[00:22:07]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:22:07]                 │ debg TestSubjects.exists(statusPageContainer)
[00:22:07]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:22:10]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:22:10]                 │ debg TestSubjects.exists(newItemButton)
[00:22:10]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:22:13]                 │ debg --- retry.tryForTime error: [data-test-subj="newItemButton"] is not displayed
[00:22:16]                 │ debg --- retry.tryForTime failed again with the same message...
[00:22:19]                 │ debg --- retry.tryForTime failed again with the same message...
[00:22:22]                 │ debg --- retry.tryForTime failed again with the same message...
[00:22:22]                 │ debg TestSubjects.click(createDashboardPromptButton)
[00:22:22]                 │ debg Find.clickByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:22:22]                 │ debg Find.findByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:22:23]                 │ debg waitForRenderComplete
[00:22:23]                 │ debg in getSharedItemsCount
[00:22:23]                 │ debg Find.findByCssSelector('[data-shared-items-count]') with timeout=10000
[00:22:23]                 │ debg Renderable.waitForRender for 0 elements
[00:22:23]                 │ debg Find.allByCssSelector('[data-render-complete="true"]') with timeout=10000
[00:22:33]                 │ debg Find.allByCssSelector('[data-loading]') with timeout=1000
[00:22:34]                 │ debg DashboardAddPanel.clickOpenAddPanel
[00:22:34]                 │ debg TestSubjects.click(dashboardAddPanelButton)
[00:22:34]                 │ debg Find.clickByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:22:34]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:22:34]                 │ debg ... sleep(500) start
[00:22:34]                 │ debg ... sleep(500) end
[00:22:34]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:22:35]                 │ debg TestSubjects.setValue(savedObjectFinderSearchInput, lnsXYvis)
[00:22:35]                 │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:22:35]                 │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:22:35]                 │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:22:35]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:22:36]                 │ debg Find.clickByButtonText('lnsXYvis') with timeout=10000
[00:22:36]                 │ debg Find.byButtonText('lnsXYvis') with timeout=10000
[00:22:36]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:22:36]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:22:36]                 │ debg Closing flyout dashboardAddPanel
[00:22:36]                 │ debg TestSubjects.find(dashboardAddPanel)
[00:22:36]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=10000
[00:22:36]                 │ debg Waiting up to 20000ms for flyout closed...
[00:22:36]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:22:36]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:22:37]                 │ proc [kibana]   log   [17:03:36.857] [info][data][data][plugins] Get strategy es
[00:22:37]                 │ proc [kibana]   log   [17:03:36.857] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"7a5d833b-ca6f-4e48-a924-d2a28d365dc3":{"terms":{"field":"ip","order":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":"desc"},"size":3},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}},"3cf18f28-3495-4d45-a55f-d97f88022099":{"date_histogram":{"field":"@timestamp","fixed_interval":"30s","time_zone":"Africa/Abidjan"},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}}}}}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2020-08-24T16:48:36.827Z","lte":"2020-08-24T17:03:36.827Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598288585203,"timeout":"30000ms"}
[00:22:38]                 │ debg --- retry.tryForTime error: [data-test-subj="dashboardAddPanel"] is not displayed
[00:22:38]                 │ debg lensPage.goToTimeRange()
[00:22:38]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:22:38]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:22:41]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:22:41]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:22:41]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:22:41]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:22:41]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:22:41]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:22:41]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:22:41]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:22:41]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:22:41]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:22:41]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:22:41]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:22:41]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:22:41]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:22:41]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:22:41]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:22:41]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:41]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:42]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:42]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:22:42]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:42]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg ... sleep(500) start
[00:22:43]                 │ debg ... sleep(500) end
[00:22:43]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:22:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:22:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:22:43]                 │ debg Find.waitForElementStale with timeout=10000
[00:22:43]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:22:43]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:22:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:43]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:43]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:22:43]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:44]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:22:44]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:22:46]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:22:47]                 │ debg TestSubjects.click(querySubmitButton)
[00:22:47]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:47]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:47]                 │ debg Find.waitForElementStale with timeout=10000
[00:22:47]                 │ proc [kibana]   log   [17:03:47.302] [info][data][data][plugins] Get strategy es
[00:22:47]                 │ proc [kibana]   log   [17:03:47.303] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"7a5d833b-ca6f-4e48-a924-d2a28d365dc3":{"terms":{"field":"ip","order":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":"desc"},"size":3},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}},"3cf18f28-3495-4d45-a55f-d97f88022099":{"date_histogram":{"field":"@timestamp","fixed_interval":"3h","time_zone":"Africa/Abidjan"},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}}}}}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2015-09-19T06:31:44.000Z","lte":"2015-09-23T18:31:44.000Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598288585203,"timeout":"30000ms"}
[00:22:47]                 │ERROR browser[SEVERE] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 421:77071 TypeError: Cannot read property 'fontSize' of undefined
[00:22:47]                 │          at XYChart (http://localhost:6131/35721/bundles/plugin/lens/lens.plugin.js:15:626298)
[00:22:47]                 │          at ca (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:59332)
[00:22:47]                 │          at Ya (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:67554)
[00:22:47]                 │          at Ua (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:67373)
[00:22:47]                 │          at xs (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:107870)
[00:22:47]                 │          at ml (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:90018)
[00:22:47]                 │          at hl (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:89943)
[00:22:47]                 │          at ol (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:87291)
[00:22:47]                 │          at http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:45733
[00:22:47]                 │          at t.unstable_runWithPriority (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:430:3462)
[00:22:47]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:22:47]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:22:47]                 │ debg Find.findByCssSelector('.echChart canvas:last-of-type') with timeout=10000
[00:22:57]                 │ info Taking screenshot "/dev/shm/workspace/parallel/3/kibana/x-pack/test/functional/screenshots/failure/lens app  lens dashboard tests should be able to add filters_timerange by clicking in XYChart.png"
[00:22:57]                 │ info Current URL is: http://localhost:6131/app/dashboards#/create?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272015-09-19T06:31:44.000Z%27,to:%272015-09-23T18:31:44.000Z%27))&_a=(description:%27%27,filters:!(),fullScreenMode:!f,options:(hidePanelTitles:!f,useMargins:!t),panels:!((embeddableConfig:(),gridData:(h:15,i:%2797c5ceb0-ce73-4801-80fc-ee88333d7cd4%27,w:24,x:0,y:0),id:%2776fc4200-cf44-11e9-b933-fd84270f3ac2%27,panelIndex:%2797c5ceb0-ce73-4801-80fc-ee88333d7cd4%27,type:lens,version:%278.0.0-SNAPSHOT%27)),query:(language:kuery,query:%27%27),timeRestore:!f,title:%27%27,viewMode:edit)
[00:22:57]                 │ info Saving page source to: /dev/shm/workspace/parallel/3/kibana/x-pack/test/functional/failure_debug/html/lens app  lens dashboard tests should be able to add filters_timerange by clicking in XYChart.html
[00:22:57]                 └- ✖ fail: lens app  lens dashboard tests should be able to add filters/timerange by clicking in XYChart
[00:22:57]                 │      TimeoutError: Waiting for element to be located By(css selector, .echChart canvas:last-of-type)
[00:22:57]                 │ Wait timed out after 10052ms
[00:22:57]                 │       at /dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/webdriver.js:842:17
[00:22:57]                 │       at process._tickCallback (internal/process/next_tick.js:68:7)
[00:22:57]                 │ 
[00:22:57]                 │ 

Stack Trace

{ TimeoutError: Waiting for element to be located By(css selector, .echChart canvas:last-of-type)
Wait timed out after 10052ms
    at /dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/webdriver.js:842:17
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'TimeoutError', remoteStacktrace: '' }

Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/lens/dashboard·ts.lens app lens dashboard tests should be able to add filters/timerange by clicking in XYChart

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has not failed recently on tracked branches

[00:00:00]       │
[00:14:41]         └-: lens app
[00:14:41]           └-> "before all" hook
[00:14:41]           └-> "before all" hook
[00:14:41]             │ debg Starting lens before method
[00:14:41]             │ info [logstash_functional] Loading "mappings.json"
[00:14:41]             │ info [logstash_functional] Loading "data.json.gz"
[00:14:41]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.22"
[00:14:41]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.20"
[00:14:41]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.21"
[00:14:43]             │ info [lens/basic] Loading "mappings.json"
[00:14:43]             │ info [lens/basic] Loading "data.json.gz"
[00:14:43]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/PE_DrlWLQjqCPd1S9Uak9g] deleting index
[00:14:43]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_1/AVN1z1r0T2uKNiIXh8xYBA] deleting index
[00:14:43]             │ info [lens/basic] Deleted existing index [".kibana_2",".kibana_1"]
[00:14:43]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_1] creating index, cause [api], templates [], shards [1]/[0]
[00:14:43]             │ info [lens/basic] Created index ".kibana_1"
[00:14:43]             │ debg [lens/basic] ".kibana_1" settings {"index":{"auto_expand_replicas":"0-1","number_of_replicas":"0","number_of_shards":"1"}}
[00:14:43]             │ info [lens/basic] Indexed 11 docs into ".kibana_1"
[00:14:43]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_1/dx3ZXvuUTUCeChvOnjT8QA] update_mapping [_doc]
[00:14:43]             │ debg Migrating saved objects
[00:14:43]             │ proc [kibana]   log   [16:30:27.251] [error][data][elasticsearch] [version_conflict_engine_exception]: [task:session_cleanup]: version conflict, document already exists (current version [4])
[00:14:43]             │ proc [kibana]   log   [16:30:27.274] [info][savedobjects-service] Creating index .kibana_2.
[00:14:43]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1]
[00:14:43]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] updating number_of_replicas to [0] for indices [.kibana_2]
[00:14:43]             │ proc [kibana]   log   [16:30:27.380] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:14:43]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/VWQ7ix5MQcaW9GkAmNMDjA] update_mapping [_doc]
[00:14:44]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/VWQ7ix5MQcaW9GkAmNMDjA] update_mapping [_doc]
[00:14:44]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/VWQ7ix5MQcaW9GkAmNMDjA] update_mapping [_doc]
[00:14:44]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/VWQ7ix5MQcaW9GkAmNMDjA] update_mapping [_doc]
[00:14:44]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-debian-tests-xxl-1598283628331555417] [.kibana_2/VWQ7ix5MQcaW9GkAmNMDjA] update_mapping [_doc]
[00:14:44]             │ proc [kibana]   log   [16:30:27.719] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:14:44]             │ proc [kibana]   log   [16:30:27.794] [info][savedobjects-service] Finished in 522ms.
[00:14:44]           └-: 
[00:14:44]             └-> "before all" hook
[00:14:44]               │ proc [kibana]   log   [16:30:27.809] [error][data][elasticsearch] [version_conflict_engine_exception]: [task:session_cleanup]: version conflict, document already exists (current version [4])
[00:21:17]             └-: lens dashboard tests
[00:21:17]               └-> "before all" hook
[00:21:17]               └-> metric should be embeddable
[00:21:17]                 └-> "before each" hook: global before each
[00:21:17]                 │ debg navigating to dashboard url: http://localhost:6131/app/dashboards#/list
[00:21:17]                 │ debg navigate to: http://localhost:6131/app/dashboards#/list
[00:21:17]                 │ debg ... sleep(700) start
[00:21:17]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598287020796#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:21:17]                 │
[00:21:17]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:21:18]                 │ debg ... sleep(700) end
[00:21:18]                 │ debg returned from get, calling refresh
[00:21:18]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598287020796#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:21:18]                 │
[00:21:18]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:21:18]                 │ debg currentUrl = http://localhost:6131/app/dashboards#/list
[00:21:18]                 │          appUrl = http://localhost:6131/app/dashboards#/list
[00:21:18]                 │ debg TestSubjects.find(kibanaChrome)
[00:21:18]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:21:19]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T16:37:02Z
[00:21:19]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:21:19]                 │
[00:21:19]                 │      "
[00:21:19]                 │ debg ... sleep(501) start
[00:21:20]                 │ debg ... sleep(501) end
[00:21:20]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:21:20]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:21:20]                 │ debg ... sleep(501) start
[00:21:21]                 │ debg ... sleep(501) end
[00:21:21]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:21:21]                 │ debg TestSubjects.exists(statusPageContainer)
[00:21:21]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:21:23]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:21:24]                 │ debg TestSubjects.exists(newItemButton)
[00:21:24]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:21:26]                 │ debg --- retry.tryForTime error: [data-test-subj="newItemButton"] is not displayed
[00:21:29]                 │ debg --- retry.tryForTime failed again with the same message...
[00:21:32]                 │ debg --- retry.tryForTime failed again with the same message...
[00:21:36]                 │ debg --- retry.tryForTime failed again with the same message...
[00:21:36]                 │ debg TestSubjects.click(createDashboardPromptButton)
[00:21:36]                 │ debg Find.clickByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:21:36]                 │ debg Find.findByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:21:36]                 │ debg waitForRenderComplete
[00:21:36]                 │ debg in getSharedItemsCount
[00:21:36]                 │ debg Find.findByCssSelector('[data-shared-items-count]') with timeout=10000
[00:21:36]                 │ debg Renderable.waitForRender for 0 elements
[00:21:36]                 │ debg Find.allByCssSelector('[data-render-complete="true"]') with timeout=10000
[00:21:46]                 │ debg Find.allByCssSelector('[data-loading]') with timeout=1000
[00:21:47]                 │ debg DashboardAddPanel.clickOpenAddPanel
[00:21:47]                 │ debg TestSubjects.click(dashboardAddPanelButton)
[00:21:47]                 │ debg Find.clickByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:21:47]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:21:48]                 │ debg ... sleep(500) start
[00:21:48]                 │ debg ... sleep(500) end
[00:21:48]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:21:49]                 │ debg TestSubjects.setValue(savedObjectFinderSearchInput, Artistpreviouslyknownaslens)
[00:21:49]                 │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:21:49]                 │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:21:49]                 │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:21:49]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:21:49]                 │ debg Find.clickByButtonText('Artistpreviouslyknownaslens') with timeout=10000
[00:21:49]                 │ debg Find.byButtonText('Artistpreviouslyknownaslens') with timeout=10000
[00:21:50]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:21:50]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:21:50]                 │ debg Closing flyout dashboardAddPanel
[00:21:50]                 │ debg TestSubjects.find(dashboardAddPanel)
[00:21:50]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=10000
[00:21:50]                 │ proc [kibana]   log   [16:37:34.177] [info][data][data][plugins] Get strategy es
[00:21:50]                 │ proc [kibana]   log   [16:37:34.177] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"2cd09808-3915-49f4-b3b0-82767eba23f7":{"max":{"field":"bytes"}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2020-08-24T16:22:34.151Z","lte":"2020-08-24T16:37:34.151Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598287022386,"timeout":"30000ms"}
[00:21:50]                 │ debg Waiting up to 20000ms for flyout closed...
[00:21:50]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:21:50]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:21:51]                 │ debg --- retry.tryForTime error: [data-test-subj="dashboardAddPanel"] is not displayed
[00:21:52]                 │ debg lensPage.goToTimeRange()
[00:21:52]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:21:52]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:21:54]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:21:55]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:21:55]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:21:55]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:21:55]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:21:55]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:21:55]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:21:55]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:21:55]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:21:55]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:21:55]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:21:55]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:21:55]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:21:55]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:21:55]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:21:55]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:21:55]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:55]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:55]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:55]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:55]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:55]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:21:55]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:55]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:55]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:56]                 │ debg ... sleep(500) start
[00:21:56]                 │ debg ... sleep(500) end
[00:21:56]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:21:56]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:21:56]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:21:56]                 │ debg Find.waitForElementStale with timeout=10000
[00:21:57]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:21:57]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:21:57]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:57]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:21:57]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:57]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:57]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:57]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:21:57]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:21:57]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:57]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:21:57]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:21:57]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:22:00]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:22:00]                 │ debg TestSubjects.click(querySubmitButton)
[00:22:00]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:00]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:01]                 │ debg Find.waitForElementStale with timeout=10000
[00:22:01]                 │ proc [kibana]   log   [16:37:44.502] [info][data][data][plugins] Get strategy es
[00:22:01]                 │ proc [kibana]   log   [16:37:44.502] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"2cd09808-3915-49f4-b3b0-82767eba23f7":{"max":{"field":"bytes"}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2015-09-19T06:31:44.000Z","lte":"2015-09-23T18:31:44.000Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598287022386,"timeout":"30000ms"}
[00:22:01]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:22:01]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:22:01]                 │ debg lensPage.assertMetric('Maximum of bytes', '19,986')
[00:22:01]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_title"]', 'Maximum of bytes')
[00:22:01]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_title"]', value => value === expectedText)
[00:22:01]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:22:01]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_title"]') with timeout=10000
[00:22:01]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_value"]', '19,986')
[00:22:01]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_value"]', value => value === expectedText)
[00:22:01]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:22:01]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_value"]') with timeout=10000
[00:22:01]                 └- ✓ pass  (44.0s) "lens app  lens dashboard tests metric should be embeddable"
[00:22:01]               └-> should be able to add filters/timerange by clicking in XYChart
[00:22:01]                 └-> "before each" hook: global before each
[00:22:01]                 │ debg navigating to dashboard url: http://localhost:6131/app/dashboards#/list
[00:22:01]                 │ debg navigate to: http://localhost:6131/app/dashboards#/list
[00:22:01]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598287064787#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:22:01]                 │
[00:22:01]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:22:01]                 │ debg ... sleep(700) start
[00:22:02]                 │ debg ... sleep(700) end
[00:22:02]                 │ debg returned from get, calling refresh
[00:22:03]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T16:37:46Z
[00:22:03]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:22:03]                 │
[00:22:03]                 │      "
[00:22:03]                 │ERROR browser[SEVERE] http://localhost:6131/35721/bundles/core/core.entry.js 83:272826 TypeError: Failed to fetch
[00:22:03]                 │ debg browser[INFO] http://localhost:6131/app/dashboards?_t=1598287064787#/list 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:22:03]                 │
[00:22:03]                 │ debg browser[INFO] http://localhost:6131/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:22:03]                 │ debg currentUrl = http://localhost:6131/app/dashboards#/list
[00:22:03]                 │          appUrl = http://localhost:6131/app/dashboards#/list
[00:22:03]                 │ debg TestSubjects.find(kibanaChrome)
[00:22:03]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:22:05]                 │ debg browser[INFO] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 452:106112 "INFO: 2020-08-24T16:37:47Z
[00:22:05]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:22:05]                 │
[00:22:05]                 │      "
[00:22:05]                 │ debg ... sleep(501) start
[00:22:05]                 │ debg ... sleep(501) end
[00:22:05]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:22:05]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:22:06]                 │ debg ... sleep(501) start
[00:22:06]                 │ debg ... sleep(501) end
[00:22:06]                 │ debg in navigateTo url = http://localhost:6131/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:22:06]                 │ debg TestSubjects.exists(statusPageContainer)
[00:22:06]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:22:09]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:22:09]                 │ debg TestSubjects.exists(newItemButton)
[00:22:09]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:22:12]                 │ debg --- retry.tryForTime error: [data-test-subj="newItemButton"] is not displayed
[00:22:15]                 │ debg --- retry.tryForTime failed again with the same message...
[00:22:18]                 │ debg --- retry.tryForTime failed again with the same message...
[00:22:21]                 │ debg --- retry.tryForTime failed again with the same message...
[00:22:21]                 │ debg TestSubjects.click(createDashboardPromptButton)
[00:22:21]                 │ debg Find.clickByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:22:21]                 │ debg Find.findByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:22:21]                 │ debg waitForRenderComplete
[00:22:21]                 │ debg in getSharedItemsCount
[00:22:21]                 │ debg Find.findByCssSelector('[data-shared-items-count]') with timeout=10000
[00:22:22]                 │ debg Renderable.waitForRender for 0 elements
[00:22:22]                 │ debg Find.allByCssSelector('[data-render-complete="true"]') with timeout=10000
[00:22:32]                 │ debg Find.allByCssSelector('[data-loading]') with timeout=1000
[00:22:33]                 │ debg DashboardAddPanel.clickOpenAddPanel
[00:22:33]                 │ debg TestSubjects.click(dashboardAddPanelButton)
[00:22:33]                 │ debg Find.clickByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:22:33]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:22:33]                 │ debg ... sleep(500) start
[00:22:33]                 │ debg ... sleep(500) end
[00:22:33]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:22:34]                 │ debg TestSubjects.setValue(savedObjectFinderSearchInput, lnsXYvis)
[00:22:34]                 │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:22:34]                 │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:22:34]                 │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:22:34]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:22:35]                 │ debg Find.clickByButtonText('lnsXYvis') with timeout=10000
[00:22:35]                 │ debg Find.byButtonText('lnsXYvis') with timeout=10000
[00:22:35]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:22:35]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:22:35]                 │ debg Closing flyout dashboardAddPanel
[00:22:35]                 │ debg TestSubjects.find(dashboardAddPanel)
[00:22:35]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=10000
[00:22:35]                 │ debg Waiting up to 20000ms for flyout closed...
[00:22:35]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:22:35]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:22:35]                 │ proc [kibana]   log   [16:38:19.336] [info][data][data][plugins] Get strategy es
[00:22:35]                 │ proc [kibana]   log   [16:38:19.337] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"7a5d833b-ca6f-4e48-a924-d2a28d365dc3":{"terms":{"field":"ip","order":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":"desc"},"size":3},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}},"3cf18f28-3495-4d45-a55f-d97f88022099":{"date_histogram":{"field":"@timestamp","fixed_interval":"30s","time_zone":"Africa/Abidjan"},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}}}}}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2020-08-24T16:23:19.309Z","lte":"2020-08-24T16:38:19.309Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598287067838,"timeout":"30000ms"}
[00:22:36]                 │ debg --- retry.tryForTime error: [data-test-subj="dashboardAddPanel"] is not displayed
[00:22:37]                 │ debg lensPage.goToTimeRange()
[00:22:37]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:22:37]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:22:39]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:22:40]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:22:40]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:22:40]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:22:40]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:22:40]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:22:40]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:22:40]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:22:40]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:22:40]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:22:40]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:22:40]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:22:40]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:22:40]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:22:40]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:22:40]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:22:40]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:40]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:40]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:40]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:40]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:41]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:22:41]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:41]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:41]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:41]                 │ debg ... sleep(500) start
[00:22:42]                 │ debg ... sleep(500) end
[00:22:42]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:22:42]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:22:42]                 │ debg Find.waitForElementStale with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:22:42]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:22:42]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:22:42]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:42]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:22:42]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:22:42]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:22:42]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:22:42]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:22:45]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:22:45]                 │ debg TestSubjects.click(querySubmitButton)
[00:22:45]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:45]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:22:46]                 │ debg Find.waitForElementStale with timeout=10000
[00:22:46]                 │ proc [kibana]   log   [16:38:29.610] [info][data][data][plugins] Get strategy es
[00:22:46]                 │ proc [kibana]   log   [16:38:29.610] [info][dataEnhanced][data_enhanced][plugins] search {"ignoreThrottled":true,"index":"logstash-*","body":{"aggs":{"7a5d833b-ca6f-4e48-a924-d2a28d365dc3":{"terms":{"field":"ip","order":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":"desc"},"size":3},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}},"3cf18f28-3495-4d45-a55f-d97f88022099":{"date_histogram":{"field":"@timestamp","fixed_interval":"3h","time_zone":"Africa/Abidjan"},"aggs":{"3dc0bd55-2087-4e60-aea2-f9910714f7db":{"avg":{"field":"bytes"}}}}}}},"size":0,"stored_fields":["*"],"script_fields":{},"docvalue_fields":[{"field":"@timestamp","format":"date_time"},{"field":"relatedContent.article:modified_time","format":"date_time"},{"field":"relatedContent.article:published_time","format":"date_time"},{"field":"utc_time","format":"date_time"}],"_source":{"excludes":[]},"query":{"bool":{"must":[],"filter":[{"match_all":{}},{"range":{"@timestamp":{"gte":"2015-09-19T06:31:44.000Z","lte":"2015-09-23T18:31:44.000Z","format":"strict_date_optional_time"}}}],"should":[],"must_not":[]}}},"rest_total_hits_as_int":true,"ignore_unavailable":true,"ignore_throttled":true,"preference":1598287067838,"timeout":"30000ms"}
[00:22:46]                 │ERROR browser[SEVERE] http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 421:77071 TypeError: Cannot read property 'fontSize' of undefined
[00:22:46]                 │          at XYChart (http://localhost:6131/35721/bundles/plugin/lens/lens.plugin.js:15:626298)
[00:22:46]                 │          at ca (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:59332)
[00:22:46]                 │          at Ya (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:67554)
[00:22:46]                 │          at Ua (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:67373)
[00:22:46]                 │          at xs (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:107870)
[00:22:46]                 │          at ml (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:90018)
[00:22:46]                 │          at hl (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:89943)
[00:22:46]                 │          at ol (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:87291)
[00:22:46]                 │          at http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:422:45733
[00:22:46]                 │          at t.unstable_runWithPriority (http://localhost:6131/35721/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:430:3462)
[00:22:46]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:22:46]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:22:46]                 │ debg Find.findByCssSelector('.echChart canvas:last-of-type') with timeout=10000
[00:22:56]                 │ info Taking screenshot "/dev/shm/workspace/parallel/3/kibana/x-pack/test/functional/screenshots/failure/lens app  lens dashboard tests should be able to add filters_timerange by clicking in XYChart.png"
[00:22:56]                 │ info Current URL is: http://localhost:6131/app/dashboards#/create?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272015-09-19T06:31:44.000Z%27,to:%272015-09-23T18:31:44.000Z%27))&_a=(description:%27%27,filters:!(),fullScreenMode:!f,options:(hidePanelTitles:!f,useMargins:!t),panels:!((embeddableConfig:(),gridData:(h:15,i:%27577c3c27-76ba-4dfb-b994-ae968240d8ab%27,w:24,x:0,y:0),id:%2776fc4200-cf44-11e9-b933-fd84270f3ac2%27,panelIndex:%27577c3c27-76ba-4dfb-b994-ae968240d8ab%27,type:lens,version:%278.0.0-SNAPSHOT%27)),query:(language:kuery,query:%27%27),timeRestore:!f,title:%27%27,viewMode:edit)
[00:22:56]                 │ info Saving page source to: /dev/shm/workspace/parallel/3/kibana/x-pack/test/functional/failure_debug/html/lens app  lens dashboard tests should be able to add filters_timerange by clicking in XYChart.html
[00:22:56]                 └- ✖ fail: lens app  lens dashboard tests should be able to add filters/timerange by clicking in XYChart
[00:22:56]                 │      TimeoutError: Waiting for element to be located By(css selector, .echChart canvas:last-of-type)
[00:22:56]                 │ Wait timed out after 10014ms
[00:22:56]                 │       at /dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/webdriver.js:842:17
[00:22:56]                 │       at process._tickCallback (internal/process/next_tick.js:68:7)
[00:22:56]                 │ 
[00:22:56]                 │ 

Stack Trace

{ TimeoutError: Waiting for element to be located By(css selector, .echChart canvas:last-of-type)
Wait timed out after 10014ms
    at /dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/webdriver.js:842:17
    at process._tickCallback (internal/process/next_tick.js:68:7) name: 'TimeoutError', remoteStacktrace: '' }

X-Pack Jest Tests.x-pack/plugins/lens/public/xy_visualization.xy_expression XYChart component it renders line

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has not failed recently on tracked branches


Stack Trace

TypeError: Cannot read property 'fontSize' of undefined
    at XYChart (/dev/shm/workspace/parallel/9/kibana/x-pack/plugins/lens/public/xy_visualization/xy_expression.tsx:330:47)
    at ReactShallowRenderer.render (/dev/shm/workspace/kibana/node_modules/react-test-renderer/cjs/react-test-renderer-shallow.development.js:858:32)
    at fn (/dev/shm/workspace/kibana/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:645:55)
    at withSetStateAllowed (/dev/shm/workspace/kibana/node_modules/enzyme-adapter-utils/src/Utils.js:99:18)
    at Object.render (/dev/shm/workspace/kibana/node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:645:20)
    at new ShallowWrapper (/dev/shm/workspace/kibana/node_modules/enzyme/src/ShallowWrapper.js:411:22)
    at shallow (/dev/shm/workspace/kibana/node_modules/enzyme/src/shallow.js:10:10)
    at Object.test (/dev/shm/workspace/parallel/9/kibana/x-pack/plugins/lens/public/xy_visualization/xy_expression.test.tsx:397:25)
    at Promise (/dev/shm/workspace/kibana/node_modules/jest-circus/build/utils.js:198:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/dev/shm/workspace/kibana/node_modules/jest-circus/build/utils.js:162:10)
    at _callCircusTest (/dev/shm/workspace/kibana/node_modules/jest-circus/build/run.js:205:40)
    at process._tickCallback (internal/process/next_tick.js:68:7)

and 52 more failures, only showing the first 3.

Build metrics

page load bundle size

id value diff baseline
lens 867.0KB +13.3KB 853.7KB

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@dej611
Copy link
Contributor Author

dej611 commented Aug 25, 2020

cc @AlonaNadler @cchaos

@AlonaNadler
Copy link

Hey Marco great job! 👏

Few comments:

  • the labels seem to be small, they are on the verge of hard to read especially in the context of the dashboard. I totally missed the chart setting that allows to increase the size of the labels. @cchaos advice

  • Why not have labels in time series chart?
    image

  • Minor labels don't persist when switching charts - from bars to horizontal bars

  • labels alignment seem to much to the top, it looks like they are trimmed
    image

  • works nice in stacked and unstacked, there are sometimes places where they overlap,
    image

  • right now if I have multiple y-axis and enable one of the series to show values, all series show value. My expectation was to only have that specific series show values

  • previews shows weird
    image

questions from slack:

the feature is enabled both on the dimension (Format & style tab) and the global Settings popover.

Im conflicted on that, I don't want the chart setting to become the long exhausting list of configurations. This setting makes sense, I wonder if the size and other configurations should exist also in the series. Personally I missed their existence

It currently works on multi-series, stacked vertical and horizontal bar charts.

its a good start, in the future we should add labels to area and line charts

It is disabled for histogram ("Over Time") scenarios.

See my comment above, why? :)

It is possible to manually tweak a bit the styling (for instance fontSize and position ) : there's some work on the elastic-charts side to have the labels position as in Visualize to match it.

you want to match to visualize for consistency or since you think it works better? if it's for consistency reasons - then its not important from my perspective.

@cchaos
Copy link
Contributor

cchaos commented Aug 25, 2020

I've update the styling options prototype to include a new item in the toolbar for "Values". Here's a static preview:

Screen Shot 2020-08-25 at 15 56 02 PM

I'm only concentrating on where the settings should live in the UI and not worrying about the Charts styling/handling of these values as I think most of that should be handled by the DataVis team.

Mainly you can think of all the styling options for value labels to be a global-level chart setting, but users should be able to change the visibility per configuration.

Some feedback for this PR:

  1. The global option should never be disabled while also showing the labels. I was able to get to this configuration but not sure how. Perhaps because I had them turned on then changed to a date histogram.
  2. If the configuration doesn't support value labels, remove the switch entirely from the config panel, and disable it in the global settings
  3. Previews should only every represent the type of chart and not worry about all the extra configurations (beside color). So I'd make sure that previews don't ever show the value labels
  4. I think that the font-size setting (B. on the mock) for value labels is not necessary. The main reason is that it will not allow the values to be dynamically sized based on the area available to them. Users tend to adjust font sizing base on how their chart currently renders. But this may not be how it renders in the future. For instance they may bump up the size to 30px while they're only seeing 3 bars. But when thrown in a dashboard for a different time range, those bars become 30 and now the 30px values are way too big. It's better for the chart render to determine the appropriate sizing. If we don't necessarily all agree on this fact, it's easier to add something later than take it away, so I would opt for removing this capability for now.

@wylieconlon
Copy link
Contributor

@cchaos I agree with you about the font size setting. We are working with the charts team to do dynamic font sizing, my PR is only a draft for now but it'll give you an idea of where this is going: elastic/elastic-charts#789

@AlonaNadler
Copy link

AlonaNadler commented Aug 27, 2020

Ideally:

  • value on bars, area, line
  • values support on stacked charts
  • values size-adjusted automatically
  • values color readable
  • configure a value for dimension or charts

Minimum

  • value on bars, area, line
  • values size-adjusted automatically or set manually (by Lens not the user)
  • occasionally values overlap or not in ideal colors
  • configure values in a chart overall

@wylieconlon
Copy link
Contributor

wylieconlon commented Aug 27, 2020

Dependencies:

Automatic font size elastic/elastic-charts#788
Value label color by background: elastic/elastic-charts#238
Positioning of labels: (PR open already)
Labels for line and area charts: elastic/elastic-charts#797

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Lens] values on chart
7 participants