Skip to content

add coreOverall$ to internal status contract#113729

Merged
pgayvallet merged 5 commits intoelastic:masterfrom
pgayvallet:kbn-110583-alternative
Oct 6, 2021
Merged

add coreOverall$ to internal status contract#113729
pgayvallet merged 5 commits intoelastic:masterfrom
pgayvallet:kbn-110583-alternative

Conversation

@pgayvallet
Copy link
Contributor

@pgayvallet pgayvallet commented Oct 4, 2021

Summary

Fix #110583
Alternative to #113214

Add a new computed coreOverall$ status to the internal status contract and use it in the /api/status handler to only return 503 when core services are unavailable.

Checklist

Release Note

The /api/status endpoint will now only respond with a 503 status code if any Kibana core service is unavailable.

@pgayvallet pgayvallet added Feature:StatusPage Issues related to the Kibana Status Page and APIs release_note:enhancement Team:Core Platform Core services: plugins, logging, config, saved objects, http, ES client, i18n, etc t// v7.16.0 v8.0.0 labels Oct 4, 2021
@pgayvallet pgayvallet marked this pull request as ready for review October 4, 2021 13:44
@pgayvallet pgayvallet requested a review from a team as a code owner October 4, 2021 13:44
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-core (Team:Core)

Comment on lines +59 to 61
await statusPropagation();
expect((await getStatus('statusPluginA')).level).to.eql('degraded');
expect((await getStatus('statusPluginB')).level).to.eql('degraded');
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Same comment than #113214 (comment), still not sure how the PR changes introduced the added required delay, but...

);
expect(await setup.coreOverall$.pipe(first()).toPromise()).toMatchObject({
level: ServiceStatusLevels.degraded,
summary: '[2] services are degraded',
Copy link
Contributor

Choose a reason for hiding this comment

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

That makes me think we should list the names of degraded services. To avoid unnecessary noise, we can trim the summary to a reasonable limit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yea, that seems like a nice improvement. It may impact quite a few tests though, as we'll want to do the same for the global overall status, so I'll do it as a follow-up as soon as this one is merged.

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / general / Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/monitoring/elasticsearch/nodes·js.Monitoring app Elasticsearch nodes listing with offline node should sort by name

Link to Jenkins

Standard Out

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

[00:00:00]     │
[00:00:00]       └-: Monitoring app
[00:00:00]         └-> "before all" hook in "Monitoring app"
[00:05:19]         └-: Elasticsearch nodes listing
[00:05:19]           └-> "before all" hook in "Elasticsearch nodes listing"
[00:05:19]           └-: with offline node
[00:05:19]             └-> "before all" hook for "should have an Elasticsearch Cluster Summary Status with correct info"
[00:05:19]             └-> "before all" hook for "should have an Elasticsearch Cluster Summary Status with correct info"
[00:05:19]               │ debg set roles = monitoring_user,kibana_admin
[00:05:19]               │ debg creating user test_user
[00:05:19]               │ info [o.e.x.s.a.u.TransportPutUserAction] [node-01] updated user [test_user]
[00:05:19]               │ debg created user test_user
[00:05:19]               │ debg TestSubjects.exists(kibanaChrome)
[00:05:19]               │ debg Find.existsByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=2500
[00:05:20]               │ debg TestSubjects.find(kibanaChrome)
[00:05:20]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=100000
[00:05:20]               │ debg browser[INFO] http://localhost:61231/app/monitoring?_t=1633515075740#/elasticsearch?_g=(cluster_uuid:YCxj-RAgSZCP6GuOQ8M1EQ,refreshInterval:(pause:!t,value:10000),time:(from:'2017-10-05T20:31:48.354Z',to:'2017-10-05T20:35:12.176Z')) 281 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:05:20]               │
[00:05:20]               │ debg browser[INFO] http://localhost:61231/bootstrap.js 41:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:05:20]               │ proc [kibana] [2021-10-06T10:11:39.019+00:00][ERROR][plugins.monitoring.monitoring] Error: Unable to find the cluster in the selected time range. UUID: YCxj-RAgSZCP6GuOQ8M1EQ
[00:05:20]               │ proc [kibana]     at getClustersFromRequest (/dev/shm/workspace/kibana-build-23/x-pack/plugins/monitoring/server/lib/cluster/get_clusters_from_request.js:94:32)
[00:05:20]               │ proc [kibana]     at runMicrotasks (<anonymous>)
[00:05:20]               │ proc [kibana]     at processTicksAndRejections (internal/process/task_queues.js:95:5)
[00:05:20]               │ proc [kibana]     at Object.handler (/dev/shm/workspace/kibana-build-23/x-pack/plugins/monitoring/server/routes/api/v1/cluster/cluster.js:60:20)
[00:05:20]               │ proc [kibana]     at handler (/dev/shm/workspace/kibana-build-23/x-pack/plugins/monitoring/server/plugin.js:384:28)
[00:05:20]               │ proc [kibana]     at Router.handle (/dev/shm/workspace/kibana-build-23/src/core/server/http/router/router.js:163:30)
[00:05:20]               │ proc [kibana]     at handler (/dev/shm/workspace/kibana-build-23/src/core/server/http/router/router.js:124:50)
[00:05:20]               │ proc [kibana]     at exports.Manager.execute (/dev/shm/workspace/kibana-build-23/node_modules/@hapi/hapi/lib/toolkit.js:60:28)
[00:05:20]               │ proc [kibana]     at Object.internals.handler (/dev/shm/workspace/kibana-build-23/node_modules/@hapi/hapi/lib/handler.js:46:20)
[00:05:20]               │ proc [kibana]     at exports.execute (/dev/shm/workspace/kibana-build-23/node_modules/@hapi/hapi/lib/handler.js:31:20)
[00:05:20]               │ proc [kibana]     at Request._lifecycle (/dev/shm/workspace/kibana-build-23/node_modules/@hapi/hapi/lib/request.js:373:32)
[00:05:20]               │ proc [kibana]     at Request._execute (/dev/shm/workspace/kibana-build-23/node_modules/@hapi/hapi/lib/request.js:281:9)
[00:05:20]               │ERROR browser[SEVERE] http://localhost:61231/api/monitoring/v1/clusters/YCxj-RAgSZCP6GuOQ8M1EQ - Failed to load resource: the server responded with a status of 404 (Not Found)
[00:05:20]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Loading "mappings.json"
[00:05:20]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Loading "data.json.gz"
[00:05:20]               │ info [o.e.c.m.MetadataCreateIndexService] [node-01] [.monitoring-kibana-6-2017.10.05] creating index, cause [api], templates [], shards [1]/[1]
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Created index ".monitoring-kibana-6-2017.10.05"
[00:05:21]               │ debg [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] ".monitoring-kibana-6-2017.10.05" settings {"index":{"codec":"best_compression","format":"6","number_of_replicas":"1","number_of_shards":"1"}}
[00:05:21]               │ info [o.e.c.m.MetadataCreateIndexService] [node-01] [.monitoring-alerts-6] creating index, cause [api], templates [], shards [1]/[1]
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Created index ".monitoring-alerts-6"
[00:05:21]               │ debg [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] ".monitoring-alerts-6" settings {"index":{"codec":"best_compression","format":"6","number_of_replicas":"1","number_of_shards":"1"}}
[00:05:21]               │ info [o.e.c.m.MetadataCreateIndexService] [node-01] [.monitoring-logstash-6-2017.10.05] creating index, cause [api], templates [], shards [1]/[1]
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Created index ".monitoring-logstash-6-2017.10.05"
[00:05:21]               │ debg [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] ".monitoring-logstash-6-2017.10.05" settings {"index":{"codec":"best_compression","format":"6","number_of_replicas":"1","number_of_shards":"1"}}
[00:05:21]               │ info [o.e.c.m.MetadataCreateIndexService] [node-01] [.monitoring-es-6-2017.10.05] creating index, cause [api], templates [], shards [1]/[1]
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Created index ".monitoring-es-6-2017.10.05"
[00:05:21]               │ debg [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] ".monitoring-es-6-2017.10.05" settings {"index":{"codec":"best_compression","format":"6","number_of_replicas":"1","number_of_shards":"1"}}
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Indexed 21 docs into ".monitoring-kibana-6-2017.10.05"
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Indexed 1 docs into ".monitoring-alerts-6"
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Indexed 3 docs into ".monitoring-logstash-6-2017.10.05"
[00:05:21]               │ info [x-pack/test/functional/es_archives/monitoring/singlecluster_three_nodes_shard_relocation] Indexed 1317 docs into ".monitoring-es-6-2017.10.05"
[00:05:21]               │ debg replacing kibana config doc: {}
[00:05:22]               │ debg navigating to monitoring url: http://localhost:61231/app/monitoring
[00:05:22]               │ debg navigate to: http://localhost:61231/app/monitoring
[00:05:23]               │ debg browser[INFO] http://localhost:61231/app/monitoring?_t=1633515100817 281 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:05:23]               │
[00:05:23]               │ debg browser[INFO] http://localhost:61231/bootstrap.js 41:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:05:23]               │ debg ... sleep(700) start
[00:05:24]               │ debg ... sleep(700) end
[00:05:24]               │ debg returned from get, calling refresh
[00:05:25]               │ debg browser[INFO] http://localhost:61231/app/monitoring?_t=1633515100817#/loading?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now)) 281 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:05:25]               │
[00:05:25]               │ debg browser[INFO] http://localhost:61231/bootstrap.js 41:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:05:25]               │ debg currentUrl = http://localhost:61231/app/monitoring#/loading?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:05:25]               │          appUrl = http://localhost:61231/app/monitoring
[00:05:25]               │ debg TestSubjects.find(kibanaChrome)
[00:05:25]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:05:26]               │ debg ... sleep(501) start
[00:05:26]               │ proc [kibana] ResponseError: security_exception: [security_exception] Reason: action [cluster:monitor/state] is unauthorized for user [test_user] with roles [monitoring_user,kibana_admin], this action is granted by the cluster privileges [read_ccr,transport_client,manage_ccr,monitor,manage,all]
[00:05:26]               │ proc [kibana]     at onBody (/dev/shm/workspace/kibana-build-23/node_modules/@elastic/elasticsearch/lib/Transport.js:361:23)
[00:05:26]               │ proc [kibana]     at IncomingMessage.onEnd (/dev/shm/workspace/kibana-build-23/node_modules/@elastic/elasticsearch/lib/Transport.js:285:11)
[00:05:26]               │ proc [kibana]     at IncomingMessage.emit (events.js:412:35)
[00:05:26]               │ proc [kibana]     at endReadableNT (internal/streams/readable.js:1317:12)
[00:05:26]               │ proc [kibana]     at processTicksAndRejections (internal/process/task_queues.js:82:21) {
[00:05:26]               │ proc [kibana]   meta: {
[00:05:26]               │ proc [kibana]     body: { error: [Object], status: 403 },
[00:05:26]               │ proc [kibana]     statusCode: 403,
[00:05:26]               │ proc [kibana]     headers: {
[00:05:26]               │ proc [kibana]       'x-opaque-id': 'cd83c066-5d51-439a-be1e-d45253a33fb4',
[00:05:26]               │ proc [kibana]       'x-elastic-product': 'Elasticsearch',
[00:05:26]               │ proc [kibana]       'content-type': 'application/json;charset=utf-8',
[00:05:26]               │ proc [kibana]       'content-length': '555'
[00:05:26]               │ proc [kibana]     },
[00:05:26]               │ proc [kibana]     meta: {
[00:05:26]               │ proc [kibana]       context: null,
[00:05:26]               │ proc [kibana]       request: [Object],
[00:05:26]               │ proc [kibana]       name: 'elasticsearch-js',
[00:05:26]               │ proc [kibana]       connection: [Object],
[00:05:26]               │ proc [kibana]       attempts: 0,
[00:05:26]               │ proc [kibana]       aborted: false
[00:05:26]               │ proc [kibana]     }
[00:05:26]               │ proc [kibana]   }
[00:05:26]               │ proc [kibana] }
[00:05:26]               │ERROR browser[SEVERE] http://localhost:61231/api/monitoring/v1/elasticsearch_settings/check/cluster - Failed to load resource: the server responded with a status of 403 (Forbidden)
[00:05:26]               │ERROR browser[SEVERE] http://localhost:61231/api/monitoring/v1/elasticsearch_settings/check/nodes - Failed to load resource: the server responded with a status of 403 (Forbidden)
[00:05:26]               │ debg ... sleep(501) end
[00:05:26]               │ debg in navigateTo url = http://localhost:61231/app/monitoring#/no-data?_g=(filters:!(),refreshInterval:(pause:!f,value:10000),time:(from:now-15m,to:now))
[00:05:26]               │ debg pauseAutoRefresh
[00:05:26]               │ debg setting menu open state [name=QuickSelectTime Menu] [state=open]
[00:05:26]               │ debg TestSubjects.exists(superDatePickerQuickMenu)
[00:05:26]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerQuickMenu"]') with timeout=1000
[00:05:27]               │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerQuickMenu"] is not displayed
[00:05:28]               │ debg TestSubjects.click(superDatePickerToggleQuickMenuButton)
[00:05:28]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=10000
[00:05:28]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=10000
[00:05:28]               │ debg TestSubjects.exists(superDatePickerQuickMenu)
[00:05:28]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerQuickMenu"]') with timeout=10000
[00:05:28]               │ debg TestSubjects.getAttribute(superDatePickerRefreshIntervalInput, value, tryTimeout=120000, findTimeout=10000)
[00:05:28]               │ debg TestSubjects.find(superDatePickerRefreshIntervalInput)
[00:05:28]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerRefreshIntervalInput"]') with timeout=10000
[00:05:28]               │ debg TestSubjects.find(superDatePickerRefreshIntervalUnitsSelect)
[00:05:28]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerRefreshIntervalUnitsSelect"]') with timeout=10000
[00:05:28]               │ debg Find.allDescendantDisplayedByCssSelector('option')
[00:05:28]               │ debg TestSubjects.getVisibleText(superDatePickerToggleRefreshButton)
[00:05:28]               │ debg TestSubjects.find(superDatePickerToggleRefreshButton)
[00:05:28]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerToggleRefreshButton"]') with timeout=10000
[00:05:28]               │ debg pause auto refresh
[00:05:28]               │ debg TestSubjects.click(superDatePickerToggleRefreshButton)
[00:05:28]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerToggleRefreshButton"]') with timeout=10000
[00:05:28]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerToggleRefreshButton"]') with timeout=10000
[00:05:29]               │ debg setting menu open state [name=QuickSelectTime Menu] [state=closed]
[00:05:29]               │ debg TestSubjects.exists(superDatePickerQuickMenu)
[00:05:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerQuickMenu"]') with timeout=1000
[00:05:29]               │ debg TestSubjects.click(superDatePickerToggleQuickMenuButton)
[00:05:29]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=10000
[00:05:29]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=10000
[00:05:29]               │ debg Find.waitForDeletedByCssSelector('[data-test-subj="superDatePickerQuickMenu"]') with timeout=10000
[00:05:30]               │ debg Setting absolute range to Oct 5, 2017 @ 20:28:28.475 to Oct 5, 2017 @ 20:34:38.341
[00:05:30]               │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:05:30]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:05:30]               │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:05:30]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:05:30]               │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:05:30]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:05:30]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:05:30]               │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:05:30]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:05:30]               │ debg Waiting up to 20000ms for endDate is set to Oct 5, 2017 @ 20:34:38.341...
[00:05:30]               │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:05:30]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:05:30]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:05:30]               │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:05:30]               │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:05:30]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:05:30]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:05:30]               │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:05:30]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:30]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:30]               │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Oct 5, 2017 @ 20:34:38.341)
[00:05:30]               │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:05:30]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:30]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:30]               │ debg TestSubjects.getVisibleText(superDatePickerendDatePopoverButton)
[00:05:30]               │ debg TestSubjects.find(superDatePickerendDatePopoverButton)
[00:05:30]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:05:31]               │ debg Validating 'endDate' - expected: 'Oct 5, 2017 @ 20:34:38.341, actual: Oct 5, 2017 @ 20:34:38.341'
[00:05:31]               │ debg Waiting up to 20000ms for endDate is set to Oct 5, 2017 @ 20:28:28.475...
[00:05:31]               │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:05:31]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:05:31]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:05:31]               │ debg Find.waitForElementStale with timeout=10000
[00:05:31]               │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:05:31]               │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:05:31]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:05:31]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:05:31]               │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:05:31]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:31]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:31]               │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Oct 5, 2017 @ 20:28:28.475)
[00:05:31]               │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:05:31]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:31]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:05:32]               │ debg TestSubjects.getVisibleText(superDatePickerstartDatePopoverButton)
[00:05:32]               │ debg TestSubjects.find(superDatePickerstartDatePopoverButton)
[00:05:32]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:05:32]               │ debg Validating 'startDate' - expected: 'Oct 5, 2017 @ 20:28:28.475, actual: Oct 5, 2017 @ 20:28:28.475'
[00:05:32]               │ debg Waiting up to 20000ms for Timepicker popover to close...
[00:05:32]               │ debg TestSubjects.exists(superDatePickerAbsoluteDateInput)
[00:05:32]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=2500
[00:05:32]               │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerAbsoluteDateInput"] is not displayed
[00:05:35]               │ debg --- retry.tryForTime failed again with the same message...
[00:05:35]               │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:05:35]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:05:38]               │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:05:38]               │ debg TestSubjects.click(querySubmitButton)
[00:05:38]               │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:05:38]               │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:05:38]               │ debg Find.waitForElementStale with timeout=10000
[00:05:38]               │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:05:38]               │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:05:38]               │ debg TestSubjects.click(alerts-modal-remind-later-button)
[00:05:38]               │ debg Find.clickByCssSelector('[data-test-subj="alerts-modal-remind-later-button"]') with timeout=10000
[00:05:38]               │ debg Find.findByCssSelector('[data-test-subj="alerts-modal-remind-later-button"]') with timeout=10000
[00:05:39]               │ debg TestSubjects.click(clusterItemContainerElasticsearch > esNumberOfNodes)
[00:05:39]               │ debg Find.clickByCssSelector('[data-test-subj="clusterItemContainerElasticsearch"] [data-test-subj="esNumberOfNodes"]') with timeout=10000
[00:05:39]               │ debg Find.findByCssSelector('[data-test-subj="clusterItemContainerElasticsearch"] [data-test-subj="esNumberOfNodes"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.find(elasticsearchNodesListingPage)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchNodesListingPage"]') with timeout=10000
[00:05:40]             └-> should have an Elasticsearch Cluster Summary Status with correct info
[00:05:40]               └-> "before each" hook: global before each for "should have an Elasticsearch Cluster Summary Status with correct info"
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > nodesCount)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > nodesCount)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="nodesCount"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > indicesCount)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > indicesCount)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="indicesCount"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > memory)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > memory)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="memory"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > totalShards)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > totalShards)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="totalShards"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > unassignedShards)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > unassignedShards)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="unassignedShards"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > documentCount)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > documentCount)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="documentCount"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getVisibleText(elasticsearchClusterStatus > dataSize)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > dataSize)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="dataSize"]') with timeout=10000
[00:05:40]               │ debg TestSubjects.getAttribute(elasticsearchClusterStatus > statusIcon, alt, tryTimeout=120000, findTimeout=10000)
[00:05:40]               │ debg TestSubjects.find(elasticsearchClusterStatus > statusIcon)
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchClusterStatus"] [data-test-subj="statusIcon"]') with timeout=10000
[00:05:40]               └- ✓ pass  (460ms) "Monitoring app Elasticsearch nodes listing with offline node should have an Elasticsearch Cluster Summary Status with correct info"
[00:05:40]             └-> should sort by name
[00:05:40]               └-> "before each" hook: global before each for "should sort by name"
[00:05:40]               │ debg Find.clickByCssSelector('[data-test-subj="tableHeaderCell_name_0"] > button') with timeout=10000
[00:05:40]               │ debg Find.findByCssSelector('[data-test-subj="tableHeaderCell_name_0"] > button') with timeout=10000
[00:05:40]               │ debg Find.waitForDeletedByCssSelector('.euiBasicTable-loading') with timeout=5000
[00:05:41]               │ debg Find.clickByCssSelector('[data-test-subj="tableHeaderCell_name_0"] > button') with timeout=10000
[00:05:41]               │ debg Find.findByCssSelector('[data-test-subj="tableHeaderCell_name_0"] > button') with timeout=10000
[00:05:41]               │ debg Find.waitForDeletedByCssSelector('.euiBasicTable-loading') with timeout=5000
[00:05:41]               │ debg TestSubjects.getVisibleTextAll(elasticsearchNodesTableContainer > name)
[00:05:41]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > name)
[00:05:41]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="name"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.getAttributeAll(elasticsearchNodesTableContainer > statusIcon, alt)
[00:05:42]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > statusIcon)
[00:05:42]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="statusIcon"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.getVisibleTextAll(elasticsearchNodesTableContainer > cpuUsage)
[00:05:42]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > cpuUsage)
[00:05:42]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="cpuUsage"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.getVisibleTextAll(elasticsearchNodesTableContainer > loadAverage)
[00:05:42]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > loadAverage)
[00:05:42]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="loadAverage"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.getVisibleTextAll(elasticsearchNodesTableContainer > jvmMemory)
[00:05:42]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > jvmMemory)
[00:05:42]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="jvmMemory"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.getVisibleTextAll(elasticsearchNodesTableContainer > diskFreeSpace)
[00:05:42]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > diskFreeSpace)
[00:05:42]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="diskFreeSpace"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.getVisibleTextAll(elasticsearchNodesTableContainer > shards)
[00:05:42]               │ debg TestSubjects.findAll(elasticsearchNodesTableContainer > shards)
[00:05:42]               │ debg Find.allByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"] [data-test-subj="shards"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.find(elasticsearchNodesTableContainer)
[00:05:42]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"]') with timeout=10000
[00:05:42]               │ debg TestSubjects.findAllDescendant(monitoringCellIcon-cpuUsage)
[00:05:42]               │ debg Find.allDescendantDisplayedByCssSelector('[data-test-subj="monitoringCellIcon-cpuUsage"]')
[00:05:43]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-cpuUsage)
[00:05:43]               │ debg TestSubjects.findAll(monitoringCellPopover-cpuUsage)
[00:05:43]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-cpuUsage"]') with timeout=10000
[00:05:43]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-cpuUsage)
[00:05:43]               │ debg TestSubjects.findAll(monitoringCellPopover-cpuUsage)
[00:05:43]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-cpuUsage"]') with timeout=10000
[00:05:43]               │ debg TestSubjects.findAllDescendant(monitoringCellIcon-loadAverage)
[00:05:43]               │ debg Find.allDescendantDisplayedByCssSelector('[data-test-subj="monitoringCellIcon-loadAverage"]')
[00:05:44]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-loadAverage)
[00:05:44]               │ debg TestSubjects.findAll(monitoringCellPopover-loadAverage)
[00:05:44]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-loadAverage"]') with timeout=10000
[00:05:44]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-loadAverage)
[00:05:44]               │ debg TestSubjects.findAll(monitoringCellPopover-loadAverage)
[00:05:44]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-loadAverage"]') with timeout=10000
[00:05:44]               │ debg TestSubjects.findAllDescendant(monitoringCellIcon-jvmMemory)
[00:05:44]               │ debg Find.allDescendantDisplayedByCssSelector('[data-test-subj="monitoringCellIcon-jvmMemory"]')
[00:05:44]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-jvmMemory)
[00:05:44]               │ debg TestSubjects.findAll(monitoringCellPopover-jvmMemory)
[00:05:44]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-jvmMemory"]') with timeout=10000
[00:05:45]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-jvmMemory)
[00:05:45]               │ debg TestSubjects.findAll(monitoringCellPopover-jvmMemory)
[00:05:45]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-jvmMemory"]') with timeout=10000
[00:05:45]               │ debg TestSubjects.findAllDescendant(monitoringCellIcon-diskFreeSpace)
[00:05:45]               │ debg Find.allDescendantDisplayedByCssSelector('[data-test-subj="monitoringCellIcon-diskFreeSpace"]')
[00:05:45]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-diskFreeSpace)
[00:05:45]               │ debg TestSubjects.findAll(monitoringCellPopover-diskFreeSpace)
[00:05:45]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-diskFreeSpace"]') with timeout=10000
[00:05:46]               │ debg TestSubjects.getVisibleTextAll(monitoringCellPopover-diskFreeSpace)
[00:05:46]               │ debg TestSubjects.findAll(monitoringCellPopover-diskFreeSpace)
[00:05:46]               │ debg Find.allByCssSelector('[data-test-subj="monitoringCellPopover-diskFreeSpace"]') with timeout=10000
[00:05:46]               │ debg TestSubjects.find(elasticsearchNodesTableContainer)
[00:05:46]               │ debg Find.findByCssSelector('[data-test-subj="elasticsearchNodesTableContainer"]') with timeout=10000
[00:05:46]               │ info Taking screenshot "/dev/shm/workspace/parallel/23/kibana/x-pack/test/functional/screenshots/failure/Monitoring app Elasticsearch nodes listing with offline node should sort by name.png"
[00:05:46]               │ info Current URL is: http://localhost:61231/app/monitoring#/elasticsearch/nodes?_g=(cluster_uuid:YCxj-RAgSZCP6GuOQ8M1EQ,refreshInterval:(pause:!t,value:10000),time:(from:%272017-10-05T20:28:28.475Z%27,to:%272017-10-05T20:34:38.341Z%27))
[00:05:46]               │ info Saving page source to: /dev/shm/workspace/parallel/23/kibana/x-pack/test/functional/failure_debug/html/Monitoring app Elasticsearch nodes listing with offline node should sort by name.html
[00:05:46]               └- ✖ fail: Monitoring app Elasticsearch nodes listing with offline node should sort by name
[00:05:46]               │      Error: expected 'whatever-03' to equal 'whatever-01'
[00:05:46]               │       at Assertion.assert (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/expect/expect.js:100:11)
[00:05:46]               │       at Assertion.be.Assertion.equal (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/expect/expect.js:227:8)
[00:05:46]               │       at Assertion.be (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/expect/expect.js:69:22)
[00:05:46]               │       at forEach (test/functional/apps/monitoring/elasticsearch/nodes.js:175:42)
[00:05:46]               │       at Array.forEach (<anonymous>)
[00:05:46]               │       at Context.<anonymous> (test/functional/apps/monitoring/elasticsearch/nodes.js:174:18)
[00:05:46]               │       at runMicrotasks (<anonymous>)
[00:05:46]               │       at processTicksAndRejections (internal/process/task_queues.js:95:5)
[00:05:46]               │       at Object.apply (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/test/target_node/functional_test_runner/lib/mocha/wrap_function.js:87:16)
[00:05:46]               │ 
[00:05:46]               │ 

