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

[Logs onboarding] Configuration step for custom logs #5

Draft
wants to merge 76 commits into
base: logs-onboarding-landing-page-154928
Choose a base branch
from

Conversation

ogupte
Copy link
Owner

@ogupte ogupte commented Apr 27, 2023

Closes elastic#155964.

Depends on elastic#155961

Screenshot 2023-04-26 at 10 23 08 PM

afharo and others added 24 commits April 26, 2023 22:49
## Summary

Fix elastic#155792

Bump `moment-timezone` from `0.5.34` to `0.5.43` (latest version) to
include latest timezone changes

## Release Note

Fix a bug causing the latest timezone changes to not be taken into
account for date formatting (e.g Mexico 2023)
…lorerViewsClient (elastic#155878)

## 📓 Summary

Depends on elastic#154900
Closes elastic#155112  

This PR implements the `InventoryViewsService` and
`InventoryViewsClient`, injecting an instance of the client in the
KibanaContextForPlugin and exposing so a set of utilities to
retrieve/update inventory views:
- `findMetricsExplorerViews`
- `getMetricsExplorerView`
- `createMetricsExplorerView`
- `updateMetricsExplorerView`
- `deleteMetricsExplorerView`

## 👣 Next steps
- Implement elastic#154725 to consume the service

---------

Co-authored-by: Marco Antonio Ghiani <[email protected]>
Co-authored-by: Carlos Crespo <[email protected]>
…155866)

## Summary

This PR wraps rendering of FieldPopover with additional try/catch and
error boundary so we can look into exceptions if they happen.
…ic#155519)

This PR adds e2e test run on real endpoint for coverage of isolate,
processes, kill-process and suspend-process commands from respond
console.

Depends on elastic#155360
elastic#155113)

## Summary

Part of elastic#147646

It passes the custom timerange to the converted Lens panel for both by
ref and by value legacy visualizations.
It works for all paths:
- Edit visualization--> Edit in Lens--> Replace in dashboard
- Convert to Lens --> Replace in dashboard


![2](https://user-images.githubusercontent.com/17003240/233287641-82fe190d-5b92-4368-ace8-0b576a46d32a.gif)

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: Marco Liberati <[email protected]>
Fixes the error 
```
"script_stack": [
            "[email protected]/org.elasticsearch.index.fielddata.ScriptDocValues.throwIfEmpty(ScriptDocValues.java:92)",
            "[email protected]/org.elasticsearch.index.fielddata.ScriptDocValues$Longs.get(ScriptDocValues.java:110)",
            "[email protected]/org.elasticsearch.index.fielddata.ScriptDocValues$Longs.getValue(ScriptDocValues.java:105)",
            """total = useCgroupLimit ? doc[limitKey].value : doc['system.memory.total'].value;

    double """,
            "                                                                         ^---- HERE"


```

connected elastic/sdh-apm#765 (internal)

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Søren Louv-Jansen <[email protected]>
## Summary

Closes elastic#155369


### Checklist

Delete any items that are not applicable to this PR.

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

### For maintainers

- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: kibanamachine <[email protected]>
## Summary

This PR adds a technical control to prevent incompatible mappings
changes. These include:

1. Removing mapped fields. For the foreseeable future we require that
teams only introduce new fields - in short: this avoids the "reindex"
step in our migrations.
2. Changing the type of a field. We leverage ES to determine whether a
given set of mappings can be applied "on top" of another. Similarly,
this avoids the "reindex" step in migrations.

The above checks depend on a snapshot of the mappings from `main`, these
are the "current" mappings and are extracted from plugin code. This PR
will bootstrap `main` with an initial set of mappings extracted from
plugins (bulk of new lines added).

## The new CLI

See the added `README.md` for details on how the CLI works.

## How will it work?

Any new PR that introduces compatible mappings changes will result in a
new snapshot being captured, then merged to main for other PRs to merge
and run the same checks against (currently committing new snapshots
happens in the CI check so there is no manual step of maintaining the
snapshot).

## Additional

We should consider combining this CI check with the existing check in
`src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts`.
Hopefully we can automate the check such that no manual review is needed
from Core, not sure how we might cover the hash of the non-mappings
related fields. We could consider narrowing the Jest test to exclude
mappings.

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: spalger <[email protected]>
…es should return to the documents view (elastic#152572)

Closes elastic#152485
~Would be better to override this somewhere in app state management
logic but I could not find a right place for it.~ Done

Current changes make sure that for text-based queries only grid view is
possible (both on Discover and as embeddable) and the app state will be
updated accordingly.
…ic#155942)

This PR fixes a few integration tests that were failing because the
ordering of the bulk creation of attachments isn't guaranteed. The
solution is to compare the results ignoring ordering within the arrays.

Fixes: elastic#154640

Flaky test runner results:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2178
🟢
## Summary

This PR adds a panel with 3 stages of ELSER trained model deployment:
- Model is not deployed (with button to initiate deployment)
- Model is deploying (polling status every 5 seconds)
- Model has deployed

Note that deploying the model does not start it; this will be
implemented in a follow-up PR.

The panel is discardable in the Pipelines screen but not discardable in
the pipeline configuration flyout.
…abstraction (elastic#155342)

## Summary

Abstract schema definitions for using Saved Objects with the content
management api. For most schema types, this will reduce creation to only
the attributes specific to a saved object. For Option types (create
options, update options, search options) the saved object api is more
complex and its likely that most SO types will only need to use a
portion of it. In these cases we recommend using the provided schema
definitions as a pattern for creating simpler schemas.

Follow up to - elastic#154985 - expresses
types in schema form

---------

Co-authored-by: kibanamachine <[email protected]>
…nt_agent.js` CLI tool (elastic#155730)

## Summary

As a follow up to PR elastic#155455 : 

- `run_endpoint_agent` CLI: Removed internal code that handles the
creation of a VM and the enrollment of the agent with fleet and replaced
it with use of methods now found in `endpoint_host_services`
- created new service for managing agent download cache on local system
- enhanced `run_endpoint_agent` to use cached version of agent download,
and thus increase the performance of this tool
kibanamachine and others added 30 commits April 27, 2023 16:39
elastic#156003)

## Summary

issue: elastic#155995

Clean the deprecated SO client in the UI used in the
`useDashboardButtonHref` hook.
This is part of Serverless improvements.

This PR also changes the button to open the integrated Security
Dashboard viewer page, instead of the external Dashboards app.

### Changes:

- Changed SavedObject client direct query by the
`findDashboardsService`.
- Changed the link to the external Dashboards app by the Security
Dashboards page (including urlState parameters to preserve the time
range).
- Added "open in new tab" icon to the button
- Refactoring names to stay consistent

### Demo:



https://user-images.githubusercontent.com/17747913/234864463-75d08cf6-58d2-4a0d-b5fb-aae4e642b534.mov
## Summary

Moves a series of Lens components to an independent plugin for reuse in
the annotations library.


### Checklist

Delete any items that are not applicable to this PR.
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] remove mentions of Lens

---------

Co-authored-by: kibanamachine <[email protected]>
…ude (elastic#156122)

## Summary

Defend for containers (policy UI) fix:
- Fix to unused selector badge showing when selector used as exclude
…lastic#155816)

## Summary

Unskip and fix flaky partial results test in search examples plugin.

Flaky test runner x100:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2172.

Fixes elastic#116038.

### Checklist

- [ ] ~Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)~
- [ ]
~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials~
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] ~Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard
accessibility](https://webaim.org/techniques/keyboard/))~
- [ ] ~Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))~
- [ ] ~If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~
- [ ] ~This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))~
- [ ] ~This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)~

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
**The API for the link definition is subject to change.** This PR
provides linking functionality and structure that will give solution
devs a starting point for side nav in their projects. The API uses
simple hrefs for now, because it's the easiest thing to start with.
Planning forward, we are thinking of a different navigation model that
separates nav structure from presentation of each nav item - this will
allow reuse of the structure without reusing the presentation.

## Isolated dependencies
In order for this component to be usable in `main`, a bit further work
is currently required in the ChromeStart service and the Serverless
plugin. These links are examples of a usable implementation that link to
a POC branch:
* Light mode for the side nav container:
tsullivan@0a32333cdf0
* Extensions to Serverless plugin and the ChromeStart service:
tsullivan@16b0aad610f

## Summary

Introduces a component to host the side navigation in Kibana. Solution
teams can insert their own content, and have other small options to
customize the presentation: see the storybook demos for more.

Closes elastic#154479
Closes elastic#154484
Closes elastic#154485
~~Closes elastic#154489
Closes elastic#154481
Closes elastic#154480
Closes elastic#154486
Closes elastic#154487

<img width="1462" alt="image"
src="https://user-images.githubusercontent.com/908371/233739506-7b88646e-3c19-44f0-afbf-ca1a23d32c57.png">

## Developer documentation

See the Storybook demos:
* run: `yarn storybook shared_ux`
* Find the `Chrome > Navigation` section in the Storybook app

### Checklist

Delete any items that are not applicable to this PR.
- [x] Home icon links to Project's "home" - or the customer user setting
- [x] Home icon shows loading indicator
- [x] All the Platform links navigate to the correct place
- ~~Platform links are not shown if the underlying plugin is disabled~~
- [x] Nav items define their links using `href` only
- [x] All href links work
- [x] Nav menu item to link to Cloud deployment
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

---------

Co-authored-by: kibanamachine <[email protected]>
…astic#155521)

## Summary

Fixes elastic#152719

This PR cleans up the incomplete state for the specific referenced
column on sub function change.


### Checklist

Delete any items that are not applicable to this PR.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)


### 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&mdash;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&mdash;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](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Kibana Machine <[email protected]>
)

## Summary

As described in elastic#152318, we
noticed that building block alerts were not highlighted anymore after
the migration to the new alerts table.

A preferred implementation of building block alert highlighting would
follow the [`EUIDataGrid` approach of row
highlighting](https://eui.elastic.co/#/tabular-content/data-grid-style-display#grid-row-classes).
The `DataGrid` allows you to pass custom CSS class names for each row
(`gridStyle.rowClasses`). That would allow us to highlight table rows
with building block alerts.

However, without access to the underlying data, we would not be able
generate the correct `rowClasses` for rows with building block alerts.
So simply passing `gridStyle.rowClasses` to the `AlertsStateTable` was
not an option.

Therefore in this PR we're introducing a new prop on the `AlertsTable`,
the `highlightedRowMapper`. It's a callback function that receives the
alert data and when it returns true, that row will be highlighted.

This allows for highlighting of rows from the outside without exposing
too many details about the underlying data structures.

**Screenshot of the alerts table with a highlightedRowMapper that
highlights building block alerts**

<img width="1259" alt="Screenshot 2023-04-21 at 13 03 54"
src="https://user-images.githubusercontent.com/68591/233620704-a56204c0-e285-4289-897a-58481f440446.png">

### Additional notes

- Since the alerts table has default grid styles, it allows to pass
`gridStyle` and it computes its own `rowClasses` for "active row"
highlighting, the logic for merging all those styles looks intimidating.
I tried my best to comment that part of code to make it clear why the
merges are necessary and how they work.
- While working on the issue, I noticed that active rows are not
highlighted anymore (related bug:
elastic#155487). The changes in this PR
fix that behaviour as well as you can see in the screenshot below:

<img width="936" alt="Screenshot 2023-04-21 at 13 04 15"
src="https://user-images.githubusercontent.com/68591/233620752-d752dada-9c97-4f00-933a-5425e19a5793.png">

### Checklist

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: Kibana Machine <[email protected]>
…928' into logs-onboarding-select-logs-154941
## Summary

Add automated tests via Cypress for MongoDB and Web Crawler happy paths.

Tests are quite basic and covers only adding simple one time sync paths.
Fill in the `cypress.env.json` with the credentials before running.
Mongo specs will run only against a local environment (via `./cypress.sh
dev`) as connector has to be running locally as well.


### Checklist

Delete any items that are not applicable to this PR.

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: Kibana Machine <[email protected]>
When splitting the query to mobile transactions main statistics, the
sessions were left in the errors query and should have been retrieved in
the transactions events. This PR fix this issue
…41' into logs-onboarding-configure-logs-155964
…lastic#156146)

## Summary

Fixes elastic#155937

For viewer user tooltip will be displayed and button is disabled.

Also fixed loading position for manual test run loader.

<img width="1770" alt="image"
src="https://user-images.githubusercontent.com/3505601/235106034-7e758a5d-7291-47a2-8a46-2327b367e4a8.png">
Exposes a `/related` endpoint that can be called to retrieve any
supported asset relationship (`ancestors|descendants|references`).

Note that this is a first draft to get a functioning endpoint available.
Further optimizations (performances, typing..) will be implemented as
follow ups or when we get feedback from actual use cases.

Follow ups:
- We're currently doing two sequential requests to retrieve the related
assets, one for the _directly_ referenced of the primary (in
`assets.children|parents..`) and another for _indirectly_ referenced
that lists the primary in `asset.children|parents...`. These two
predicates can be packed in a single query
- The size is difficult to enforce at the query level if a `type` filter
is provided. If we're looking at a `depth > 1` and we apply the size
limit to the queries at `depth < maxDistance` we may miss edges to the
requested type. Similarly the `type` filter can't be enforced at `depth
< maxDistance`

To do:

- [x] Add filtering by type
- [ ] ~Limit by size~
- [x] Add sample assets which use references
- [x] Add integration tests that validate each type of relation query
- [x] Add documentation and sample requests/responses for each relation
type
- [x] Handle circular references. In what situations can that happens,
references ?

Closes elastic#153471
Closes elastic#153473
Closes elastic#153482

---------

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: klacabane <[email protected]>
Co-authored-by: Kevin Lacabane <[email protected]>
Co-authored-by: Carlos Crespo <[email protected]>
…41' into logs-onboarding-configure-logs-155964
…typing (elastic#156002)

Fixes some misc bugs with the new configurable fields inputs

- `EuiFieldNumber` inputs could not be `null`, but we sometimes want
`null`. I switched these back to `EuiFieldText` and added integer
validations.
- Fields were still being saved as strings even if they should be
integers, so enforced a type check to make sure the expected type is
saved.

The new function `validateConnectorConfiguration` can also easily be
expanded to use the new validations.
This PR separates the persisted SO attributes from the fields received
in the HTTP API requests.

This is to address step 2 in preparing our HTTP routes as versioned.

Issue: elastic#153726

This PR encompasses a few PRs here which have been reviewed individually
by the cases team members:

elastic#155325 - User actions
elastic#155440 - Attachments
elastic#155444 - Configure, Connector
Mappings
elastic#155277 - Cases

The large number of files is because of renaming some types throughout
the frontend code. There shouldn't be many functionality changes, mostly
just type changes.

---------

Co-authored-by: Christos Nasikas <[email protected]>
Co-authored-by: Patryk Kopyciński <[email protected]>
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.