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

[ML] Adding shared services to ml setup contract #59730

Conversation

jgowdyelastic
Copy link
Member

@jgowdyelastic jgowdyelastic commented Mar 10, 2020

Add access to commonly used ML endpoints via our setup contract.
External plugins which are currently calling ML endpoints can now get access to the same data via these exposed functions on the server side of kibana.

All exposed functions contain license checks and will return an error if called with the incorrect license level.

Relates to #59735

Also refactors some routes to ensure they are all consistent in the way they require callAsCurrentUser.

Privilege checking is also required in these exposed functions, but will need to be added later once it's possible to have multiple reserved feature privileges so we can use kibana's capabilities. (#57637)

  • Documentation was added for features that require explanation or tutorials

@jgowdyelastic jgowdyelastic self-assigned this Mar 11, 2020
@jgowdyelastic jgowdyelastic added :ml Feature:Anomaly Detection ML anomaly detection non-issue Indicates to automation that a pull request should not appear in the release notes release_note:skip Skip the PR/issue when compiling release notes review v7.7.0 v8.0.0 labels Mar 11, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/ml-ui (:ml)

@jgowdyelastic jgowdyelastic marked this pull request as ready for review March 11, 2020 09:21
@jgowdyelastic jgowdyelastic requested a review from a team as a code owner March 11, 2020 09:21
@jgowdyelastic jgowdyelastic force-pushed the adding-shared-services-to-ml-setup-contract branch from f8f15e7 to 752006a Compare March 11, 2020 10:42
Copy link
Contributor

@peteharverson peteharverson left a comment

Choose a reason for hiding this comment

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

Tested and LGTM. Just a question about the names of the providers we are exposing.

@jgowdyelastic jgowdyelastic force-pushed the adding-shared-services-to-ml-setup-contract branch from 71396fa to a6a2655 Compare March 11, 2020 17:17
@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/machine_learning/anomaly_detection/date_nanos_job·ts.machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation enables the dedicated index switch

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 8 times on tracked branches: https://github.com/elastic/kibana/issues/59419

[00:00:00]       │
[00:07:56]         └-: machine learning
[00:07:56]           └-> "before all" hook
[00:07:56]           └-> "before all" hook
[00:07:56]             │ debg creating role ml_source
[00:07:56]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] added role [ml_source]
[00:07:56]             │ debg created role ml_source
[00:07:56]             │ debg creating role ml_dest
[00:07:56]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] added role [ml_dest]
[00:07:56]             │ debg created role ml_dest
[00:07:56]             │ debg creating role ml_dest_readonly
[00:07:57]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] added role [ml_dest_readonly]
[00:07:57]             │ debg created role ml_dest_readonly
[00:07:57]             │ debg creating role ml_ui_extras
[00:07:57]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] added role [ml_ui_extras]
[00:07:57]             │ debg created role ml_ui_extras
[00:07:57]             │ debg creating user ml_poweruser
[00:07:57]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] added user [ml_poweruser]
[00:07:57]             │ debg created user ml_poweruser
[00:07:57]             │ debg creating user ml_viewer
[00:07:57]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] added user [ml_viewer]
[00:07:57]             │ debg created user ml_viewer
[00:11:17]           └-: anomaly detection
[00:11:17]             └-> "before all" hook
[00:38:53]             └-: job on data set with date_nanos time field
[00:38:53]               └-> "before all" hook
[00:38:53]               └-> "before all" hook
[00:38:53]                 │ info [ml/event_rate_nanos] Loading "mappings.json"
[00:38:53]                 │ info [ml/event_rate_nanos] Loading "data.json.gz"
[00:38:53]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [event_rate_gen_trend_nanos] creating index, cause [api], templates [], shards [1]/[0], mappings [_doc]
[00:38:53]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[event_rate_gen_trend_nanos][0]]]).
[00:38:53]                 │ info [ml/event_rate_nanos] Created index "event_rate_gen_trend_nanos"
[00:38:53]                 │ debg [ml/event_rate_nanos] "event_rate_gen_trend_nanos" settings {"index":{"number_of_replicas":"0","number_of_shards":"1"}}
[00:38:53]                 │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_1/dHd1RQqhQ9Cy5EaI5HtC7g] deleting index
[00:38:53]                 │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_2/KQaHpVbNRVef2gJkG8W4ow] deleting index
[00:38:53]                 │ info [ml/event_rate_nanos] Deleted existing index [".kibana_2",".kibana_1"]
[00:38:53]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_1] creating index, cause [api], templates [], shards [1]/[0], mappings [_doc]
[00:38:53]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.kibana_1][0]]]).
[00:38:53]                 │ info [ml/event_rate_nanos] Created index ".kibana_1"
[00:38:53]                 │ debg [ml/event_rate_nanos] ".kibana_1" settings {"index":{"auto_expand_replicas":"0-1","number_of_replicas":"0","number_of_shards":"1"}}
[00:38:58]                 │ info [ml/event_rate_nanos] Indexed 105120 docs into "event_rate_gen_trend_nanos"
[00:38:58]                 │ info [ml/event_rate_nanos] Indexed 4 docs into ".kibana_1"
[00:38:58]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_1/Z6i529yHTk-lM0xjfBgSXQ] update_mapping [_doc]
[00:38:58]                 │ debg Migrating saved objects
[00:38:58]                 │ proc [kibana]   log   [18:30:24.617] [info][savedobjects-service] Detected mapping change in "dynamic"
[00:38:58]                 │ proc [kibana]   log   [18:30:24.618] [info][savedobjects-service] Creating index .kibana_2.
[00:38:58]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:38:58]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] updating number_of_replicas to [0] for indices [.kibana_2]
[00:38:58]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.kibana_2][0]]]).
[00:38:58]                 │ proc [kibana]   log   [18:30:24.688] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:38:58]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_2/JUGnJojyQBCj1bO7_quTag] update_mapping [_doc]
[00:38:58]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_2/JUGnJojyQBCj1bO7_quTag] update_mapping [_doc]
[00:38:58]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-centos-tests-xl-1583947055139687621] [.kibana_2/JUGnJojyQBCj1bO7_quTag] update_mapping [_doc]
[00:38:58]                 │ proc [kibana]   log   [18:30:24.795] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:38:58]                 │ proc [kibana]   log   [18:30:24.854] [info][savedobjects-service] Finished in 237ms.
[00:38:58]                 │ debg SecurityPage.forceLogout
[00:38:58]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=100
[00:38:58]                 │ debg --- retry.tryForTime error: .login-form is not displayed
[00:38:59]                 │ debg Redirecting to /logout to force the logout
[00:38:59]                 │ debg Waiting on the login form to appear
[00:38:59]                 │ debg Waiting up to 100000ms for login form...
[00:38:59]                 │ debg browser[INFO] http://localhost:6131/logout?_t=1583951425488 340 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:38:59]                 │
[00:38:59]                 │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:38:59]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=2500
[00:39:03]                 │ debg --- retry.tryForTime error: .login-form is not displayed
[00:39:04]                 │ debg browser[INFO] http://localhost:6131/bundles/plugin/data/data.plugin.js 90:139970 "INFO: 2020-03-11T18:30:30Z
[00:39:04]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:39:04]                 │
[00:39:04]                 │      "
[00:39:04]                 │ debg browser[INFO] http://localhost:6131/login?_t=1583951425488 340 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:39:04]                 │
[00:39:04]                 │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:05]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=2500
[00:39:07]                 │ proc [kibana]   log   [18:30:33.174] [warning][plugins][spaces] Error toggling capabilities for request to /api/core/capabilities: [security_exception] missing authentication credentials for REST request [/_security/user/_has_privileges], with { header={ WWW-Authenticate="Basic realm=\"security\" charset=\"UTF-8\"" } } :: {"path":"/_security/user/_has_privileges","query":{},"body":"{\"applications\":[{\"application\":\"kibana-.kibana\",\"resources\":[\"space:default\"],\"privileges\":[\"version:8.0.0-SNAPSHOT\",\"login:\"]}]}","statusCode":401,"response":"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\":\"missing authentication credentials for REST request [/_security/user/_has_privileges]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\"}}],\"type\":\"security_exception\",\"reason\":\"missing authentication credentials for REST request [/_security/user/_has_privileges]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\"}},\"status\":401}","wwwAuthenticateDirective":"Basic realm=\"security\" charset=\"UTF-8\""}
[00:39:07]                 │ debg browser[INFO] http://localhost:6131/bundles/plugin/data/data.plugin.js 90:139970 "INFO: 2020-03-11T18:30:33Z
[00:39:07]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:39:07]                 │
[00:39:07]                 │      "
[00:39:07]                 │ debg navigating to login url: http://localhost:6131/login
[00:39:07]                 │ debg Navigate to: http://localhost:6131/login
[00:39:07]                 │ debg ... sleep(700) start
[00:39:07]                 │ debg browser[INFO] http://localhost:6131/login?_t=1583951433288 340 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:39:07]                 │
[00:39:07]                 │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:07]                 │ debg ... sleep(700) end
[00:39:07]                 │ debg returned from get, calling refresh
[00:39:08]                 │ debg browser[INFO] http://localhost:6131/login?_t=1583951433288 340 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:39:08]                 │
[00:39:08]                 │ debg browser[INFO] http://localhost:6131/bundles/app/core/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:08]                 │ debg currentUrl = http://localhost:6131/login
[00:39:08]                 │          appUrl = http://localhost:6131/login
[00:39:08]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:39:10]                 │ proc [kibana]   log   [18:30:36.494] [warning][plugins][spaces] Error toggling capabilities for request to /api/core/capabilities: [security_exception] missing authentication credentials for REST request [/_security/user/_has_privileges], with { header={ WWW-Authenticate="Basic realm=\"security\" charset=\"UTF-8\"" } } :: {"path":"/_security/user/_has_privileges","query":{},"body":"{\"applications\":[{\"application\":\"kibana-.kibana\",\"resources\":[\"space:default\"],\"privileges\":[\"version:8.0.0-SNAPSHOT\",\"login:\"]}]}","statusCode":401,"response":"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\":\"missing authentication credentials for REST request [/_security/user/_has_privileges]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\"}}],\"type\":\"security_exception\",\"reason\":\"missing authentication credentials for REST request [/_security/user/_has_privileges]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\"}},\"status\":401}","wwwAuthenticateDirective":"Basic realm=\"security\" charset=\"UTF-8\""}
[00:39:10]                 │ debg browser[INFO] http://localhost:6131/bundles/plugin/data/data.plugin.js 90:139970 "INFO: 2020-03-11T18:30:36Z
[00:39:10]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:39:10]                 │
[00:39:10]                 │      "
[00:39:10]                 │ debg ... sleep(501) start
[00:39:10]                 │ debg ... sleep(501) end
[00:39:10]                 │ debg in navigateTo url = http://localhost:6131/login
[00:39:10]                 │ debg TestSubjects.exists(statusPageContainer)
[00:39:10]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:39:13]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:39:13]                 │ debg TestSubjects.setValue(loginUsername, ml_poweruser)
[00:39:13]                 │ debg TestSubjects.click(loginUsername)
[00:39:13]                 │ debg Find.clickByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:39:13]                 │ debg Find.findByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:39:14]                 │ debg TestSubjects.setValue(loginPassword, mlp001)
[00:39:14]                 │ debg TestSubjects.click(loginPassword)
[00:39:14]                 │ debg Find.clickByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:39:14]                 │ debg Find.findByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:39:14]                 │ debg TestSubjects.click(loginSubmit)
[00:39:14]                 │ debg Find.clickByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:39:14]                 │ debg Find.findByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:39:14]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"] nav:not(.ng-hide) ') with timeout=20000
[00:39:18]                 │ debg browser[INFO] http://localhost:6131/app/kibana 340 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:39:18]                 │
[00:39:18]                 │ debg browser[INFO] http://localhost:6131/bundles/app/kibana/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:18]                 │ debg browser[INFO] http://localhost:6131/bundles/plugin/data/data.plugin.js 90:139970 "INFO: 2020-03-11T18:30:43Z
[00:39:18]                 │        Adding connection to http://localhost:6131/elasticsearch
[00:39:18]                 │
[00:39:18]                 │      "
[00:39:19]                 │ debg Finished login process currentUrl = http://localhost:6131/app/kibana#/home
[00:39:19]                 │ debg Waiting up to 20000ms for logout button visible...
[00:39:19]                 │ debg TestSubjects.exists(userMenuButton)
[00:39:19]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenuButton"]') with timeout=2500
[00:39:19]                 │ debg TestSubjects.exists(userMenu)
[00:39:19]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"]') with timeout=2500
[00:39:21]                 │ debg --- retry.tryForTime error: [data-test-subj="userMenu"] is not displayed
[00:39:22]                 │ debg TestSubjects.click(userMenuButton)
[00:39:22]                 │ debg Find.clickByCssSelector('[data-test-subj="userMenuButton"]') with timeout=10000
[00:39:22]                 │ debg Find.findByCssSelector('[data-test-subj="userMenuButton"]') with timeout=10000
[00:39:22]                 │ debg Waiting up to 20000ms for user menu opened...
[00:39:22]                 │ debg TestSubjects.exists(userMenu)
[00:39:22]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"]') with timeout=2500
[00:39:22]                 │ debg TestSubjects.exists(userMenu > logoutLink)
[00:39:22]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"] [data-test-subj="logoutLink"]') with timeout=2500
[00:39:22]               └-: with count detector and model plot disabled
[00:39:22]                 └-> "before all" hook
[00:39:22]                 └-> job creation loads the job management page
[00:39:22]                   └-> "before each" hook: global before each
[00:39:22]                   │ debg navigating to ml url: http://localhost:6131/app/ml
[00:39:22]                   │ debg Navigate to: http://localhost:6131/app/ml
[00:39:22]                   │ debg ... sleep(700) start
[00:39:22]                   │ debg browser[INFO] http://localhost:6131/app/ml?_t=1583951448438 340 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:39:22]                   │
[00:39:22]                   │ debg browser[INFO] http://localhost:6131/bundles/app/ml/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:23]                   │ debg ... sleep(700) end
[00:39:23]                   │ debg returned from get, calling refresh
[00:39:23]                   │ debg browser[INFO] http://localhost:6131/app/ml?_t=1583951448438 340 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:39:23]                   │
[00:39:23]                   │ debg browser[INFO] http://localhost:6131/bundles/app/ml/bootstrap.js 9:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:23]                   │ debg currentUrl = http://localhost:6131/app/ml
[00:39:23]                   │          appUrl = http://localhost:6131/app/ml
[00:39:23]                   │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:39:26]                   │ debg browser[INFO] http://localhost:6131/bundles/plugin/data/data.plugin.js 90:139970 "INFO: 2020-03-11T18:30:52Z
[00:39:26]                   │        Adding connection to http://localhost:6131/elasticsearch
[00:39:26]                   │
[00:39:26]                   │      "
[00:39:26]                   │ debg ... sleep(501) start
[00:39:27]                   │ debg ... sleep(501) end
[00:39:27]                   │ debg in navigateTo url = http://localhost:6131/app/ml#/overview?_g=(refreshInterval:(pause:!t,value:0))
[00:39:27]                   │ debg --- retry.try error: URL changed, waiting for it to settle
[00:39:27]                   │ debg ... sleep(501) start
[00:39:28]                   │ debg ... sleep(501) end
[00:39:28]                   │ debg in navigateTo url = http://localhost:6131/app/ml#/overview?_g=(refreshInterval:(pause:!t,value:0))
[00:39:28]                   │ debg TestSubjects.exists(statusPageContainer)
[00:39:28]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:39:30]                   │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:39:31]                   │ debg TestSubjects.exists(mlPageOverview)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageOverview"]') with timeout=2000
[00:39:31]                   │ debg TestSubjects.click(~mlMainTab & ~anomalyDetection)
[00:39:31]                   │ debg Find.clickByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="anomalyDetection"]') with timeout=10000
[00:39:31]                   │ debg Find.findByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="anomalyDetection"]') with timeout=10000
[00:39:31]                   │ debg TestSubjects.exists(~mlMainTab & ~anomalyDetection & ~selected)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="anomalyDetection"][data-test-subj~="selected"]') with timeout=120000
[00:39:31]                   │ debg TestSubjects.exists(mlPageJobManagement)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobManagement"]') with timeout=120000
[00:39:31]                   │ debg TestSubjects.findAll(~mlSubTab)
[00:39:31]                   │ debg Find.allByCssSelector('[data-test-subj~="mlSubTab"]') with timeout=3
[00:39:31]                   │ debg TestSubjects.exists(~mlSubTab&~jobManagement)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"]') with timeout=1000
[00:39:31]                   │ debg TestSubjects.exists(~mlSubTab&~anomalyExplorer)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="anomalyExplorer"]') with timeout=1000
[00:39:31]                   │ debg TestSubjects.exists(~mlSubTab&~singleMetricViewer)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="singleMetricViewer"]') with timeout=1000
[00:39:31]                   │ debg TestSubjects.exists(~mlSubTab&~settings)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="settings"]') with timeout=1000
[00:39:31]                   │ debg TestSubjects.click(~mlSubTab & ~jobManagement)
[00:39:31]                   │ debg Find.clickByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"]') with timeout=10000
[00:39:31]                   │ debg Find.findByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"]') with timeout=10000
[00:39:31]                   │ debg TestSubjects.exists(~mlSubTab & ~jobManagement & ~selected)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"][data-test-subj~="selected"]') with timeout=120000
[00:39:31]                   │ debg TestSubjects.exists(mlPageJobManagement)
[00:39:31]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobManagement"]') with timeout=120000
[00:39:31]                   └- ✓ pass  (9.6s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation loads the job management page"
[00:39:31]                 └-> job creation loads the new job source selection page
[00:39:31]                   └-> "before each" hook: global before each
[00:39:31]                   │ debg TestSubjects.clickWhenNotDisabled(mlCreateNewJobButton)
[00:39:31]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlCreateNewJobButton"]') with timeout=10000
[00:39:31]                   │ debg Find.findByCssSelector('[data-test-subj="mlCreateNewJobButton"]') with timeout=10000
[00:39:32]                   │ debg TestSubjects.exists(mlPageSourceSelection)
[00:39:32]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageSourceSelection"]') with timeout=120000
[00:39:32]                   └- ✓ pass  (298ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation loads the new job source selection page"
[00:39:32]                 └-> job creation loads the job type selection page
[00:39:32]                   └-> "before each" hook: global before each
[00:39:32]                   │ debg TestSubjects.setValue(savedObjectFinderSearchInput, event_rate_gen_trend_nanos)
[00:39:32]                   │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:39:32]                   │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:39:32]                   │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:39:32]                   │ debg TestSubjects.exists(savedObjectTitleevent_rate_gen_trend_nanos)
[00:39:32]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="savedObjectTitleevent_rate_gen_trend_nanos"]') with timeout=120000
[00:39:32]                   │ debg TestSubjects.clickWhenNotDisabled(savedObjectTitleevent_rate_gen_trend_nanos)
[00:39:32]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="savedObjectTitleevent_rate_gen_trend_nanos"]') with timeout=10000
[00:39:32]                   │ debg Find.findByCssSelector('[data-test-subj="savedObjectTitleevent_rate_gen_trend_nanos"]') with timeout=10000
[00:39:32]                   │ debg TestSubjects.exists(mlPageJobTypeSelection)
[00:39:32]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobTypeSelection"]') with timeout=10000
[00:39:33]                   └- ✓ pass  (990ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation loads the job type selection page"
[00:39:33]                 └-> job creation loads the advanced job wizard page
[00:39:33]                   └-> "before each" hook: global before each
[00:39:33]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobTypeLinkAdvancedJob)
[00:39:33]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobTypeLinkAdvancedJob"]') with timeout=10000
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobTypeLinkAdvancedJob"]') with timeout=10000
[00:39:33]                   │ debg TestSubjects.exists(mlPageJobWizard advanced)
[00:39:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobWizard advanced"]') with timeout=120000
[00:39:33]                   └- ✓ pass  (389ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation loads the advanced job wizard page"
[00:39:33]                 └-> job creation displays the configure datafeed step
[00:39:33]                   └-> "before each" hook: global before each
[00:39:33]                   │ debg TestSubjects.exists(mlJobWizardStepTitleConfigureDatafeed)
[00:39:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitleConfigureDatafeed"]') with timeout=120000
[00:39:33]                   └- ✓ pass  (25ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation displays the configure datafeed step"
[00:39:33]                 └-> job creation pre-fills the datafeed query editor
[00:39:33]                   └-> "before each" hook: global before each
[00:39:33]                   │ debg TestSubjects.exists(mlAdvancedDatafeedQueryEditor > codeEditorContainer)
[00:39:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedDatafeedQueryEditor"] [data-test-subj="codeEditorContainer"]') with timeout=120000
[00:39:33]                   │ debg TestSubjects.find(mlAdvancedDatafeedQueryEditor > codeEditorContainer)
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDatafeedQueryEditor"] [data-test-subj="codeEditorContainer"]') with timeout=10000
[00:39:33]                   └- ✓ pass  (194ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation pre-fills the datafeed query editor"
[00:39:33]                 └-> job creation inputs the query delay
[00:39:33]                   └-> "before each" hook: global before each
[00:39:33]                   │ debg TestSubjects.exists(mlJobWizardInputQueryDelay)
[00:39:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputQueryDelay"]') with timeout=120000
[00:39:33]                   │ debg TestSubjects.getAttribute(mlJobWizardInputQueryDelay, value)
[00:39:33]                   │ debg TestSubjects.find(mlJobWizardInputQueryDelay)
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputQueryDelay"]') with timeout=10000
[00:39:33]                   │ debg TestSubjects.getAttribute(mlJobWizardInputQueryDelay, placeholder)
[00:39:33]                   │ debg TestSubjects.find(mlJobWizardInputQueryDelay)
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputQueryDelay"]') with timeout=10000
[00:39:33]                   └- ✓ pass  (56ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the query delay"
[00:39:33]                 └-> job creation inputs the frequency
[00:39:33]                   └-> "before each" hook: global before each
[00:39:33]                   │ debg TestSubjects.exists(mlJobWizardInputFrequency)
[00:39:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputFrequency"]') with timeout=120000
[00:39:33]                   │ debg TestSubjects.getAttribute(mlJobWizardInputFrequency, value)
[00:39:33]                   │ debg TestSubjects.find(mlJobWizardInputFrequency)
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputFrequency"]') with timeout=10000
[00:39:33]                   │ debg TestSubjects.getAttribute(mlJobWizardInputFrequency, placeholder)
[00:39:33]                   │ debg TestSubjects.find(mlJobWizardInputFrequency)
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputFrequency"]') with timeout=10000
[00:39:33]                   └- ✓ pass  (57ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the frequency"
[00:39:33]                 └-> job creation inputs the scroll size
[00:39:33]                   └-> "before each" hook: global before each
[00:39:33]                   │ debg TestSubjects.exists(mlJobWizardInputScrollSize)
[00:39:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputScrollSize"]') with timeout=120000
[00:39:33]                   │ debg TestSubjects.getAttribute(mlJobWizardInputScrollSize, value)
[00:39:33]                   │ debg TestSubjects.find(mlJobWizardInputScrollSize)
[00:39:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputScrollSize"]') with timeout=10000
[00:39:34]                   │ debg TestSubjects.getAttribute(mlJobWizardInputScrollSize, placeholder)
[00:39:34]                   │ debg TestSubjects.find(mlJobWizardInputScrollSize)
[00:39:34]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputScrollSize"]') with timeout=10000
[00:39:34]                   └- ✓ pass  (50ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the scroll size"
[00:39:34]                 └-> job creation pre-fills the time field
[00:39:34]                   └-> "before each" hook: global before each
[00:39:34]                   │ debg TestSubjects.exists(mlTimeFieldNameSelect > comboBoxInput)
[00:39:34]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlTimeFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:34]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlTimeFieldNameSelect > comboBoxInput
[00:39:34]                   │ debg TestSubjects.find(mlTimeFieldNameSelect > comboBoxInput)
[00:39:34]                   │ debg Find.findByCssSelector('[data-test-subj="mlTimeFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:34]                   └- ✓ pass  (39ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation pre-fills the time field"
[00:39:34]                 └-> job creation displays the pick fields step
[00:39:34]                   └-> "before each" hook: global before each
[00:39:34]                   │ debg TestSubjects.exists(mlJobWizardNavButtonNext)
[00:39:34]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=120000
[00:39:34]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardNavButtonNext)
[00:39:34]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:39:34]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:39:34]                   │ debg TestSubjects.exists(mlJobWizardStepTitlePickFields)
[00:39:34]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitlePickFields"]') with timeout=120000
[00:39:34]                   └- ✓ pass  (209ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation displays the pick fields step"
[00:39:34]                 └-> job creation selects the summary count field
[00:39:34]                   └-> "before each" hook: global before each
[00:39:34]                   │ debg TestSubjects.exists(mlSummaryCountFieldNameSelect > comboBoxInput)
[00:39:34]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlSummaryCountFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:34]                   │ debg comboBox.set, comboBoxSelector: mlSummaryCountFieldNameSelect > comboBoxInput
[00:39:34]                   │ debg TestSubjects.find(mlSummaryCountFieldNameSelect > comboBoxInput)
[00:39:34]                   │ debg Find.findByCssSelector('[data-test-subj="mlSummaryCountFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:34]                   │ debg comboBox.setElement, value: count
[00:39:34]                   │ debg comboBox.isOptionSelected, value: count
[00:39:36]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:39:36]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:39:36]                   │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="count"]') with timeout=2500
[00:39:36]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:39:36]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:39:39]                   │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:39:39]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlSummaryCountFieldNameSelect > comboBoxInput
[00:39:39]                   │ debg TestSubjects.find(mlSummaryCountFieldNameSelect > comboBoxInput)
[00:39:39]                   │ debg Find.findByCssSelector('[data-test-subj="mlSummaryCountFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:39]                   └- ✓ pass  (5.4s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation selects the summary count field"
[00:39:39]                 └-> job creation adds detectors
[00:39:39]                   └-> "before each" hook: global before each
[00:39:39]                   │ debg TestSubjects.click(mlAddDetectorButton)
[00:39:39]                   │ debg Find.clickByCssSelector('[data-test-subj="mlAddDetectorButton"]') with timeout=10000
[00:39:39]                   │ debg Find.findByCssSelector('[data-test-subj="mlAddDetectorButton"]') with timeout=10000
[00:39:39]                   │ debg TestSubjects.exists(mlCreateDetectorModal)
[00:39:39]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlCreateDetectorModal"]') with timeout=5000
[00:39:39]                   │ debg TestSubjects.exists(mlAdvancedFunctionSelect > comboBoxInput)
[00:39:39]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:39]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedFunctionSelect > comboBoxInput
[00:39:39]                   │ debg TestSubjects.find(mlAdvancedFunctionSelect > comboBoxInput)
[00:39:39]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:39]                   │ debg TestSubjects.exists(mlAdvancedFieldSelect > comboBoxInput)
[00:39:39]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:39]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedFieldSelect > comboBoxInput
[00:39:39]                   │ debg TestSubjects.find(mlAdvancedFieldSelect > comboBoxInput)
[00:39:39]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:39]                   │ debg TestSubjects.exists(mlAdvancedByFieldSelect > comboBoxInput)
[00:39:39]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedByFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:39]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedByFieldSelect > comboBoxInput
[00:39:39]                   │ debg TestSubjects.find(mlAdvancedByFieldSelect > comboBoxInput)
[00:39:39]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedByFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:39]                   │ debg TestSubjects.exists(mlAdvancedOverFieldSelect > comboBoxInput)
[00:39:39]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedOverFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:40]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedOverFieldSelect > comboBoxInput
[00:39:40]                   │ debg TestSubjects.find(mlAdvancedOverFieldSelect > comboBoxInput)
[00:39:40]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedOverFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:40]                   │ debg TestSubjects.exists(mlAdvancedPartitionFieldSelect > comboBoxInput)
[00:39:40]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedPartitionFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:40]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedPartitionFieldSelect > comboBoxInput
[00:39:40]                   │ debg TestSubjects.find(mlAdvancedPartitionFieldSelect > comboBoxInput)
[00:39:40]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedPartitionFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:40]                   │ debg TestSubjects.exists(mlAdvancedExcludeFrequentSelect > comboBoxInput)
[00:39:40]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedExcludeFrequentSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:40]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedExcludeFrequentSelect > comboBoxInput
[00:39:40]                   │ debg TestSubjects.find(mlAdvancedExcludeFrequentSelect > comboBoxInput)
[00:39:40]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedExcludeFrequentSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:40]                   │ debg TestSubjects.exists(mlAdvancedDetectorDescriptionInput)
[00:39:40]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=120000
[00:39:40]                   │ debg TestSubjects.getAttribute(mlAdvancedDetectorDescriptionInput, value)
[00:39:40]                   │ debg TestSubjects.find(mlAdvancedDetectorDescriptionInput)
[00:39:40]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=10000
[00:39:40]                   │ debg comboBox.set, comboBoxSelector: mlAdvancedFunctionSelect > comboBoxInput
[00:39:40]                   │ debg TestSubjects.find(mlAdvancedFunctionSelect > comboBoxInput)
[00:39:40]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:40]                   │ debg comboBox.setElement, value: count
[00:39:40]                   │ debg comboBox.isOptionSelected, value: count
[00:39:42]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:39:42]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:39:42]                   │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="count"]') with timeout=2500
[00:39:42]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:39:42]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:39:45]                   │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:39:45]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedFunctionSelect > comboBoxInput
[00:39:45]                   │ debg TestSubjects.find(mlAdvancedFunctionSelect > comboBoxInput)
[00:39:45]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:45]                   │ debg TestSubjects.setValueWithChecks(mlAdvancedDetectorDescriptionInput, event rate)
[00:39:45]                   │ debg TestSubjects.click(mlAdvancedDetectorDescriptionInput)
[00:39:45]                   │ debg Find.clickByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=10000
[00:39:45]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=10000
[00:39:45]                   │ debg TestSubjects.getAttribute(mlAdvancedDetectorDescriptionInput, value)
[00:39:45]                   │ debg TestSubjects.find(mlAdvancedDetectorDescriptionInput)
[00:39:45]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=10000
[00:39:45]                   │ debg TestSubjects.clickWhenNotDisabled(mlCreateDetectorModalSaveButton)
[00:39:45]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlCreateDetectorModalSaveButton"]') with timeout=10000
[00:39:45]                   │ debg Find.findByCssSelector('[data-test-subj="mlCreateDetectorModalSaveButton"]') with timeout=10000
[00:39:46]                   │ debg TestSubjects.missingOrFail(mlCreateDetectorModal)
[00:39:46]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj="mlCreateDetectorModal"]') with timeout=2500
[00:39:46]                   └- ✓ pass  (7.0s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation adds detectors"
[00:39:46]                 └-> job creation displays detector entries
[00:39:46]                   └-> "before each" hook: global before each
[00:39:46]                   │ debg TestSubjects.exists(mlAdvancedDetector 0)
[00:39:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedDetector 0"]') with timeout=120000
[00:39:46]                   │ debg TestSubjects.getVisibleText(mlAdvancedDetector 0 > mlDetectorIdentifier)
[00:39:46]                   │ debg TestSubjects.find(mlAdvancedDetector 0 > mlDetectorIdentifier)
[00:39:46]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetector 0"] [data-test-subj="mlDetectorIdentifier"]') with timeout=10000
[00:39:46]                   │ debg TestSubjects.getVisibleText(mlAdvancedDetector 0 > mlDetectorDescription)
[00:39:46]                   │ debg TestSubjects.find(mlAdvancedDetector 0 > mlDetectorDescription)
[00:39:46]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetector 0"] [data-test-subj="mlDetectorDescription"]') with timeout=10000
[00:39:46]                   └- ✓ pass  (80ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation displays detector entries"
[00:39:46]                 └-> job creation inputs the bucket span
[00:39:46]                   └-> "before each" hook: global before each
[00:39:46]                   │ debg TestSubjects.exists(mlJobWizardInputBucketSpan)
[00:39:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=120000
[00:39:46]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputBucketSpan, 30m)
[00:39:46]                   │ debg TestSubjects.click(mlJobWizardInputBucketSpan)
[00:39:46]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=10000
[00:39:46]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=10000
[00:39:47]                   │ debg TestSubjects.getAttribute(mlJobWizardInputBucketSpan, value)
[00:39:47]                   │ debg TestSubjects.find(mlJobWizardInputBucketSpan)
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=10000
[00:39:47]                   └- ✓ pass  (579ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the bucket span"
[00:39:47]                 └-> job creation inputs influencers
[00:39:47]                   └-> "before each" hook: global before each
[00:39:47]                   │ debg TestSubjects.exists(mlInfluencerSelect > comboBoxInput)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlInfluencerSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:47]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlInfluencerSelect > comboBoxInput
[00:39:47]                   │ debg TestSubjects.find(mlInfluencerSelect > comboBoxInput)
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlInfluencerSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:47]                   └- ✓ pass  (39ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs influencers"
[00:39:47]                 └-> job creation inputs the model memory limit
[00:39:47]                   └-> "before each" hook: global before each
[00:39:47]                   │ debg TestSubjects.exists(mlJobWizardInputModelMemoryLimit)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=120000
[00:39:47]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputModelMemoryLimit, 10mb)
[00:39:47]                   │ debg TestSubjects.click(mlJobWizardInputModelMemoryLimit)
[00:39:47]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=10000
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=10000
[00:39:47]                   │ debg TestSubjects.getAttribute(mlJobWizardInputModelMemoryLimit, value)
[00:39:47]                   │ debg TestSubjects.find(mlJobWizardInputModelMemoryLimit)
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=10000
[00:39:47]                   └- ✓ pass  (279ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the model memory limit"
[00:39:47]                 └-> job creation displays the job details step
[00:39:47]                   └-> "before each" hook: global before each
[00:39:47]                   │ debg TestSubjects.exists(mlJobWizardNavButtonNext)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=120000
[00:39:47]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardNavButtonNext)
[00:39:47]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:39:48]                   │ debg TestSubjects.exists(mlJobWizardStepTitleJobDetails)
[00:39:48]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitleJobDetails"]') with timeout=120000
[00:39:48]                   └- ✓ pass  (651ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation displays the job details step"
[00:39:48]                 └-> job creation inputs the job id
[00:39:48]                   └-> "before each" hook: global before each
[00:39:48]                   │ debg TestSubjects.exists(mlJobWizardInputJobId)
[00:39:48]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=120000
[00:39:48]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputJobId, event_rate_nanos_count_1_1583949084274)
[00:39:48]                   │ debg TestSubjects.click(mlJobWizardInputJobId)
[00:39:48]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=10000
[00:39:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=10000
[00:39:49]                   │ debg TestSubjects.getAttribute(mlJobWizardInputJobId, value)
[00:39:49]                   │ debg TestSubjects.find(mlJobWizardInputJobId)
[00:39:49]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=10000
[00:39:49]                   └- ✓ pass  (1.4s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the job id"
[00:39:49]                 └-> job creation inputs the job description
[00:39:49]                   └-> "before each" hook: global before each
[00:39:49]                   │ debg TestSubjects.exists(mlJobWizardInputJobDescription)
[00:39:49]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=120000
[00:39:49]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputJobDescription, Create advanced job based on the event rate dataset with a date_nanos time field, 30m bucketspan and count)
[00:39:49]                   │ debg TestSubjects.click(mlJobWizardInputJobDescription)
[00:39:49]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=10000
[00:39:49]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=10000
[00:39:53]                   │ debg TestSubjects.getVisibleText(mlJobWizardInputJobDescription)
[00:39:53]                   │ debg TestSubjects.find(mlJobWizardInputJobDescription)
[00:39:53]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=10000
[00:39:53]                   └- ✓ pass  (3.6s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs the job description"
[00:39:53]                 └-> job creation inputs job groups
[00:39:53]                   └-> "before each" hook: global before each
[00:39:53]                   │ debg TestSubjects.exists(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:39:53]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:39:53]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput, value: automated
[00:39:53]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:39:53]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:55]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:39:55]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:39:55]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:39:55]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:39:55]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:55]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput, value: event-rate
[00:39:55]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:39:55]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:57]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:39:57]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:39:58]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:39:58]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:39:58]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:39:58]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput, value: date-nanos
[00:39:58]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:39:58]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:40:00]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:40:00]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:40:00]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:40:00]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:40:00]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:40:00]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:40:00]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:40:00]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:40:00]                   └- ✓ pass  (7.1s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation inputs job groups"
[00:40:00]                 └-> job creation opens the additional settings section
[00:40:00]                   └-> "before each" hook: global before each
[00:40:00]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:40:00]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=2500
[00:40:00]                   │ debg --- retry.tryForTime error: [data-test-subj="mlJobWizardAdditionalSettingsSection"] is not displayed
[00:40:00]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:01]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:02]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:02]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:03]                   │ debg TestSubjects.click(mlJobWizardToggleAdditionalSettingsSection)
[00:40:03]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardToggleAdditionalSettingsSection"]') with timeout=10000
[00:40:03]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardToggleAdditionalSettingsSection"]') with timeout=10000
[00:40:03]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:40:03]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=1000
[00:40:03]                   └- ✓ pass  (2.7s) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation opens the additional settings section"
[00:40:03]                 └-> job creation displays the model plot switch
[00:40:03]                   └-> "before each" hook: global before each
[00:40:03]                   │ debg TestSubjects.exists(mlJobWizardSwitchModelPlot)
[00:40:03]                   │ debg Find.existsByCssSelector('[data-test-subj="mlJobWizardSwitchModelPlot"]') with timeout=120000
[00:40:03]                   └- ✓ pass  (16ms) "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation displays the model plot switch"
[00:40:03]                 └-> job creation enables the dedicated index switch
[00:40:03]                   └-> "before each" hook: global before each
[00:40:03]                   │ debg TestSubjects.exists(mlJobWizardSwitchUseDedicatedIndex)
[00:40:03]                   │ debg Find.existsByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=120000
[00:40:03]                   │ debg TestSubjects.getAttribute(mlJobWizardSwitchUseDedicatedIndex, aria-checked)
[00:40:03]                   │ debg TestSubjects.find(mlJobWizardSwitchUseDedicatedIndex)
[00:40:03]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:40:03]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardSwitchUseDedicatedIndex)
[00:40:03]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:40:03]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:40:03]                   │ debg TestSubjects.getAttribute(mlJobWizardSwitchUseDedicatedIndex, aria-checked)
[00:40:03]                   │ debg TestSubjects.find(mlJobWizardSwitchUseDedicatedIndex)
[00:40:03]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:40:03]                   │ info Taking screenshot "/dev/shm/workspace/kibana/x-pack/test/functional/screenshots/failure/machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation enables the dedicated index switch.png"
[00:40:03]                   │ info Current URL is: http://localhost:6131/app/ml#/jobs/new_job/advanced?index=5cea1700-5d30-11ea-a203-85f3339cc222
[00:40:03]                   │ info Saving page source to: /dev/shm/workspace/kibana/x-pack/test/functional/failure_debug/html/machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation enables the dedicated index switch.html
[00:40:03]                   └- ✖ fail: "machine learning anomaly detection job on data set with date_nanos time field with count detector and model plot disabled job creation enables the dedicated index switch"
[00:40:03]                   │

Stack Trace

{ Error: expected false to sort of equal true
    at Assertion.assert (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:100:11)
    at Assertion.eql (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:244:8)
    at Object.assertDedicatedIndexSwitchCheckedState (test/functional/services/machine_learning/job_wizard_common.ts:267:37)
    at process._tickCallback (internal/process/next_tick.js:68:7) actual: 'false', expected: 'true', showDiff: true }

History

  • 💚 Build #32251 succeeded f8f15e790d49c2df6b4f6af260f85fdb952aabef
  • 💚 Build #32163 succeeded 631adfea18b5edca19db9ab13c246a40b7ad5a49
  • 💔 Build #32129 failed 911858f4f95d9a883168f4995f010edd8687c02d
  • 💔 Build #32105 failed 1ae013313625c4471b48d0aa1f9d2cc38dd026ca
  • 💚 Build #32002 succeeded 5b6552f6d4a38063657035553d41e705b0f2d5eb

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

anomalyDetectorsProvider(callAsCurrentUser: APICaller) {
return {
jobs(jobId?: string) {
isFullLicense();
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this function call have a side effect like a throw or does this need change to be part of an if, in other files I see if (mlLicense.isFullLicense() === false) {.

Copy link
Contributor

@walterra walterra left a comment

Choose a reason for hiding this comment

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

LGTM

@jgowdyelastic jgowdyelastic merged commit d5c0928 into elastic:master Mar 12, 2020
@jgowdyelastic jgowdyelastic deleted the adding-shared-services-to-ml-setup-contract branch March 12, 2020 10:04
jgowdyelastic added a commit to jgowdyelastic/kibana that referenced this pull request Mar 12, 2020
* [ML] Adding shared services to ml setup contract

* adding data recognizer

* typescripting js client

* adding results service

* code clean up

* adding generic ml index search

* making cloud optional
jgowdyelastic added a commit that referenced this pull request Mar 12, 2020
* [ML] Adding shared services to ml setup contract

* adding data recognizer

* typescripting js client

* adding results service

* code clean up

* adding generic ml index search

* making cloud optional
gmmorris added a commit to gmmorris/kibana that referenced this pull request Mar 12, 2020
* master: (45 commits)
  skip flaky suite (elastic#59717)
  UI Metrics use findAll to retrieve all Saved Objects (elastic#59891)
  [Discover] Migrate Context mocha tests to use Jest (elastic#59658)
  [Maps] Move redux reducers and store logic to NP (elastic#58294)
  rebalance x-pack groups (elastic#58930)
  [Discover] Reimplement $route.reload when index pattern changes (elastic#59877)
  [Upgrade Assistant Meta] Breaking changes issue template (elastic#59745)
  Skip CI based on changes in PR (elastic#59939)
  [ML] Transforms: Replace KqlFilterBar with QueryStringInput. (elastic#59723)
  [ML] Functional tests - stabilize date_nanos test (elastic#59986)
  [ML] Typescripting client side endpoint functions (elastic#59928)
  a11y tests on adding columns to discover table (elastic#59375)
  fix graph plugin config path (elastic#59540)
  fix vega config issues (elastic#59737)
  [Upgrade Assistant] Open And Close Slight Refactor (elastic#59890)
  [ML] Adding shared services to ml setup contract (elastic#59730)
  [Visualize] Fix linked search behavior (elastic#59690)
  [ML] Register NP ML plugin for Kibana management section. (elastic#59762)
  [Lens] Adds using queries/filters for field existence endpoint (elastic#59033)
  Delete FilterStateManager and QueryFilter :-D (elastic#59872)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Anomaly Detection ML anomaly detection :ml non-issue Indicates to automation that a pull request should not appear in the release notes release_note:skip Skip the PR/issue when compiling release notes review v7.7.0 v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants