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

[Controls] TEMPORARY Integrate on dashboard #115477

Closed
wants to merge 18 commits into from

Conversation

ThomThomson
Copy link
Contributor

Summary

This is a temporary PR to check CI. Will be replaced after #115122 is merged into master.

Checklist

Delete any items that are not applicable to this PR.

Risk Matrix

Delete this section if it is not applicable to this PR.

Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release.

When forming the risk matrix, consider some of the following examples and how they may potentially impact the change:

Risk Probability Severity Mitigation/Notes
Multiple Spaces—unexpected behavior in non-default Kibana Space. Low High Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces.
Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. High Low Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure.
Code should gracefully handle cases when feature X or plugin Y are disabled. Medium High Unit tests will verify that any feature flag or plugin combination still results in our service operational.
See more potential risk examples

For maintainers

@ThomThomson ThomThomson force-pushed the controls/createFilters branch from b6fe466 to 66b3582 Compare October 19, 2021 15:23
@kibanamachine
Copy link
Contributor

kibanamachine commented Oct 19, 2021

💔 Build Failed

Failed CI Steps


Test Failures

Kibana Pipeline / jest / Jest Tests.src/plugins/dashboard/public/application/hooks.Dashboard container lifecycle Dashboard container is destroyed on unmount

Link to Jenkins

Standard Out

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


Stack Trace

TypeError: Cannot read properties of undefined (reading 'labsService')
    at new DashboardContainer (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx:119:33)
    at setupEmbeddableFactory (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:97:30)
    at renderDashboardAppStateHook (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:130:35)
    at Object.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:147:59)
    at Object.asyncJestTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:45:12
    at new Promise (<anonymous>)
    at mapper (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:28:19)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:75:41
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

Kibana Pipeline / jest / Jest Tests.src/plugins/dashboard/public/application/hooks.Dashboard container lifecycle Old dashboard container is destroyed when new dashboardId is given

Link to Jenkins

Standard Out

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


Stack Trace

TypeError: Cannot read properties of undefined (reading 'labsService')
    at new DashboardContainer (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx:119:33)
    at setupEmbeddableFactory (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:97:30)
    at renderDashboardAppStateHook (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:130:35)
    at Object.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:160:69)
    at Object.asyncJestTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:45:12
    at new Promise (<anonymous>)
    at mapper (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:28:19)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:75:41
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

Kibana Pipeline / jest / Jest Tests.src/plugins/dashboard/public/application/hooks.Dashboard container lifecycle Dashboard container is destroyed if dashboard id is changed before container is resolved

Link to Jenkins

Standard Out

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


Stack Trace

TypeError: Cannot read properties of undefined (reading 'labsService')
    at new DashboardContainer (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx:119:33)
    at setupEmbeddableFactory (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:97:30)
    at renderDashboardAppStateHook (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:130:35)
    at Object.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.test.tsx:184:69)
    at Object.asyncJestTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:106:37)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:45:12
    at new Promise (<anonymous>)
    at mapper (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:28:19)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-jasmine2/build/queueRunner.js:75:41
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

and 160 more failures, only showing the first 3.

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dashboard 219 305 +86
presentationUtil 124 314 +190
total +276

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
dashboard 134 138 +4
presentationUtil 151 215 +64
total +68

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
dashboard 143.1KB 142.9KB -161.0B
presentationUtil 43.1KB 43.2KB +91.0B
total -70.0B

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
dashboard 10 11 +1
presentationUtil 6 8 +2
total +3

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff errors
dashboard 168.4KB 209.0KB +40.6KB ❌ 26.6KB over limit
presentationUtil 43.4KB 293.4KB ⚠️ +250.0KB ❌ 201.3KB over limit
total +290.6KB

Saved Objects .kibana field count

Every field in each saved object type adds overhead to Elasticsearch. Kibana needs to keep the total field count below Elasticsearch's default limit of 1000 fields. Only specify field mappings for the fields you wish to search on or query. See https://www.elastic.co/guide/en/kibana/master/development-plugin-saved-objects.html#_mappings

id before after diff
dashboard 17 20 +3
Unknown metric groups

API count

id before after diff
dashboard 147 151 +4
presentationUtil 178 244 +66
total +70

References to deprecated APIs

id before after diff
presentationUtil 4 12 +8

History

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

@kibanamachine
Copy link
Contributor

kibanamachine commented Oct 21, 2021

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] Jest Tests / editor_frame datasource public api communication should give access to the datasource state in the datasource factory function
  • [job] [logs] Jest Tests / editor_frame initialization should initialize visualization state and render config panel
  • [job] [logs] Jest Tests / editor_frame initialization should not render something before all datasources are initialized
  • [job] [logs] Jest Tests / editor_frame initialization should render individual expression for each given layer
  • [job] [logs] Jest Tests / editor_frame initialization should render the resulting expression using the expression renderer
  • [job] [logs] Jest Tests / editor_frame state update should re-render config panel after state update
  • [job] [logs] Jest Tests / editor_frame state update should re-render config panel with updated datasource api after datasource state update
  • [job] [logs] Jest Tests / editor_frame state update should re-render data panel after state update
  • [job] [logs] Jest Tests / editor_frame suggestions should display top 5 suggestions in descending order
  • [job] [logs] Jest Tests / editor_frame suggestions should fetch suggestions of all visualizations
  • [job] [logs] Jest Tests / editor_frame suggestions should fetch suggestions of currently active datasource
  • [job] [logs] Jest Tests / editor_frame suggestions should switch to best suggested visualization on field drop
  • [job] [logs] Jest Tests / editor_frame suggestions should switch to suggested visualization
  • [job] [logs] Jest Tests / editor_frame suggestions should use the currently selected visualization if possible on field drop
  • [job] [logs] Jest Tests / editor_frame suggestions should use the highest priority suggestion available
  • [job] [logs] Jest Tests / editor_frame switching should call datasource render with new state on switch
  • [job] [logs] Jest Tests / editor_frame switching should fall back when switching visualizations if the visualization has no suggested use
  • [job] [logs] Jest Tests / editor_frame switching should initialize other datasource on switch
  • [job] [logs] Jest Tests / editor_frame switching should initialize other visualization on switch
  • [job] [logs] Jest Tests / editor_frame switching should use suggestions to switch to new visualization
  • [job] [logs] Default CI Group #3 / machine learning anomaly detection annotations with errors "before all" hook for "displays error on broken annotation index and recovers after fix"
  • [job] [logs] Default CI Group #3 / machine learning anomaly detection annotations with errors "before all" hook for "displays error on broken annotation index and recovers after fix"
  • [job] [logs] Default CI Group #1 / Stack Management registers all UI Settings in the UsageStats interface
  • [job] [logs] Default CI Group #1 / Stack Management registers all UI Settings in the UsageStats interface

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dashboard 219 305 +86
presentationUtil 124 321 +197
total +283

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
dashboard 143.1KB 143.3KB +257.0B
presentationUtil 43.1KB 43.2KB +91.0B
total +348.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff errors
dashboard 168.4KB 210.4KB +42.0KB ❌ 28.0KB over limit
presentationUtil 43.4KB 295.3KB ⚠️ +251.9KB ❌ 203.2KB over limit
total +293.9KB

Saved Objects .kibana field count

Every field in each saved object type adds overhead to Elasticsearch. Kibana needs to keep the total field count below Elasticsearch's default limit of 1000 fields. Only specify field mappings for the fields you wish to search on or query. See https://www.elastic.co/guide/en/kibana/master/development-plugin-saved-objects.html#_mappings

id before after diff
dashboard 17 20 +3

History

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

@ThomThomson
Copy link
Contributor Author

Closing in favour of #115991

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

Successfully merging this pull request may close these issues.

3 participants