Stack Trace

Error: expected 'whatever-03' to equal 'whatever-01'
    at Assertion.assert (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/expect/expect.js:100:11)
    at Assertion.be.Assertion.equal (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/expect/expect.js:227:8)
    at Assertion.be (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/expect/expect.js:69:22)
    at forEach (test/functional/apps/monitoring/elasticsearch/nodes.js:175:42)
    at Array.forEach (<anonymous>)
    at Context.<anonymous> (test/functional/apps/monitoring/elasticsearch/nodes.js:174:18)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at Object.apply (/dev/shm/workspace/parallel/23/kibana/node_modules/@kbn/test/target_node/functional_test_runner/lib/mocha/wrap_function.js:87:16)

Metrics [docs]

✅ unchanged

History

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

@pgayvallet pgayvallet added the auto-backport Deprecated - use backport:version if exact versions are needed label Oct 6, 2021
@pgayvallet pgayvallet merged commit 0e406d1 into elastic:master Oct 6, 2021
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Oct 6, 2021
* add coreOverall$ to internal status contract

* add unit tests

* re-patch flaky tests

* add and improve tests
@kibanamachine
Copy link
Contributor

💚 Backport successful

Status Branch Result
7.x

This backport PR will be merged automatically after passing CI.

kibanamachine added a commit that referenced this pull request Oct 6, 2021
…14089)

* add `coreOverall$` to internal status contract (#113729)

* add coreOverall$ to internal status contract

* add unit tests

* re-patch flaky tests

* add and improve tests

* fix tests for 7.x

Co-authored-by: Pierre Gayvallet <pierre.gayvallet@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-backport Deprecated - use backport:version if exact versions are needed Feature:StatusPage Issues related to the Kibana Status Page and APIs release_note:enhancement Team:Core Platform Core services: plugins, logging, config, saved objects, http, ES client, i18n, etc t// v7.16.0 v8.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

/status endpoint returns 503 when any plugin is unavailable

4 participants