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

[APM] Optimize services overview #69648

Merged
merged 12 commits into from
Jul 3, 2020

Conversation

dgieselaar
Copy link
Member

@dgieselaar dgieselaar commented Jun 22, 2020

(Keeping it in draft for now as I need #69384 to test on a specific cluster).

This decreases the loading time of the services overview by splitting up the requests to Elasticsearch.
On the cluster used for testing, time for /api/apm/services goes down from about ~55s to ~29s. I think that's worth the increase in complexity but open to other opinions of course.

A couple of changes here:

  • Instead of multiple aggregations in one request, split up aggregations into smaller requests. More requests = more parallelism, esp in situations where data is one one shard.
  • Querying processor events separately (ie, one for transactions, one for errors) means we can use track_total_hits rather than a terms aggregation which is more costly.

Tested by comparing data in master:

  • default state
  • changing environment
  • contextual filters
  • no data state
  • kuery bar

@dgieselaar dgieselaar added Team:APM All issues that need APM UI Team support release_note:skip Skip the PR/issue when compiling release notes v7.9.0 labels Jun 22, 2020
@dgieselaar dgieselaar changed the title Optimize services overview [APM] Optimize services overview Jun 22, 2020
bool: {
filter: projection.body.query.bool.filter.concat({
term: {
[PROCESSOR_EVENT]: 'transaction',
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
[PROCESSOR_EVENT]: 'transaction',
[PROCESSOR_EVENT]: ProcessorEvent.transaction,

@@ -19,72 +20,315 @@ import {
} from '../../helpers/setup_request';
import { getServicesProjection } from '../../../../common/projections/services';

const MAX_NUMBER_OF_SERVICES = 500;
Copy link
Contributor

Choose a reason for hiding this comment

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

Shouldn't we have a settings option instead of hardcoded?

Copy link
Member Author

Choose a reason for hiding this comment

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

@sqren thoughts here? We didn't have one before AFAIK.

Copy link
Member

@sorenlouv sorenlouv Jun 27, 2020

Choose a reason for hiding this comment

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

I think there are arguments for making it configurable but no-one ever asked for this and I'd rather not make it configurable if it's not needed so... let's leave it for now, and make it configurable if someone asks for it.

...projection.body.query.bool.filter,
{
terms: {
[PROCESSOR_EVENT]: ['metric', 'error', 'transaction'],
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
[PROCESSOR_EVENT]: ['metric', 'error', 'transaction'],
[PROCESSOR_EVENT]: [ProcessorEvent.metric, ProcessorEvent.error, ProcessorEvent.transaction],

Copy link
Member

Choose a reason for hiding this comment

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

I still think there is value in having a lightweight APM client.
In this case the PROCESSOR_EVENT would be added automatically based on the indicies.

query: {
bool: {
filter: [
...projection.body.query.bool.filter,
Copy link
Contributor

@cauemarcondes cauemarcondes Jun 23, 2020

Choose a reason for hiding this comment

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

In the getTransactionDurationAvg you used concat:

filter: projection.body.query.bool.filter.concat

and here you used spread syntax.

...projection.body.query.bool.filter,

I'm not against neither implementations, but maybe we could pick one so we have consistency?


return aggregations.services.buckets.map((bucket) => ({
name: bucket.key as string,
value: (bucket.agent_name.hits.hits[0]?._source as {
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure if it's possible, but can't we define the response type we expect when calling setup.client.search<T>? Then we could avoid this.

Copy link
Member Author

Choose a reason for hiding this comment

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

We can, but then we have to create a separate variable for params and use client.search<{ agent: { name: string } }, typeof params>. Which means we lose type checks and autocompletion when we create the request.

Copy link
Member Author

Choose a reason for hiding this comment

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

(As soon as you start defining generic arguments TS will no longer infer others, AFAIK).

...projection.body.query.bool.filter,
{
term: {
[PROCESSOR_EVENT]: 'transaction',
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
[PROCESSOR_EVENT]: 'transaction',
[PROCESSOR_EVENT]: ProcessorEvent.transaction,


const serviceBuckets = aggs?.services.buckets || [];
const deltaAsMinutes = (setup.end - setup.start) / 1000 / 60;
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe you could extract deltaAsMinutes to a function and use it on getTransactionRate too.


const projection = getServicesProjection({ setup });
const arrayUnionToCallable = <T extends any[]>(
Copy link
Contributor

Choose a reason for hiding this comment

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

I kind of don't get why it's needed.

Copy link
Member

Choose a reason for hiding this comment

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

A clarifying comment would help

};

const getAgentName = async ({ setup, projection }: AggregationParams) => {
const response = await setup.client.search(
Copy link
Member

Choose a reason for hiding this comment

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

WDYT about breaking moving each query into a separate file to improve readability?

Copy link
Member Author

Choose a reason for hiding this comment

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

Opted for all queries in one separate file. LMK what you think.


const getAgentName = async ({ setup, projection }: AggregationParams) => {
const response = await setup.client.search(
mergeProjection(projection, {
Copy link
Member

Choose a reason for hiding this comment

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

Are we able to get rid of the projections if we remove the counts? I think that would make all queries 10x more readable.

Copy link
Member Author

Choose a reason for hiding this comment

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

It would make it a little easier, as the contextual filters don't have to care about the aggregation needed to calculate a count. But there's a bunch of other stuff that a projection takes care of:

  • range filter on @timestamp
  • type-checking projection-specific parameters like service.name or transaction.type
  • querying the appropriate index

I think the lightweight APM client you are proposing is trying to solve at least some of these things. I think we should also take latency metrics into account which will complicate things a bit.

Copy link
Member

Choose a reason for hiding this comment

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

Projections creates an inversion of control which makes it very hard to see what's actually going on.

range filter on @timestamp

We already have a helper for this?

querying the appropriate index

We can make a helper for this, or like you say, we can use a lightweight client.

type-checking projection-specific parameters like service.name or transaction.type

Not sure about what this is but it would be great if we can avoid IOC.

{
terms: {
[PROCESSOR_EVENT]: ['transaction', 'error', 'metric'],
},
Copy link
Member

@sorenlouv sorenlouv Jun 24, 2020

Choose a reason for hiding this comment

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

Another note on the inversion-of-control problem introduced by projections:
PROCESSOR_EVENT should be aligned with the queried indices. In this case the indicies are specified in the projection. It is therefore possible for the indicies and processor event filter to go out of sync without us noticing.

@dgieselaar dgieselaar marked this pull request as ready for review June 27, 2020 15:11
@dgieselaar dgieselaar requested a review from a team as a code owner June 27, 2020 15:11
@elasticmachine
Copy link
Contributor

Pinging @elastic/apm-ui (Team:apm)

const totalTransactions = transactions?.doc_count || 0;
export async function getServicesItems(setup: ServicesItemsSetup) {
const params = {
projection: getServicesProjection({ setup, noEvents: true }),
Copy link
Member

Choose a reason for hiding this comment

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

What does noEvents mean? Is this to simulate a no-op?

Copy link
Member Author

Choose a reason for hiding this comment

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

not a no-op, but with noEvents: true it doesn't make a decision about what events should be queried. It's not great, but the alternatives (having to define indices + processor.event term filters in a lot of other places) are worse IMO. It made me think though, our client and our projections could support { apm: { events: ProcessorEvent[] } as a top-level prop, and prohibit the use of index. The client's search function would then unpack apm.events to an index and a terms query.

Copy link
Member

Choose a reason for hiding this comment

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

It made me think though, our client and our projections could support { apm: { events: ProcessorEvent[] } as a top-level prop, and prohibit the use of index. The client's search function would then unpack apm.events to an index and a terms query.

I think it's a good idea to prohibit the use of index and instead use apm.events to specify both the indicies to query and the processor.events to filter by.
This is similar to what I tried to suggest in #67397 - although I called it docTypes and was probably not super clear. I've renamed it to apmEvents now.

Copy link
Member Author

Choose a reason for hiding this comment

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

@sqren I think I understand the need better now 👍 and IMO a top-level prop lends itself better to composition than a second function argument.

Copy link
Member

Choose a reason for hiding this comment

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

In addition to the client idea, we should move away from the mega object setup has become and I'd like to move away from mergeProjections and the overuse of spreading: #70157

Copy link
Contributor

@cauemarcondes cauemarcondes left a comment

Choose a reason for hiding this comment

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

LGTM

getTransactionRate,
getErrorRate,
getEnvironments,
} from './get_metrics';
Copy link
Member

Choose a reason for hiding this comment

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

Unless this is related to the metric based ui or agent runtime metrics we should find another term.

Copy link
Member Author

Choose a reason for hiding this comment

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

Changed this to get_services_items_stats. Also pluralised the function names.

?.value ?? null,
environments:
environments.find((service) => service.name === serviceName)?.value ??
[],
Copy link
Member

Choose a reason for hiding this comment

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

This suddenly got a lot more complex. Any reason why transactionRate and the others are now arrays instead of scalar values?
Shouldn't transactionRate be a numeric value in the first place, and not an array?

Copy link
Member Author

Choose a reason for hiding this comment

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

Now using joinByKey to make this code easier to understand.

] = await Promise.all([
getTransactionDurationAvg(params),
getAgentName(params),
getTransactionRate(params),
Copy link
Member

Choose a reason for hiding this comment

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

Since we are retrieving more than one transaction rate

Suggested change
getTransactionRate(params),
getTransactionRates(params),

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

Comment on lines 69 to 71
transactionsPerMinute:
transactionRate.find((service) => service.name === serviceName)
?.value ?? 0,
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
transactionsPerMinute:
transactionRate.find((service) => service.name === serviceName)
?.value ?? 0,
transactionsPerMinute: transactionRates?.[serviceName] ?? 0,

Comment on lines 190 to 196
return arrayUnionToCallable(aggregations.services.buckets).map((bucket) => {
const transactionsPerMinute = bucket.doc_count / deltaAsMinutes;
return {
name: bucket.key as string,
value: transactionsPerMinute,
};
});
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
return arrayUnionToCallable(aggregations.services.buckets).map((bucket) => {
const transactionsPerMinute = bucket.doc_count / deltaAsMinutes;
return {
name: bucket.key as string,
value: transactionsPerMinute,
};
});
return arrayUnionToCallable(aggregations.services.buckets).reduce<
Record<string, number>
>((acc, bucket) => {
const transactionsPerMinute = bucket.doc_count / deltaAsMinutes;
const serviceName = bucket.key as string;
return { ...acc, [serviceName]: transactionsPerMinute };
}, {});

@sorenlouv
Copy link
Member

sorenlouv commented Jun 30, 2020

Have you talked to the ES team about this? The changes in this PR replaces simplicity and readability with performance. So we should make sure the performance gains are worth it.

@dgieselaar
Copy link
Member Author

@elasticmachine merge upstream

indices['apm_oss.errorIndices'],
indices['apm_oss.transactionIndices'],
],
}),
Copy link
Member

Choose a reason for hiding this comment

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

will this be changed by your PR for new client?

Copy link
Member Author

Choose a reason for hiding this comment

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

yep! there will no longer be a need for noEvents.

[...agentNames, ...transactionRates],
'serviceName'
);
*/
Copy link
Member

Choose a reason for hiding this comment

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

Thanks for the description and tests ❤️

U extends UnionToIntersection<T>,
V extends keyof T & keyof U
>(items: T[], key: V): JoinedReturnType<T, U, V> {
return items.reduce<JoinedReturnType<T, U, V>>((prev, current) => {
Copy link
Member

Choose a reason for hiding this comment

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

nit: I find it useful to distinguish between the accumulator and the items that are being iterated.

Suggested change
return items.reduce<JoinedReturnType<T, U, V>>((prev, current) => {
return items.reduce<JoinedReturnType<T, U, V>>((acc, item) => {

const response = await client.search(
mergeProjection(projection, {
size: 0,
index: indices['apm_oss.transactionIndices'],
Copy link
Member

Choose a reason for hiding this comment

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

A comment more on projections: In this case I don't know how to see that the projection won't override the index.

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe I'm misunderstanding - but this is a merge, so values are applied from left to right. ie, indices['apm_oss.transactionIndices'] will override whatever the projection has defined.

Copy link
Member

Choose a reason for hiding this comment

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

Okay, that makes good sense

aggs: {
services: {
terms: {
...projection.body.aggs.services.terms,
Copy link
Member

@sorenlouv sorenlouv Jul 2, 2020

Choose a reason for hiding this comment

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

Not related to this PR specifically but I want to invite you into my head and how I try to reason about the projections :)

I wonder what these terms are so I try to search for them. If I search for projection.body.aggs.services.terms, body.aggs.services.terms, aggs.services.terms or services.terms I don't get any useful results.

Then I search for projection and get a lot results:

So I give up searching for terms and instead go into manual mode and search for getTransactionDurationAverages which leads me to getServicesItems which is calling getServicesProjection where I eventually find:

I can now see that the terms I'm looking for are on line 46. Great! But I notice it's a ternary so I have to back up a bit and figure out how getServicesProjection is called. I now see that getServicesProjection is called with noEvents=true so the actual line I'm looking for is 42 : []. 🏅

It's definitely possible to find these things but it requires patience and focus and not super easy on Github (would have been easier in an editor).

Copy link
Member Author

Choose a reason for hiding this comment

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

Screen Recording 2020-07-02 at 15 57 40
😝

Copy link
Member

@sorenlouv sorenlouv Jul 2, 2020

Choose a reason for hiding this comment

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

Haha, nice. Wish I could do that on Github - for these things it'll be better to check out for sure.
And I now realise that the value I found was wrong (looking in the query instead of the agg 😳)

Copy link
Member Author

Choose a reason for hiding this comment

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

VSCode's github plugin might help btw, have you tried it?

Copy link
Member

Choose a reason for hiding this comment

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

I have - a while ago. I should try it again

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / kibana-xpack-agent / Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/lens/smokescreen·ts.lens app lens smokescreen tests should allow creation of lens visualizations

Link to Jenkins

Standard Out

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

[00:00:00]       │
[00:12:35]         └-: lens app
[00:12:35]           └-> "before all" hook
[00:12:35]           └-> "before all" hook
[00:12:35]             │ debg Starting lens before method
[00:12:35]             │ info [logstash_functional] Loading "mappings.json"
[00:12:35]             │ info [logstash_functional] Loading "data.json.gz"
[00:12:35]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.22"
[00:12:35]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.20"
[00:12:35]             │ info [logstash_functional] Skipped restore for existing index "logstash-2015.09.21"
[00:12:37]             │ info [lens/basic] Loading "mappings.json"
[00:12:37]             │ info [lens/basic] Loading "data.json.gz"
[00:12:37]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_1/jDHYvKTGQHiFCCRBVCFNiA] deleting index
[00:12:37]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2/NHAfBgnmSDqt5BihRrw4pw] deleting index
[00:12:37]             │ info [lens/basic] Deleted existing index [".kibana_2",".kibana_1"]
[00:12:37]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_1] creating index, cause [api], templates [], shards [1]/[0]
[00:12:37]             │ info [lens/basic] Created index ".kibana_1"
[00:12:37]             │ debg [lens/basic] ".kibana_1" settings {"index":{"auto_expand_replicas":"0-1","number_of_replicas":"0","number_of_shards":"1"}}
[00:12:37]             │ info [lens/basic] Indexed 10 docs into ".kibana_1"
[00:12:37]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_1/8Bu8Fx5fRrG1WbMnwMKSjw] update_mapping [_doc]
[00:12:37]             │ debg Migrating saved objects
[00:12:37]             │ proc [kibana]   log   [14:04:47.980] [info][savedobjects-service] Creating index .kibana_2.
[00:12:37]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1]
[00:12:37]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] updating number_of_replicas to [0] for indices [.kibana_2]
[00:12:37]             │ proc [kibana]   log   [14:04:48.054] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:12:37]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2/9SU14GYETHG-_ll6WNudIw] update_mapping [_doc]
[00:12:37]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2/9SU14GYETHG-_ll6WNudIw] update_mapping [_doc]
[00:12:37]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2/9SU14GYETHG-_ll6WNudIw] update_mapping [_doc]
[00:12:37]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2/9SU14GYETHG-_ll6WNudIw] update_mapping [_doc]
[00:12:37]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xl-1593696045680288692] [.kibana_2/9SU14GYETHG-_ll6WNudIw] update_mapping [_doc]
[00:12:37]             │ proc [kibana]   log   [14:04:48.307] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:12:37]             │ proc [kibana]   log   [14:04:48.361] [info][savedobjects-service] Finished in 383ms.
[00:12:37]           └-: 
[00:12:37]             └-> "before all" hook
[00:12:37]             └-: lens smokescreen tests
[00:12:37]               └-> "before all" hook
[00:12:37]               └-> should allow editing saved visualizations
[00:12:37]                 └-> "before each" hook: global before each
[00:12:37]                 │ debg navigating to visualize url: http://localhost:6151/app/visualize#/
[00:12:37]                 │ debg navigate to: http://localhost:6151/app/visualize#/
[00:12:37]                 │ debg browser[INFO] http://localhost:6151/login?next=%2Fapp%2Fvisualize%3F_t%3D1593698688394#/ 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:12:37]                 │
[00:12:37]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:12:37]                 │ debg ... sleep(700) start
[00:12:38]                 │ debg ... sleep(700) end
[00:12:38]                 │ debg returned from get, calling refresh
[00:12:39]                 │ debg browser[INFO] http://localhost:6151/login?next=%2Fapp%2Fvisualize%3F_t%3D1593698688394#/ 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:12:39]                 │
[00:12:39]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:12:39]                 │ debg currentUrl = http://localhost:6151/login?next=%2Fapp%2Fvisualize%3F_t%3D1593698688394#/
[00:12:39]                 │          appUrl = http://localhost:6151/app/visualize#/
[00:12:39]                 │ debg TestSubjects.find(kibanaChrome)
[00:12:39]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:12:39]                 │ debg Found login page
[00:12:39]                 │ debg TestSubjects.setValue(loginUsername, test_user)
[00:12:39]                 │ debg TestSubjects.click(loginUsername)
[00:12:39]                 │ debg Find.clickByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:12:39]                 │ debg Find.findByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:12:39]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:04:49Z
[00:12:39]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:12:39]                 │
[00:12:39]                 │      "
[00:12:40]                 │ debg TestSubjects.setValue(loginPassword, changeme)
[00:12:40]                 │ debg TestSubjects.click(loginPassword)
[00:12:40]                 │ debg Find.clickByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:12:40]                 │ debg Find.findByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:12:40]                 │ debg TestSubjects.click(loginSubmit)
[00:12:40]                 │ debg Find.clickByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:12:40]                 │ debg Find.findByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:12:40]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"] nav:not(.ng-hide)') with timeout=60000
[00:12:43]                 │ debg browser[INFO] http://localhost:6151/app/visualize?_t=1593698688394#/ 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:12:43]                 │
[00:12:43]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:12:43]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:04:53Z
[00:12:43]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:12:43]                 │
[00:12:43]                 │      "
[00:12:43]                 │ debg browser[INFO] http://localhost:6151/app/visualize?_t=1593698693544#/ 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:12:43]                 │
[00:12:43]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:12:43]                 │ debg Finished login process currentUrl = http://localhost:6151/app/visualize#/
[00:12:43]                 │ debg ... sleep(501) start
[00:12:43]                 │ debg ... sleep(501) end
[00:12:43]                 │ debg in navigateTo url = http://localhost:6151/app/visualize#/
[00:12:43]                 │ debg TestSubjects.exists(statusPageContainer)
[00:12:43]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:12:46]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:04:54Z
[00:12:46]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:12:46]                 │
[00:12:46]                 │      "
[00:12:46]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:12:46]                 │ debg searchForItemWithName: Artistpreviouslyknownaslens
[00:12:46]                 │ debg Find.allByCssSelector('.euiFieldSearch') with timeout=10000
[00:12:47]                 │ debg isGlobalLoadingIndicatorVisible
[00:12:47]                 │ debg TestSubjects.exists(globalLoadingIndicator)
[00:12:47]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:12:47]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:12:47]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:12:47]                 │ debg lensPage.clickVisualizeListItemTitle('Artistpreviouslyknownaslens')
[00:12:47]                 │ debg TestSubjects.click(visListingTitleLink-Artistpreviouslyknownaslens)
[00:12:47]                 │ debg Find.clickByCssSelector('[data-test-subj="visListingTitleLink-Artistpreviouslyknownaslens"]') with timeout=10000
[00:12:47]                 │ debg Find.findByCssSelector('[data-test-subj="visListingTitleLink-Artistpreviouslyknownaslens"]') with timeout=10000
[00:12:47]                 │ debg lensPage.goToTimeRange()
[00:12:47]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:12:47]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:12:48]                 │ debg TestSubjects.click(noDataPopoverDismissButton)
[00:12:48]                 │ debg Find.clickByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=10000
[00:12:48]                 │ debg Find.findByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=10000
[00:12:48]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:12:48]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:12:48]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:12:48]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:12:48]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:12:48]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:12:48]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:12:48]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:12:49]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:12:49]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:12:49]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:12:49]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:12:49]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:12:49]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:12:49]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:12:49]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:12:49]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:12:49]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:12:49]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:49]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:49]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:12:49]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:12:49]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:49]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:50]                 │ debg ... sleep(500) start
[00:12:50]                 │ debg ... sleep(500) end
[00:12:50]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:12:50]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:12:50]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:12:50]                 │ debg Find.waitForElementStale with timeout=10000
[00:12:51]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:12:51]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:12:51]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:12:51]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:12:51]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:12:51]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:51]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:51]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:12:51]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:12:51]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:51]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:12:51]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:12:51]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:12:54]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:12:54]                 │ debg TestSubjects.click(querySubmitButton)
[00:12:54]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:12:54]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:12:55]                 │ debg Find.waitForElementStale with timeout=10000
[00:12:55]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:12:55]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:12:55]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_title"]', 'Maximum of bytes')
[00:12:55]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_title"]', value => value === expectedText)
[00:12:55]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:12:55]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_title"]') with timeout=10000
[00:12:55]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_value"]', '19,986')
[00:12:55]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_value"]', value => value === expectedText)
[00:12:55]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:12:55]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_value"]') with timeout=10000
[00:12:55]                 └- ✓ pass  (18.0s) "lens app  lens smokescreen tests should allow editing saved visualizations"
[00:12:55]               └-> metric should be embeddable in dashboards
[00:12:55]                 └-> "before each" hook: global before each
[00:12:55]                 │ debg navigating to dashboard url: http://localhost:6151/app/dashboards#/list
[00:12:55]                 │ debg navigate to: http://localhost:6151/app/dashboards#/list
[00:12:55]                 │ debg ... sleep(700) start
[00:12:55]                 │ debg browser[INFO] http://localhost:6151/app/dashboards?_t=1593698706367#/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:12:55]                 │
[00:12:55]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:12:56]                 │ debg ... sleep(700) end
[00:12:56]                 │ debg returned from get, calling refresh
[00:12:57]                 │ debg browser[INFO] http://localhost:6151/app/dashboards?_t=1593698706367#/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:12:57]                 │
[00:12:57]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:12:57]                 │ debg currentUrl = http://localhost:6151/app/dashboards#/list
[00:12:57]                 │          appUrl = http://localhost:6151/app/dashboards#/list
[00:12:57]                 │ debg TestSubjects.find(kibanaChrome)
[00:12:57]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:12:57]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:05:07Z
[00:12:57]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:12:57]                 │
[00:12:57]                 │      "
[00:12:57]                 │ debg ... sleep(501) start
[00:12:58]                 │ debg ... sleep(501) end
[00:12:58]                 │ debg in navigateTo url = http://localhost:6151/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:12:58]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:12:58]                 │ debg ... sleep(501) start
[00:12:59]                 │ debg ... sleep(501) end
[00:12:59]                 │ debg in navigateTo url = http://localhost:6151/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:12:59]                 │ debg TestSubjects.exists(statusPageContainer)
[00:12:59]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:13:01]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:13:02]                 │ debg TestSubjects.exists(newItemButton)
[00:13:02]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=2500
[00:13:05]                 │ debg --- retry.tryForTime error: [data-test-subj="newItemButton"] is not displayed
[00:13:05]                 │ debg TestSubjects.click(createDashboardPromptButton)
[00:13:05]                 │ debg Find.clickByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:13:05]                 │ debg Find.findByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:13:05]                 │ debg waitForRenderComplete
[00:13:05]                 │ debg in getSharedItemsCount
[00:13:05]                 │ debg Find.findByCssSelector('[data-shared-items-count]') with timeout=10000
[00:13:05]                 │ debg Renderable.waitForRender for 0 elements
[00:13:05]                 │ debg Find.allByCssSelector('[data-render-complete="true"]') with timeout=10000
[00:13:15]                 │ debg Find.allByCssSelector('[data-loading]') with timeout=1000
[00:13:16]                 │ debg DashboardAddPanel.clickOpenAddPanel
[00:13:16]                 │ debg TestSubjects.click(dashboardAddPanelButton)
[00:13:16]                 │ debg Find.clickByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:13:16]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:13:16]                 │ debg ... sleep(500) start
[00:13:17]                 │ debg ... sleep(500) end
[00:13:17]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:13:17]                 │ debg TestSubjects.setValue(savedObjectFinderSearchInput, Artistpreviouslyknownaslens)
[00:13:17]                 │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:13:17]                 │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:13:17]                 │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:13:18]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:13:18]                 │ debg Find.clickByButtonText('Artistpreviouslyknownaslens') with timeout=10000
[00:13:18]                 │ debg Find.byButtonText('Artistpreviouslyknownaslens') with timeout=10000
[00:13:19]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:13:19]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:13:19]                 │ debg Closing flyout dashboardAddPanel
[00:13:19]                 │ debg TestSubjects.find(dashboardAddPanel)
[00:13:19]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=10000
[00:13:19]                 │ debg Waiting up to 20000ms for flyout closed...
[00:13:19]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:13:19]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:13:20]                 │ debg --- retry.tryForTime error: [data-test-subj="dashboardAddPanel"] is not displayed
[00:13:21]                 │ debg lensPage.goToTimeRange()
[00:13:21]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:13:21]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:13:23]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:13:24]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:13:24]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:13:24]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:13:24]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:13:24]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:13:24]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:13:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:13:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:13:24]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:13:24]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:13:24]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:13:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:13:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:13:24]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:13:24]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:13:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:13:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:13:24]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:13:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:24]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:13:24]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:13:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:25]                 │ debg ... sleep(500) start
[00:13:25]                 │ debg ... sleep(500) end
[00:13:25]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:13:25]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:13:25]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:13:26]                 │ debg Find.waitForElementStale with timeout=10000
[00:13:26]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:13:26]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:13:26]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:13:26]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:13:26]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:13:26]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:26]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:26]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:13:26]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:13:26]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:26]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:27]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:13:27]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:13:29]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:13:30]                 │ debg TestSubjects.click(querySubmitButton)
[00:13:30]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:13:30]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:13:30]                 │ debg Find.waitForElementStale with timeout=10000
[00:13:30]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:13:30]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:13:30]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_title"]', 'Maximum of bytes')
[00:13:30]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_title"]', value => value === expectedText)
[00:13:30]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:13:30]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_title"]') with timeout=10000
[00:13:30]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_value"]', '19,986')
[00:13:30]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_value"]', value => value === expectedText)
[00:13:30]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:13:30]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_value"]') with timeout=10000
[00:13:30]                 └- ✓ pass  (34.9s) "lens app  lens smokescreen tests metric should be embeddable in dashboards"
[00:13:30]               └-> click on the bar in XYChart adds proper filters/timerange in dashboard
[00:13:30]                 └-> "before each" hook: global before each
[00:13:30]                 │ debg navigating to dashboard url: http://localhost:6151/app/dashboards#/list
[00:13:30]                 │ debg navigate to: http://localhost:6151/app/dashboards#/list
[00:13:30]                 │ debg browser[INFO] http://localhost:6151/app/dashboards?_t=1593698741245#/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:13:30]                 │
[00:13:30]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:13:30]                 │ debg ... sleep(700) start
[00:13:31]                 │ debg ... sleep(700) end
[00:13:31]                 │ debg returned from get, calling refresh
[00:13:32]                 │ debg browser[INFO] http://localhost:6151/app/dashboards?_t=1593698741245#/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:13:32]                 │
[00:13:32]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:13:32]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:05:42Z
[00:13:32]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:13:32]                 │
[00:13:32]                 │      "
[00:13:32]                 │ debg currentUrl = http://localhost:6151/app/dashboards#/list
[00:13:32]                 │          appUrl = http://localhost:6151/app/dashboards#/list
[00:13:32]                 │ debg TestSubjects.find(kibanaChrome)
[00:13:32]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:13:33]                 │ debg ... sleep(501) start
[00:13:33]                 │ debg ... sleep(501) end
[00:13:33]                 │ debg in navigateTo url = http://localhost:6151/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:13:33]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:13:34]                 │ debg ... sleep(501) start
[00:13:34]                 │ debg ... sleep(501) end
[00:13:34]                 │ debg in navigateTo url = http://localhost:6151/app/dashboards#/list?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:13:34]                 │ debg TestSubjects.exists(statusPageContainer)
[00:13:34]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:13:37]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:13:37]                 │ debg TestSubjects.exists(newItemButton)
[00:13:37]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=2500
[00:13:40]                 │ debg --- retry.tryForTime error: [data-test-subj="newItemButton"] is not displayed
[00:13:40]                 │ debg TestSubjects.click(createDashboardPromptButton)
[00:13:40]                 │ debg Find.clickByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:13:40]                 │ debg Find.findByCssSelector('[data-test-subj="createDashboardPromptButton"]') with timeout=10000
[00:13:40]                 │ debg waitForRenderComplete
[00:13:40]                 │ debg in getSharedItemsCount
[00:13:40]                 │ debg Find.findByCssSelector('[data-shared-items-count]') with timeout=10000
[00:13:40]                 │ debg Renderable.waitForRender for 0 elements
[00:13:40]                 │ debg Find.allByCssSelector('[data-render-complete="true"]') with timeout=10000
[00:13:50]                 │ debg Find.allByCssSelector('[data-loading]') with timeout=1000
[00:13:51]                 │ debg DashboardAddPanel.clickOpenAddPanel
[00:13:51]                 │ debg TestSubjects.click(dashboardAddPanelButton)
[00:13:51]                 │ debg Find.clickByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:13:51]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanelButton"]') with timeout=10000
[00:13:52]                 │ debg ... sleep(500) start
[00:13:52]                 │ debg ... sleep(500) end
[00:13:52]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:13:53]                 │ debg TestSubjects.setValue(savedObjectFinderSearchInput, lnsXYvis)
[00:13:53]                 │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:13:53]                 │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:13:53]                 │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:13:53]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="savedObjectFinderLoadingIndicator"]') with timeout=10000
[00:13:53]                 │ debg Find.clickByButtonText('lnsXYvis') with timeout=10000
[00:13:53]                 │ debg Find.byButtonText('lnsXYvis') with timeout=10000
[00:13:54]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:13:54]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:13:54]                 │ debg Closing flyout dashboardAddPanel
[00:13:54]                 │ debg TestSubjects.find(dashboardAddPanel)
[00:13:54]                 │ debg Find.findByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=10000
[00:13:54]                 │ debg Waiting up to 20000ms for flyout closed...
[00:13:54]                 │ debg TestSubjects.exists(dashboardAddPanel)
[00:13:54]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="dashboardAddPanel"]') with timeout=1000
[00:13:55]                 │ debg --- retry.tryForTime error: [data-test-subj="dashboardAddPanel"] is not displayed
[00:13:56]                 │ debg lensPage.goToTimeRange()
[00:13:56]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:13:56]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:13:58]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:13:59]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:13:59]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:13:59]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:13:59]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:13:59]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:13:59]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:13:59]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:13:59]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:13:59]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:13:59]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:13:59]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:13:59]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:13:59]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:13:59]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:13:59]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:13:59]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:13:59]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:13:59]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:13:59]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:13:59]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:00]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:14:00]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:00]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:00]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:00]                 │ debg ... sleep(500) start
[00:14:01]                 │ debg ... sleep(500) end
[00:14:01]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:14:01]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:01]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:01]                 │ debg Find.waitForElementStale with timeout=10000
[00:14:01]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:14:01]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:14:01]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:01]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:01]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:01]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:01]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:01]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:14:01]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:01]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:01]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:02]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:14:02]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:14:04]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:14:05]                 │ debg TestSubjects.click(querySubmitButton)
[00:14:05]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:14:05]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:14:05]                 │ debg Find.waitForElementStale with timeout=10000
[00:14:05]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:14:05]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:14:05]                 │ debg Find.findByCssSelector('.echChart canvas:last-of-type') with timeout=10000
[00:14:06]                 │ debg TestSubjects.click(applyFiltersPopoverButton)
[00:14:06]                 │ debg Find.clickByCssSelector('[data-test-subj="applyFiltersPopoverButton"]') with timeout=10000
[00:14:06]                 │ debg Find.findByCssSelector('[data-test-subj="applyFiltersPopoverButton"]') with timeout=10000
[00:14:06]                 │ debg TestSubjects.missingOrFail(applyFiltersPopoverButton)
[00:14:06]                 │ debg Find.waitForDeletedByCssSelector('[data-test-subj="applyFiltersPopoverButton"]') with timeout=2500
[00:14:06]                 │ debg lensPage.assertExactText('[data-test-subj="embeddablePanelHeading-lnsXYvis"]', 'lnsXYvis')
[00:14:06]                 │ debg lensPage.assertExpectedText('[data-test-subj="embeddablePanelHeading-lnsXYvis"]', value => value === expectedText)
[00:14:06]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:06]                 │ debg Find.findByCssSelector('[data-test-subj="embeddablePanelHeading-lnsXYvis"]') with timeout=10000
[00:14:06]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:14:06]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:14:06]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:14:06]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:14:09]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerShowDatesButton"] is not displayed
[00:14:10]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:14:10]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:14:10]                 │ debg TestSubjects.getVisibleText(superDatePickerstartDatePopoverButton)
[00:14:10]                 │ debg TestSubjects.find(superDatePickerstartDatePopoverButton)
[00:14:10]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:10]                 │ debg TestSubjects.getVisibleText(superDatePickerendDatePopoverButton)
[00:14:10]                 │ debg TestSubjects.find(superDatePickerendDatePopoverButton)
[00:14:10]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:14:10]                 │ debg TestSubjects.exists(filter filter-enabled filter-key-ip filter-value-97.220.3.248 filter-unpinned)
[00:14:10]                 │ debg Find.existsByCssSelector('[data-test-subj="filter filter-enabled filter-key-ip filter-value-97.220.3.248 filter-unpinned"]') with timeout=2500
[00:14:10]                 └- ✓ pass  (39.4s) "lens app  lens smokescreen tests click on the bar in XYChart adds proper filters/timerange in dashboard"
[00:14:10]               └-> should allow seamless transition to and from table view
[00:14:10]                 └-> "before each" hook: global before each
[00:14:10]                 │ debg navigating to visualize url: http://localhost:6151/app/visualize#/
[00:14:10]                 │ debg navigate to: http://localhost:6151/app/visualize#/
[00:14:10]                 │ debg browser[INFO] http://localhost:6151/app/visualize?_t=1593698780654#/ 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:14:10]                 │
[00:14:10]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:14:10]                 │ debg ... sleep(700) start
[00:14:10]                 │ debg ... sleep(700) end
[00:14:10]                 │ debg returned from get, calling refresh
[00:14:11]                 │ debg browser[INFO] http://localhost:6151/app/visualize?_t=1593698780654#/ 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:14:11]                 │
[00:14:11]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:14:11]                 │ debg currentUrl = http://localhost:6151/app/visualize#/
[00:14:11]                 │          appUrl = http://localhost:6151/app/visualize#/
[00:14:11]                 │ debg TestSubjects.find(kibanaChrome)
[00:14:11]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:14:12]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:06:22Z
[00:14:12]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:14:12]                 │
[00:14:12]                 │      "
[00:14:12]                 │ debg ... sleep(501) start
[00:14:12]                 │ debg ... sleep(501) end
[00:14:12]                 │ debg in navigateTo url = http://localhost:6151/app/visualize#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:14:12]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:14:13]                 │ debg ... sleep(501) start
[00:14:13]                 │ debg ... sleep(501) end
[00:14:13]                 │ debg in navigateTo url = http://localhost:6151/app/visualize#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:14:13]                 │ debg TestSubjects.exists(statusPageContainer)
[00:14:13]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:14:16]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:14:16]                 │ debg searchForItemWithName: Artistpreviouslyknownaslens
[00:14:16]                 │ debg Find.allByCssSelector('.euiFieldSearch') with timeout=10000
[00:14:17]                 │ debg isGlobalLoadingIndicatorVisible
[00:14:17]                 │ debg TestSubjects.exists(globalLoadingIndicator)
[00:14:17]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:14:18]                 │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:14:20]                 │ debg --- retry.tryForTime failed again with the same message...
[00:14:20]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:14:20]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:14:20]                 │ debg lensPage.clickVisualizeListItemTitle('Artistpreviouslyknownaslens')
[00:14:20]                 │ debg TestSubjects.click(visListingTitleLink-Artistpreviouslyknownaslens)
[00:14:20]                 │ debg Find.clickByCssSelector('[data-test-subj="visListingTitleLink-Artistpreviouslyknownaslens"]') with timeout=10000
[00:14:20]                 │ debg Find.findByCssSelector('[data-test-subj="visListingTitleLink-Artistpreviouslyknownaslens"]') with timeout=10000
[00:14:20]                 │ debg lensPage.goToTimeRange()
[00:14:20]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:14:20]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:14:23]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:14:23]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:14:23]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:14:23]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:14:23]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:14:23]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:14:23]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:14:23]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:14:23]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:14:24]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:14:24]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:14:24]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:14:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:14:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:14:24]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:14:24]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:14:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:24]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:24]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:14:24]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:24]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:24]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:25]                 │ debg ... sleep(500) start
[00:14:25]                 │ debg ... sleep(500) end
[00:14:25]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:14:25]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:25]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:25]                 │ debg Find.waitForElementStale with timeout=10000
[00:14:25]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:14:25]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:14:25]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:25]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:26]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:26]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:26]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:26]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:14:26]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:26]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:26]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:26]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:14:26]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:14:29]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:14:29]                 │ debg TestSubjects.click(querySubmitButton)
[00:14:29]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:14:29]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:14:30]                 │ debg Find.waitForElementStale with timeout=10000
[00:14:30]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:14:30]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:14:30]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_title"]', 'Maximum of bytes')
[00:14:30]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_title"]', value => value === expectedText)
[00:14:30]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:30]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_title"]') with timeout=10000
[00:14:30]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_value"]', '19,986')
[00:14:30]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_value"]', value => value === expectedText)
[00:14:30]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:30]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_value"]') with timeout=10000
[00:14:30]                 │ debg lensPage.switchToVisualization('lnsChartSwitchPopover_lnsDatatable')
[00:14:30]                 │ debg TestSubjects.click(lnsChartSwitchPopover)
[00:14:30]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:14:30]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:14:30]                 │ debg TestSubjects.click(lnsChartSwitchPopover_lnsDatatable)
[00:14:30]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover_lnsDatatable"]') with timeout=10000
[00:14:30]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover_lnsDatatable"]') with timeout=10000
[00:14:31]                 │ debg lensPage.assertExactText('[data-test-subj="lnsDataTable"] thead .euiTableCellContent__text', 'Maximum of bytes')
[00:14:31]                 │ debg lensPage.assertExpectedText('[data-test-subj="lnsDataTable"] thead .euiTableCellContent__text', value => value === expectedText)
[00:14:31]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:31]                 │ debg Find.findByCssSelector('[data-test-subj="lnsDataTable"] thead .euiTableCellContent__text') with timeout=10000
[00:14:31]                 │ debg lensPage.assertExactText('[data-test-subj="lnsDataTable"] [data-test-subj="lnsDataTableCellValue"]', '19,986')
[00:14:31]                 │ debg lensPage.assertExpectedText('[data-test-subj="lnsDataTable"] [data-test-subj="lnsDataTableCellValue"]', value => value === expectedText)
[00:14:31]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:31]                 │ debg Find.findByCssSelector('[data-test-subj="lnsDataTable"] [data-test-subj="lnsDataTableCellValue"]') with timeout=10000
[00:14:31]                 │ debg lensPage.switchToVisualization('lnsChartSwitchPopover_lnsMetric')
[00:14:31]                 │ debg TestSubjects.click(lnsChartSwitchPopover)
[00:14:31]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:14:31]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:14:31]                 │ debg TestSubjects.click(lnsChartSwitchPopover_lnsMetric)
[00:14:31]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover_lnsMetric"]') with timeout=10000
[00:14:31]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover_lnsMetric"]') with timeout=10000
[00:14:32]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_title"]', 'Maximum of bytes')
[00:14:32]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_title"]', value => value === expectedText)
[00:14:32]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:32]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_title"]') with timeout=10000
[00:14:32]                 │ debg lensPage.assertExactText('[data-test-subj="lns_metric_value"]', '19,986')
[00:14:32]                 │ debg lensPage.assertExpectedText('[data-test-subj="lns_metric_value"]', value => value === expectedText)
[00:14:32]                 │ debg Waiting up to 1000ms for assertExpectedText...
[00:14:32]                 │ debg Find.findByCssSelector('[data-test-subj="lns_metric_value"]') with timeout=10000
[00:14:32]                 └- ✓ pass  (22.4s) "lens app  lens smokescreen tests should allow seamless transition to and from table view"
[00:14:32]               └-> should allow creation of lens visualizations
[00:14:32]                 └-> "before each" hook: global before each
[00:14:32]                 │ debg navigating to visualize url: http://localhost:6151/app/visualize#/
[00:14:32]                 │ debg navigate to: http://localhost:6151/app/visualize#/
[00:14:32]                 │ debg ... sleep(700) start
[00:14:32]                 │ debg browser[INFO] http://localhost:6151/app/visualize?_t=1593698803090#/ 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:14:32]                 │
[00:14:32]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:14:33]                 │ debg ... sleep(700) end
[00:14:33]                 │ debg returned from get, calling refresh
[00:14:34]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:06:44Z
[00:14:34]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:14:34]                 │
[00:14:34]                 │      "
[00:14:34]                 │ERROR browser[SEVERE] http://localhost:6151/34277/bundles/core/core.entry.js 75:261771 TypeError: Failed to fetch
[00:14:34]                 │          at Fetch._callee3$ (http://localhost:6151/34277/bundles/core/core.entry.js:26:104500)
[00:14:34]                 │          at l (http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:360:1005349)
[00:14:34]                 │          at Generator._invoke (http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:360:1005102)
[00:14:34]                 │          at Generator.forEach.e.<computed> [as throw] (http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:360:1005706)
[00:14:34]                 │          at fetch_asyncGeneratorStep (http://localhost:6151/34277/bundles/core/core.entry.js:26:98881)
[00:14:34]                 │          at _throw (http://localhost:6151/34277/bundles/core/core.entry.js:26:99289)
[00:14:34]                 │ debg browser[INFO] http://localhost:6151/app/visualize?_t=1593698803090#/ 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:14:34]                 │
[00:14:34]                 │ debg browser[INFO] http://localhost:6151/bundles/app/core/bootstrap.js 43:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:14:35]                 │ debg browser[INFO] http://localhost:6151/34277/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js 444:106112 "INFO: 2020-07-02T14:06:45Z
[00:14:35]                 │        Adding connection to http://localhost:6151/elasticsearch
[00:14:35]                 │
[00:14:35]                 │      "
[00:14:35]                 │ debg currentUrl = http://localhost:6151/app/visualize#/
[00:14:35]                 │          appUrl = http://localhost:6151/app/visualize#/
[00:14:35]                 │ debg TestSubjects.find(kibanaChrome)
[00:14:35]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:14:35]                 │ debg ... sleep(501) start
[00:14:35]                 │ debg ... sleep(501) end
[00:14:35]                 │ debg in navigateTo url = http://localhost:6151/app/visualize#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:14:35]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:14:36]                 │ debg ... sleep(501) start
[00:14:36]                 │ debg ... sleep(501) end
[00:14:36]                 │ debg in navigateTo url = http://localhost:6151/app/visualize#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:14:36]                 │ debg TestSubjects.exists(statusPageContainer)
[00:14:36]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:14:39]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:14:39]                 │ debg TestSubjects.exists(newItemButton)
[00:14:39]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=2500
[00:14:39]                 │ debg TestSubjects.click(newItemButton)
[00:14:39]                 │ debg Find.clickByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:14:39]                 │ debg Find.findByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:14:40]                 │ debg TestSubjects.find(visNewDialogTypes)
[00:14:40]                 │ debg Find.findByCssSelector('[data-test-subj="visNewDialogTypes"]') with timeout=10000
[00:14:40]                 │ debg TestSubjects.click(visType-lens)
[00:14:40]                 │ debg Find.clickByCssSelector('[data-test-subj="visType-lens"]') with timeout=10000
[00:14:40]                 │ debg Find.findByCssSelector('[data-test-subj="visType-lens"]') with timeout=10000
[00:14:40]                 │ debg isGlobalLoadingIndicatorVisible
[00:14:40]                 │ debg TestSubjects.exists(globalLoadingIndicator)
[00:14:40]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:14:40]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:14:40]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:14:40]                 │ debg lensPage.goToTimeRange()
[00:14:40]                 │ debg TestSubjects.exists(noDataPopoverDismissButton)
[00:14:40]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="noDataPopoverDismissButton"]') with timeout=2500
[00:14:43]                 │ debg --- retry.tryForTime error: [data-test-subj="noDataPopoverDismissButton"] is not displayed
[00:14:43]                 │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:14:43]                 │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:14:43]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:14:43]                 │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:14:43]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:14:43]                 │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:14:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:14:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:14:43]                 │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:14:43]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:14:43]                 │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:14:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:14:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:14:43]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:14:43]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:14:43]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:43]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:44]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:44]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:44]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:44]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:14:44]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:44]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:44]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:44]                 │ debg ... sleep(500) start
[00:14:45]                 │ debg ... sleep(500) end
[00:14:45]                 │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:14:45]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:45]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:14:45]                 │ debg Find.waitForElementStale with timeout=10000
[00:14:45]                 │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:14:45]                 │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:14:45]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:45]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:14:45]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:45]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:45]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:46]                 │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:14:46]                 │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:14:46]                 │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:46]                 │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:14:46]                 │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:14:46]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:14:49]                 │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:14:49]                 │ debg TestSubjects.click(querySubmitButton)
[00:14:49]                 │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:14:49]                 │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:14:49]                 │ debg Find.waitForElementStale with timeout=10000
[00:14:50]                 │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:14:50]                 │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:14:50]                 │ debg lensPage.configureDimension([object Object])
[00:14:50]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsXY_xDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:14:50]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_xDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:14:50]                 │ debg Find.clickByCssSelector('[data-test-subj="lns-indexPatternDimensionIncompatible-date_histogram"],
[00:14:50]                 │                [data-test-subj="lns-indexPatternDimension-date_histogram"]') with timeout=10000
[00:14:50]                 │ debg Find.findByCssSelector('[data-test-subj="lns-indexPatternDimensionIncompatible-date_histogram"],
[00:14:50]                 │                [data-test-subj="lns-indexPatternDimension-date_histogram"]') with timeout=10000
[00:14:50]                 │ debg TestSubjects.find(indexPattern-dimension-field)
[00:14:50]                 │ debg Find.findByCssSelector('[data-test-subj="indexPattern-dimension-field"]') with timeout=10000
[00:14:50]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:14:50]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:14:53]                 │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:14:53]                 │ debg comboBox.setElement, value: @timestamp
[00:14:53]                 │ debg comboBox.isOptionSelected, value: @timestamp
[00:14:56]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:14:56]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:14:56]                 │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="@timestamp"]') with timeout=2500
[00:14:56]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:14:56]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:14:58]                 │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:14:59]                 │ debg lensPage.configureDimension([object Object])
[00:14:59]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsXY_yDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:14:59]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_yDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:14:59]                 │ debg Find.clickByCssSelector('[data-test-subj="lns-indexPatternDimensionIncompatible-avg"],
[00:14:59]                 │                [data-test-subj="lns-indexPatternDimension-avg"]') with timeout=10000
[00:14:59]                 │ debg Find.findByCssSelector('[data-test-subj="lns-indexPatternDimensionIncompatible-avg"],
[00:14:59]                 │                [data-test-subj="lns-indexPatternDimension-avg"]') with timeout=10000
[00:14:59]                 │ debg TestSubjects.find(indexPattern-dimension-field)
[00:14:59]                 │ debg Find.findByCssSelector('[data-test-subj="indexPattern-dimension-field"]') with timeout=10000
[00:14:59]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:14:59]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:15:02]                 │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:15:02]                 │ warn WebElementWrapper.find: stale element reference: element is not attached to the page document
[00:15:02]                 │        (Session info: headless chrome=83.0.4103.116)
[00:15:02]                 │ debg finding element 'By(css selector, [data-test-subj="indexPattern-dimension-field"])' again, 2 attempts left
[00:15:03]                 │ debg comboBox.setElement, value: bytes
[00:15:03]                 │ debg comboBox.isOptionSelected, value: bytes
[00:15:05]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:15:05]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:15:05]                 │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="bytes"]') with timeout=2500
[00:15:05]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:15:05]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:15:08]                 │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:15:08]                 │ debg lensPage.configureDimension([object Object])
[00:15:08]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:15:08]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:15:08]                 │ debg Find.clickByCssSelector('[data-test-subj="lns-indexPatternDimensionIncompatible-terms"],
[00:15:08]                 │                [data-test-subj="lns-indexPatternDimension-terms"]') with timeout=10000
[00:15:08]                 │ debg Find.findByCssSelector('[data-test-subj="lns-indexPatternDimensionIncompatible-terms"],
[00:15:08]                 │                [data-test-subj="lns-indexPatternDimension-terms"]') with timeout=10000
[00:15:08]                 │ debg TestSubjects.find(indexPattern-dimension-field)
[00:15:08]                 │ debg Find.findByCssSelector('[data-test-subj="indexPattern-dimension-field"]') with timeout=10000
[00:15:08]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:15:08]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:15:11]                 │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:15:12]                 │ warn WebElementWrapper.find: stale element reference: element is not attached to the page document
[00:15:12]                 │        (Session info: headless chrome=83.0.4103.116)
[00:15:12]                 │ debg finding element 'By(css selector, [data-test-subj="indexPattern-dimension-field"])' again, 2 attempts left
[00:15:12]                 │ debg comboBox.setElement, value: @message.raw
[00:15:12]                 │ debg comboBox.isOptionSelected, value: @message.raw
[00:15:14]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:15:14]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:15:14]                 │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="@message.raw"]') with timeout=2500
[00:15:15]                 │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:15:15]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:15:17]                 │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:15:18]                 │ debg lensPage.switchToVisualization('lnsChartSwitchPopover_lnsDatatable')
[00:15:18]                 │ debg TestSubjects.click(lnsChartSwitchPopover)
[00:15:18]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:15:18]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:15:18]                 │ debg TestSubjects.click(lnsChartSwitchPopover_lnsDatatable)
[00:15:18]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover_lnsDatatable"]') with timeout=10000
[00:15:18]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover_lnsDatatable"]') with timeout=10000
[00:15:18]                 │ debg lensPage.removeDimension('lnsDatatable_column')
[00:15:18]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsDatatable_column"] [data-test-subj="indexPattern-dimensionPopover-remove"]') with timeout=10000
[00:15:18]                 │ debg Find.findByCssSelector('[data-test-subj="lnsDatatable_column"] [data-test-subj="indexPattern-dimensionPopover-remove"]') with timeout=10000
[00:15:18]                 │ debg lensPage.switchToVisualization('lnsChartSwitchPopover_bar_stacked')
[00:15:18]                 │ debg TestSubjects.click(lnsChartSwitchPopover)
[00:15:18]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:15:18]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover"]') with timeout=10000
[00:15:19]                 │ debg TestSubjects.click(lnsChartSwitchPopover_bar_stacked)
[00:15:19]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsChartSwitchPopover_bar_stacked"]') with timeout=10000
[00:15:19]                 │ debg Find.findByCssSelector('[data-test-subj="lnsChartSwitchPopover_bar_stacked"]') with timeout=10000
[00:15:19]                 │ debg lensPage.configureDimension([object Object])
[00:15:19]                 │ debg Find.clickByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:15:19]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:15:29]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:15:29]                 │      Wait timed out after 10007ms
[00:15:29]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:15:39]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:15:39]                 │      Wait timed out after 10022ms
[00:15:40]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:15:50]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:15:50]                 │      Wait timed out after 10005ms
[00:15:50]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:16:00]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:16:00]                 │      Wait timed out after 10026ms
[00:16:01]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:16:11]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:16:11]                 │      Wait timed out after 10013ms
[00:16:11]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:16:21]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:16:21]                 │      Wait timed out after 10026ms
[00:16:22]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:16:32]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:16:32]                 │      Wait timed out after 10018ms
[00:16:32]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:16:42]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:16:42]                 │      Wait timed out after 10026ms
[00:16:43]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:16:53]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:16:53]                 │      Wait timed out after 10037ms
[00:16:54]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:17:04]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:17:04]                 │      Wait timed out after 10016ms
[00:17:04]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:17:14]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:17:14]                 │      Wait timed out after 10035ms
[00:17:15]                 │ debg Find.findByCssSelector('[data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"]') with timeout=10000
[00:17:25]                 │ debg --- retry.try error: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
[00:17:25]                 │      Wait timed out after 10029ms
[00:17:25]                 │ info Taking screenshot "/dev/shm/workspace/kibana/x-pack/test/functional/screenshots/failure/lens app  lens smokescreen tests should allow creation of lens visualizations.png"
[00:17:25]                 │ info Current URL is: http://localhost:6151/app/lens#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272015-09-19T06:31:44.000Z%27,to:%272015-09-23T18:31:44.000Z%27))
[00:17:25]                 │ info Saving page source to: /dev/shm/workspace/kibana/x-pack/test/functional/failure_debug/html/lens app  lens smokescreen tests should allow creation of lens visualizations.html
[00:17:25]                 └- ✖ fail: "lens app  lens smokescreen tests should allow creation of lens visualizations"
[00:17:25]                 │

Stack Trace

Error: retry.try timeout: TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="lnsXY_splitDimensionPanel"] [data-test-subj="lns-empty-dimension"])
Wait timed out after 10029ms
    at /dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/webdriver.js:842:17
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at onFailure (/dev/shm/workspace/kibana/test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (/dev/shm/workspace/kibana/test/common/services/retry/retry_for_success.ts:68:13)

Build metrics

✅ unchanged

History

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

return [];
}

return aggregations.services.buckets.map((bucket) => ({
Copy link
Member

@sorenlouv sorenlouv Jul 2, 2020

Choose a reason for hiding this comment

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

I've seen this in a few places and would be really nice if we could do something like:

const buckets = aggregations.services.buckets as Buckets<string, {
      agent: {
        name: string;
      };
    }>

return buckets.map(bucket => {
 serviceName: bucket.key,
 agentName: bucket.agent_name.hits.hits[0]?._source.agent.name
})

Copy link
Member

Choose a reason for hiding this comment

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

Alternatively:

type Bucket = <string, { agent: { name: string; }; }>;

return buckets.map(bucket: Bucket => {
 serviceName: bucket.key,
 agentName: bucket.agent_name.hits.hits[0]?._source.agent.name
})

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm not sure if it's that easy, but I might be missing something. You'd also need to define agent_name, the name of the sub-aggregation, and the fact that it's a top_hits aggregation. Let me see if we still need it anyway if we resolve the document types from apm.events.

Copy link
Member Author

Choose a reason for hiding this comment

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

Looks like we don't:

image

Copy link
Member

Choose a reason for hiding this comment

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

Beautiful! Any way to narrow the source down even more? I seem to recall we could do that with the client's first generic argument: ApmEventsClient<Transaction>()

Copy link
Member Author

Choose a reason for hiding this comment

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

it's based on whatever you specify in apm.events. In this case, it searches on error, metric and transaction indices, that's why it's a union type. If it were just ProcessorEvent.transaction, the type would be Transaction.

Copy link
Member

@sorenlouv sorenlouv Jul 2, 2020

Choose a reason for hiding this comment

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

Oh, wow. I guess that's perfect then 👍

@dgieselaar dgieselaar merged commit 8bc27ec into elastic:master Jul 3, 2020
@dgieselaar dgieselaar deleted the optimize-services-overview branch July 3, 2020 09:37
gmmorris added a commit to gmmorris/kibana that referenced this pull request Jul 3, 2020
* master: (199 commits)
  [Telemetry] Add documentation about Application Usage (elastic#70624)
  [Ingest Manager] Improve agent unenrollment with unenroll action (elastic#70031)
  Handle timeouts on creating templates (elastic#70635)
  [Lens] Add ability to set colors for y-axis series (elastic#70311)
  [Uptime] Use elastic charts donut (elastic#70364)
  [Ingest Manager] Update registry URL to point to snapshot registry (elastic#70687)
  [Composable template] Create / Edit wizard (elastic#70220)
  [APM] Optimize services overview (elastic#69648)
  [Ingest Pipelines] Load from json (elastic#70297)
  [Rum Dashbaord] Rum selected service view (elastic#70579)
  [Uptime] Prevent duplicate requests on load for index status (elastic#70585)
  [ML] Changing shared module setup function parameters (elastic#70589)
  [Ingest Manager] Add ability to sort to agent configs and package configs (elastic#70676)
  [Alerting] document requirements for developing new action types (elastic#69164)
  Fixed adding an extra space character on selecting alert variable in action text fields (elastic#70028)
  [Maps] show vector tile labels on top (elastic#69444)
  chore(NA): upgrade to lodash@4 (elastic#69868)
  Add Snapshot Restore README with quick-testing steps. (elastic#70494)
  [EPM] Use higher priority than default templates (elastic#70640)
  [Maps] Fix cannot select Solid fill-color when removing fields (elastic#70621)
  ...
gmmorris added a commit to gmmorris/kibana that referenced this pull request Jul 3, 2020
* master:
  [Lens] Fitting functions (elastic#69820)
  [Telemetry] Add documentation about Application Usage (elastic#70624)
  [Ingest Manager] Improve agent unenrollment with unenroll action (elastic#70031)
  Handle timeouts on creating templates (elastic#70635)
  [Lens] Add ability to set colors for y-axis series (elastic#70311)
  [Uptime] Use elastic charts donut (elastic#70364)
  [Ingest Manager] Update registry URL to point to snapshot registry (elastic#70687)
  [Composable template] Create / Edit wizard (elastic#70220)
  [APM] Optimize services overview (elastic#69648)
@kibanamachine
Copy link
Contributor

Friendly reminder: Looks like this PR hasn’t been backported yet.
To create backports run node scripts/backport --pr 69648 or prevent reminders by adding the backport:skip label.

@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Jul 7, 2020
dgieselaar added a commit to dgieselaar/kibana that referenced this pull request Jul 7, 2020
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
dgieselaar added a commit that referenced this pull request Jul 7, 2020
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
@kibanamachine kibanamachine removed the backport missing Added to PRs automatically when the are determined to be missing a backport. label Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release_note:skip Skip the PR/issue when compiling release notes Team:APM All issues that need APM UI Team support v7.9.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants