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] Add Index data visualizer grid embeddable as extra view within Discover #107184

Merged
merged 172 commits into from
Oct 21, 2021

Conversation

qn895
Copy link
Member

@qn895 qn895 commented Jul 29, 2021

Closes #97176

Summary

Adds the Index data visualizer grid embeddable, which was previously only available inside the ML plugin, as an additional mode to view data within Discover.

Screen Shot 2021-09-09 at 16 58 43

Small screen:
Screen Shot 2021-09-09 at 16 59 08

Changes include:

  • New settings inside Kibana advanced settings the new mode
  • Updating index patterns, saved search, search queries and filters will update content of the aggregated grid
  • Selecting the fields on the sidebar will also update the content of the table
  • Make table more compact and condensed
  • Add panel stylings around the sub content
  • Match the icons of the field types

Todos:

  • Revisit terminologies (whether 'Aggregated' vs 'Document' is a good distinction)

Follow-up PRs:

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

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 latest changes as in 57f242f and LGTM

Copy link
Member

@kertal kertal left a comment

Choose a reason for hiding this comment

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

Did a final a-la-carte test in Firefox, after testing other browsers in my recent test runs. Works as expected! My comments were addressed. Great work 🥳, welcome Data Visualizer in Discover! Time for a housewarming party!

@kibanamachine
Copy link
Contributor

kibanamachine commented Oct 20, 2021

💔 Build Failed

Failed CI Steps


Test Failures

Kibana Pipeline / jest / Jest Tests.x-pack/plugins/security/public/management/users/edit_user.EditUserPage warns when change password form submission fails

Link to Jenkins

Standard Out

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


Stack Trace

Error: thrown: "Exceeded timeout of 5000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/x-pack/plugins/security/public/management/users/edit_user/edit_user_page.test.tsx:291:3
    at _dispatchDescribe (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/index.js:67:26)
    at describe (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/index.js:30:5)
    at Object.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/x-pack/plugins/security/public/management/users/edit_user/edit_user_page.test.tsx:37:1)
    at Runtime._execModule (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runtime/build/index.js:1299:24)
    at Runtime._loadModule (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runtime/build/index.js:898:12)
    at Runtime.requireModule (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runtime/build/index.js:746:10)
    at jestAdapter (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:106:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at runTestInternal (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/runTest.js:380:16)
    at runTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/runTest.js:472:34)
    at Object.worker (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/testWorker.js:133:12)

Kibana Pipeline / jest / Jest Tests.x-pack/plugins/security/public/management/users/edit_user.EditUserPage validates change password form

Link to Jenkins

Standard Out

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


Stack Trace

Error: thrown: "Exceeded timeout of 5000 ms for a test.
Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/x-pack/plugins/security/public/management/users/edit_user/edit_user_page.test.tsx:328:3
    at _dispatchDescribe (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/index.js:67:26)
    at describe (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/index.js:30:5)
    at Object.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/x-pack/plugins/security/public/management/users/edit_user/edit_user_page.test.tsx:37:1)
    at Runtime._execModule (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runtime/build/index.js:1299:24)
    at Runtime._loadModule (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runtime/build/index.js:898:12)
    at Runtime.requireModule (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runtime/build/index.js:746:10)
    at jestAdapter (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:106:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at runTestInternal (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/runTest.js:380:16)
    at runTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/runTest.js:472:34)
    at Object.worker (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/testWorker.js:133:12)

Kibana Pipeline / jest / Jest Tests.x-pack/plugins/security/public/management/users/edit_user.EditUserPage deactivates user when confirming and closes dialog

Link to Jenkins

Standard Out

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


Stack Trace

TestingLibraryElementError: Unable to find an accessible element with the role "dialog"

Here are the accessible roles:

  banner:

  Name "":
  <header
    class="euiPageHeader euiPageHeader--bottomBorder euiPageHeader--responsive euiPageHeader--center"
  />

  --------------------------------------------------
  heading:

  Name "jdoe jdoe":
  <h1
    class="euiTitle euiTitle--large"
  />

  Name "jdoe":
  <h1
    class="euiTitle euiTitle--medium"
  />

  Name "Profile":
  <h2
    class="euiTitle euiTitle--xsmall euiDescribedFormGroup__title"
  />

  Name "Privileges":
  <h2
    class="euiTitle euiTitle--xsmall euiDescribedFormGroup__title"
  />

  --------------------------------------------------
  group:

  Name "":
  <div
    class="euiDescribedFormGroup"
    role="group"
  />

  Name "":
  <div
    class="euiDescribedFormGroup"
    role="group"
  />

  --------------------------------------------------
  textbox:

  Name "Username":
  <input
    aria-describedby="id-0.9292334792398829-help-0"
    class="euiFieldText euiFieldText--withIcon"
    data-test-subj="userFormUserNameInput"
    disabled=""
    id="id-0.9292334792398829"
    name="username"
    type="text"
    value="jdoe"
  />

  Name "Full name":
  <input
    class="euiFieldText"
    data-test-subj="userFormFullNameInput"
    id="id-0.666817494663307"
    name="full_name"
    type="text"
    value=""
  />

  Name "Email address":
  <input
    class="euiFieldText"
    data-test-subj="userFormEmailInput"
    id="id-0.48386803107921184"
    name="email"
    type="text"
    value=""
  />

  Name "Roles":
  <input
    aria-controls=""
    data-test-subj="comboBoxSearchInput"
    id="id-0.44093246829800625"
    role="textbox"
    style="box-sizing: content-box; width: 2px;"
    value=""
  />

  --------------------------------------------------
  combobox:

  Name "":
  <div
    aria-expanded="false"
    aria-haspopup="listbox"
    class="euiComboBox"
    data-test-subj="rolesDropdown"
    role="combobox"
  />

  --------------------------------------------------
  button:

  Name "Remove superuser from selection in this group":
  <button
    aria-label="Remove superuser from selection in this group"
    class="euiBadge__iconButton"
    title="Remove superuser from selection in this group"
    type="button"
  />

  Name "Clear input":
  <button
    aria-label="Clear input"
    class="euiFormControlLayoutClearButton"
    data-test-subj="comboBoxClearButton"
    type="button"
  />

  Name "Open list of options":
  <button
    aria-label="Open list of options"
    class="euiFormControlLayoutCustomIcon euiFormControlLayoutCustomIcon--clickable"
    data-test-subj="comboBoxToggleListButton"
    type="button"
  />

  Name "Update user":
  <button
    class="euiButton euiButton--primary euiButton--fill"
    type="submit"
  />

  Name "Cancel":
  <button
    class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--flushLeft"
    type="button"
  />

  Name "Change password":
  <button
    class="euiButton euiButton--primary euiButton--small"
    type="button"
  />

  Name "Deactivate user":
  <button
    class="euiButton euiButton--primary euiButton--small"
    type="button"
  />

  Name "Delete user":
  <button
    class="euiButton euiButton--danger euiButton--small"
    type="button"
  />

  --------------------------------------------------
  link:

  Name "Learn what privileges individual roles grant. External link (opens in a new tab or window)":
  <a
    class="euiLink euiLink--primary"
    href="https://www.elastic.co/guide/en/elasticsearch/reference/mocked-test-branch/built-in-roles.html"
    rel="noopener"
    target="_blank"
  />

  --------------------------------------------------
  separator:

  Name "":
  <hr
    class="euiHorizontalRule euiHorizontalRule--full euiHorizontalRule--marginLarge"
  />

  --------------------------------------------------
  definition:

  Name "":
  <dd
    class="euiDescriptionList__description"
  />

  Name "":
  <dd
    class="euiDescriptionList__description"
  />

  Name "":
  <dd
    class="euiDescriptionList__description"
  />

  --------------------------------------------------

<body>
  <div>
    <header
      class="euiPageHeader euiPageHeader--bottomBorder euiPageHeader--responsive euiPageHeader--center"
    >
      <div
        class="euiPageHeaderContent"
      >
        <div
          class="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsFlexStart euiFlexGroup--directionRow euiFlexGroup--responsive euiPageHeaderContent__top"
        >
          <div
            class="euiFlexItem"
          >
            <h1
              class="euiTitle euiTitle--large"
            >
              <div
                class="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
              >
                <div
                  class="euiFlexItem euiFlexItem--flexGrowZero"
                >
                  <div
                    aria-label="jdoe"
                    class="euiAvatar euiAvatar--xl euiAvatar--user"
                    style="background-color: rgb(228, 166, 199); color: rgb(0, 0, 0);"
                    title="jdoe"
                  >
                    <span
                      aria-hidden="true"
                    >
                      j
                    </span>
                  </div>
                </div>
                <div
                  class="euiFlexItem"
                >
                  <h1
                    class="euiTitle euiTitle--medium"
                  >
                    jdoe
                  </h1>
                  <div
                    class="euiText euiText--medium"
                  />
                </div>
              </div>
            </h1>
          </div>
        </div>
      </div>
    </header>
    <div
      class="euiSpacer euiSpacer--l"
    />
    <form
      class="euiForm"
      novalidate=""
    >
      <div
        class="euiDescribedFormGroup"
        role="group"
      >
        <div
          class="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--directionRow euiFlexGroup--responsive"
        >
          <div
            class="euiFlexItem"
          >
            <h2
              class="euiTitle euiTitle--xsmall euiDescribedFormGroup__title"
            >
              Profile
            </h2>
            <div
              class="euiText euiText--small euiDescribedFormGroup__description"
            >
              <div
                class="euiTextColor euiTextColor--subdued"
              >
                Provide personal details.
              </div>
            </div>
          </div>
          <div
            class="euiFlexItem euiDescribedFormGroup__fields euiDescribedFormGroup__fieldPadding--xsmall"
          >
            <div
              class="euiFormRow"
              id="id-0.9292334792398829-row"
            >
              <div
                class="euiFormRow__labelWrapper"
              >
                <label
                  class="euiFormLabel euiFormRow__label"
                  for="id-0.9292334792398829"
                >
                  Username
                </label>
              </div>
              <div
                class="euiFormRow__fieldWrapper"
              >
                <div
                  class="euiFormControlLayout"
                >
                  <div
                    class="euiFormControlLayout__childrenWrapper"
                  >
                    <input
                      aria-describedby="id-0.9292334792398829-help-0"
                      class="euiFieldText euiFieldText--withIcon"
                      data-test-subj="userFormUserNameInput"
                      disabled=""
                      id="id-0.9292334792398829"
                      name="username"
                      type="text"
                      value="jdoe"
                    />
                    <div
                      class="euiFormControlLayoutIcons"
                    >
                      <span
                        class="euiFormControlLayoutCustomIcon"
                      >
                        <span
                          aria-hidden="true"
                          class="euiFormControlLayoutCustomIcon__icon"
                          data-euiicon-type="user"
                        />
                      </span>
                    </div>
                  </div>
                </div>
                <div
                  class="euiFormHelpText euiFormRow__text"
                  id="id-0.9292334792398829-help-0"
                >
                  Username can't be changed once created.
                </div>
              </div>
            </div>
            <div
              class="euiFormRow"
              id="id-0.666817494663307-row"
            >
              <div
                class="euiFormRow__labelWrapper"
              >
                <label
                  class="euiFormLabel euiFormRow__label"
                  for="id-0.666817494663307"
                ...
    at Object.getElementError (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/@testing-library/dom/dist/query-helpers.js:90:38
    at /var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/@testing-library/dom/dist/query-helpers.js:62:17
    at getByRole (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/@testing-library/dom/dist/query-helpers.js:111:19)
    at Object.<anonymous> (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/x-pack/plugins/security/public/management/users/edit_user/edit_user_page.test.tsx:389:20)
    at _callCircusTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/run.js:212:5)
    at _runTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/run.js:149:3)
    at _runTestsForDescribeBlock (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/run.js:63:9)
    at _runTestsForDescribeBlock (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/run.js:57:9)
    at run (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/run.js:25:3)
    at runAndTransformResultsToJestFormat (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:176:21)
    at jestAdapter (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:109:19)
    at runTestInternal (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/runTest.js:380:16)
    at runTest (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/runTest.js:472:34)
    at Object.worker (/var/lib/jenkins/workspace/elastic+kibana+pipeline-pull-request/kibana/node_modules/jest-runner/build/testWorker.js:133:12)

and 3 more failures, only showing the first 3.

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dataVisualizer 350 356 +6
discover 400 415 +15
total +21

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
discover 55 58 +3

Async chunks

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

id before after diff
dataVisualizer 533.0KB 545.6KB +12.6KB
discover 332.9KB 339.1KB +6.2KB
total +18.7KB

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
discover 6 7 +1

Page load bundle

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

id before after diff
dataVisualizer 9.0KB 10.3KB +1.3KB
discover 22.4KB 22.7KB +290.0B
total +1.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
search 10 12 +2
Unknown metric groups

API count

id before after diff
discover 81 84 +3

async chunk count

id before after diff
dataVisualizer 2 5 +3

References to deprecated APIs

id before after diff
dataVisualizer 242 252 +10
discover 1797 1824 +27
total +37

History

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

cc @qn895

@qn895
Copy link
Member Author

qn895 commented Oct 20, 2021

@elasticmachine merge upstream

@kibanamachine
Copy link
Contributor

⏳ Build in-progress, with failures

Failed CI Steps

Test Failures

  • [job] [logs] Jest Integration Tests / builds a generated plugin into a viable archive

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

cc @qn895

@kibanamachine
Copy link
Contributor

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] Jest Integration Tests / builds a generated plugin into a viable archive

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dataVisualizer 350 356 +6
discover 400 415 +15
total +21

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
discover 55 58 +3

Async chunks

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

id before after diff
dataVisualizer 533.0KB 545.6KB +12.6KB
discover 332.9KB 339.1KB +6.2KB
total +18.7KB

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
discover 6 7 +1

Page load bundle

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

id before after diff
dataVisualizer 9.0KB 10.3KB +1.3KB
discover 22.4KB 22.7KB +290.0B
total +1.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
search 10 12 +2
Unknown metric groups

API count

id before after diff
discover 81 84 +3

async chunk count

id before after diff
dataVisualizer 2 5 +3

References to deprecated APIs

id before after diff
dataVisualizer 242 252 +10
discover 1797 1824 +27
total +37

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

cc @qn895

@qn895
Copy link
Member Author

qn895 commented Oct 20, 2021

@elasticmachine merge upstream

@kibanamachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dataVisualizer 350 356 +6
discover 400 415 +15
total +21

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
discover 55 58 +3

Async chunks

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

id before after diff
dataVisualizer 533.0KB 545.6KB +12.6KB
discover 332.9KB 339.1KB +6.2KB
total +18.7KB

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
discover 6 7 +1

Page load bundle

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

id before after diff
dataVisualizer 9.0KB 10.3KB +1.3KB
discover 22.4KB 22.7KB +290.0B
total +1.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
search 10 12 +2
Unknown metric groups

API count

id before after diff
discover 81 84 +3

async chunk count

id before after diff
dataVisualizer 2 5 +3

References to deprecated APIs

id before after diff
dataVisualizer 242 252 +10
discover 1797 1824 +27
total +37

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

cc @qn895

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
dataVisualizer 350 356 +6
discover 400 415 +15
total +21

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
discover 55 58 +3

Async chunks

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

id before after diff
dataVisualizer 532.9KB 545.4KB +12.6KB
discover 332.9KB 339.0KB +6.2KB
total +18.7KB

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
discover 6 7 +1

Page load bundle

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

id before after diff
dataVisualizer 9.0KB 10.3KB +1.3KB
discover 22.4KB 22.7KB +290.0B
total +1.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
search 10 12 +2
Unknown metric groups

API count

id before after diff
discover 81 84 +3

async chunk count

id before after diff
dataVisualizer 2 5 +3

References to deprecated APIs

id before after diff
dataVisualizer 242 252 +10
discover 1797 1824 +27
total +37

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

cc @qn895

@qn895 qn895 added the auto-backport Deprecated - use backport:version if exact versions are needed label Oct 21, 2021
@qn895 qn895 enabled auto-merge (squash) October 21, 2021 17:17
@qn895 qn895 dismissed andreadelrio’s stale review October 21, 2021 17:20

As discussed in Slack, design changes will be finalized in upcoming releases after we get more feedback in 8.0.0

Copy link
Contributor

@andreadelrio andreadelrio left a comment

Choose a reason for hiding this comment

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

@qn895 thank you so much for all your hard work on this and for being receptive to feedback. I look forward to keep refining the design of this in the future.

@qn895 qn895 merged commit 6600f1a into elastic:master Oct 21, 2021
@kibanamachine
Copy link
Contributor

💔 Backport failed

The backport operation could not be completed due to the following error:
There are no branches to backport to. Aborting.

The backport PRs will be merged automatically after passing CI.

To backport manually run:
node scripts/backport --pr 107184

shivindera pushed a commit to shivindera/kibana that referenced this pull request Oct 25, 2021
…iscover (elastic#107184)

* [ML] Initial embed

* [ML] Initial embed props

* [ML] Add top nav link to data viz

* Add visible fields

* Add add data service to register links

* Renames, refactor, use constants

* Renames, refactor, use constants

* Update tests and mocks

* Embeddable

* Update hook to update upon time udpate

* Add filter support to query

* Refactor filter utilities

* Add filter support for embeddable

* Fix saved search data undefined

* Prototype aggregated view/document view switcher

* Prototype flyout

* Prototype save document view option in storage

* Fix filter and query conflict with saved search

* Minor styling edits

* [ML] Initial embed

* [ML] Initial embed props

* Add embeddable 1

* Add visible fields

* Embeddable 2

* Add filter support to query

* Refactor filter utilities

* Add filter support for embeddable

* Fix saved search data undefined

* Prototype aggregated view/document view switcher

* Prototype flyout

* Prototype save document view option in storage

* Fix filter and query conflict with saved search

* Minor styling edits

* Fix missing code after conflicts

* Remove dv locator and flyout

* Make types happy

* Fix types

* Rename toggle option

* Resolve conflicts

* [ML] Reduce size of chart

* [ML] Unbold name, switch icons of show distributions

* [ML] Make size consistent

* [ML] Make page size 25

* [ML] Switch to arrow right and down

* [ML] Make legend font smaller

* [ML] Add user setting

* [ML] Add show preview by default setting

* [ML] Match icon

* Add panels around the subcontent

* Add preference for aggregated vs doc

* Fix types

* Fix types, add constants for adv settings

* Change to data view type

* Temp fix for Kibana/EUI table overflow issue

* Modify line height so text is not cut off, modify widths for varying screen sizes

* Different width padders for different screens

* Fix CI

* Merge latest, move button to the right

* Fix width for bar charts previews

* Fix toggle buttons, fix maps

* Delete unused file

* Fix boolean styling

* Change to enum, discover mode

* Hide field stats

* Hide field stats

* Persist show mini preview/distribution settings

* Remove window size, use size observer instead

* Default to document view

* Remove bold, switch icon

* Set fixed width for top values, reduce font size in table

* Fix custom url tests

* Update width styling for panels

* Fix missing flag for Discover sidebar, jest tests

* Fix max width

* Workaround for sorting

* Fix import

* Fix styling

* Make height uniform, center alignment, fix map and keyword map not same size

Move styling

* Revert "Make height uniform, center alignment, fix map and keyword map not same size"

This reverts commit 8fc42e2

* Revert "Make height uniform, center alignment, fix map and keyword map not same size"

This reverts commit 8fc42e2

* Uniform height, left aligned, flex grid

* Switch top values to have labels

* Center content

* Replace fixed widths with percentage

* Fix table missing field types

* Add dashboard embeddable and filter support

* Fix file data viz styling and tests, lean up imports, remove hard coded pixels

* Add search panel/kql filter bar

* Temporarily fix scrolling

* New kql filters for data visualizer

* Set map height so it will fit the sampler shard size text

* Use eui progress labels

* Fix spacer

* Add beta badge

* Temporarily fix scrolling

* Fix grow for Top Values for

* [ML] Update functional tests to reflect new arrow icons

* [ML] Add filter buttons and KQL bars

* [ML] Update filter bar onChange behavior

* [ML] Update top values filter onChange behavior

* [ML] Update search filters when opening saved search

* [ML] Clean up

* [ML] Remove fit content for height

* [ML] Fix boolean legend

* [ML] Fix header section when browser width is small to large and when index pattern title is too large

* [ML] Hide expander icon when dimension is xs or s & css fixes

* [ML] Delete embeddables because they are not use

* [ML] Rename view mode, refactor to separate hook, add error prompt if can't show, rename wrapper, clean up & fix tests

* [ML] Make doc count 0 for empty fields, update t/f test

* [ML] Add unit testing for search utils

* Fix missing unsubscribe for embeddable output

* Remove redundant onAddFilter for this PR, fix width

* Rename Field Stats to Field stats to match convention

* [ML] Fix expand all/collapse all behavior to override individual setting

* [ML] Fix functional tests should be 0/0%

* [ML] Fix docs content spacing, rename classnames, add filters to Discover, lens, and maps

* [ML] Fix doc count for fields that exists but have no stats

* [ML] Fix icon styling to match Discover but have text/keyword/histogram

* [ML] Fix doc count for fields that exists but have no stats

* [ML] Rename classnames to BEM style

* Resolve latest changes

* [ML] Add tests for data viz in Discover

* Update tests & dashboard behavior to reflect new advanced settings

* Update telemetry

* Remove workaround after eui bump fix

* Fix missing bool clause

* Add login

* Fix saved search attributes broken with latest changes

* Update tests

* Fix import

* Match the no results found

* Fix query util to return search source's results right away. Fix texts.

* Rename old test suits to farequoteDataViewTestData

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
@kibanamachine
Copy link
Contributor

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

@kibanamachine kibanamachine added the backport missing Added to PRs automatically when the are determined to be missing a backport. label Oct 25, 2021
@timroes timroes added the backport:skip This commit does not require backporting label Oct 26, 2021
@kibanamachine kibanamachine removed the backport missing Added to PRs automatically when the are determined to be missing a backport. label Oct 26, 2021
@peteharverson peteharverson removed the auto-backport Deprecated - use backport:version if exact versions are needed label Oct 26, 2021
@qn895 qn895 deleted the ml-discover-embeddable-integration branch December 8, 2021 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting Feature:Discover Discover Application Feature:File and Index Data Viz ML file and index data visualizer :ml release_note:enhancement v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Discover] Add Data Visualizer plugin to Discover