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 Explorer] Show the Log Explorer in a tabbed UI alongside Discover #171386

Closed
weltenwort opened this issue Nov 16, 2023 · 1 comment
Closed
Labels
Team:obs-ux-logs Observability Logs User Experience Team

Comments

@weltenwort
Copy link
Member

weltenwort commented Nov 16, 2023

📓 Summary

It was requested that the Log Explorer navigation entry be called "Discover" in the observability serverless project type and that the original Discover is made available in a tabbed interface instead of a header link. This depends on a technical foundation in Discover that is to be created by the DataDiscover team.

✔️ Acceptance criteria

  • The serverless navigation entry currently called "Log Explorer" is called "Discover".
  • The Log Explorer is shown as a tab alongside the original Discover.
  • The previous links to "Open in Discover" are removed from the Log Explorer in serverless projects.
  • The Log Explorer still has its own URL and the locators work as before.

💡 Implementation hints

  • We'll likely just render a tab bar that is shared with the Discover team, even if the apps are registered independently.
  • The challenge is to keep the "Discover" menu entry active even though the "Log Explorer" tab is active.

❓ Open questions

  • Will the Log Explorer be the default target when the user clicks the "Discover" sidebar navigation entry?
@botelastic botelastic bot added the needs-team Issues missing a team label label Nov 16, 2023
@weltenwort weltenwort added the Team:obs-ux-logs Observability Logs User Experience Team label Nov 16, 2023
@botelastic botelastic bot removed the needs-team Issues missing a team label label Nov 16, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-logs-team (Team:obs-ux-logs)

davismcphee added a commit that referenced this issue Dec 8, 2023
)

## Summary

This PR adds tabs to navigate between Discover and Log Explorer in
serverless O11y projects. The Discover top nav should remain unchanged
in stateful deployments and all other serverless project types:

![tabs](https://github.com/elastic/kibana/assets/25592674/c68678be-ab1c-4323-bbd5-1f83828e8dce)

> [!IMPORTANT]  
> While writing tests for this, I encountered a few issues we'll
probably want to discuss and make decisions for before merging this PR.

1. When there are no data views in Kibana and a user navigates to
Discover, they are prevented from accessing it and shown a no data
screen. So if a user navigates to Discover in a serverless O11y project
in order to get to Log Explorer but there are no existing data views,
they will be unable to access the tabs since they will be blocked by the
no data screen. Is this a realistic scenario in serverless O11y that we
need to solve for, or will there always be at least one data view by
default?
2. When navigating from the Log Explorer tab to the Discover tab, we
convert the current dataset to an ad hoc data view to use in Discover.
This doesn't work in reverse since Log Explorer can't load an arbitrary
data view that might be selected in Discover, so instead I'm using the
"all logs" locator. I'll leave it to the O11y team to decide if this is
ok or if we need to take another approach here.
3. Since we are passing state between Discover and Log Explorer when a
user switches between tabs, the default columns in Log Explorer will be
overwritten by the current Discover grid columns (even if it's just the
Document column). I imagine the O11y team doesn't want this, but how
should we solve it? Should we avoid passing columns (and any other state
that might overwrite defaults) when navigating from Discover to Log
Explorer, or take another approach?

## Notes
- The sidebar navigation link has been changed from "Log Explorer" to
"Discover" and defaults to the Discover tab.
- "Log Explorer" has been renamed to "Logs Explorer" in the UI.
- The mockups used "Data Views" for the Discover tab title, but this was
later decided against, so the implementation uses "Discover".
- All of the same state that used to be passed from Log Explorer to
Discover through the top nav button is still being passed, but I also
added support for passing `sort` as well (I can revert this if it's
unwanted).
- In order to add tabs to the left side of the Discover top nav in
serverless, we had to stop relying on Unified Search for rendering the
top nav (in serverless only, stateful still uses it). Instead we are now
rendering the top nav directly in Discover in serverless, similar to
what Log Explorer does. This also required access to some of the
internal navigation plugin components we rely on for the Discover top
nav, so I exported them from the plugin since I figured it was better
than duplicating them.

Part of #169964. **In order to fully resolve this issue, there is still
a remaining task to remove the "Data Views" tab from the Log Explorer
dataset selector.**

Part of #171386. **In order to fully resolve this issue, it looks like
there may be some documentation work to do (especially since "Log
Explorer" has been named to "Logs Explorer" in the UI).**

### Checklist

- [x] 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
- [x] 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))
- [x] 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)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team:obs-ux-logs Observability Logs User Experience Team
Projects
None yet
Development

No branches or pull requests

3 participants