-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Add Data UI - Metricbeat #6538
Comments
In regards to the question about keeping topbeat and Kibana in sync, I have a few thoughts. I'd love to get feedback from the Beats team as well. This discussion will set a precedent for other beats in the future. First of all, here's a list of all of the resources I know of that will need to be synchronized:
Potential solutions:
Pro: Simple
Pro: Really easy to consume from Kibana's side if we publish it as an NPM module. It's mostly DRY.
Pro: It's DRY. We could probably figure out a way for Kibana to get the default fields without copying them.
Pro: It's DRY. It's sort of the Elastic way. Any other ideas? |
I'd say -- no. The idea with Topbeat is that the data is sufficiently structured and we know that structure ahead of time to create a reasonable indexing template. I'm not aware of users having to modify that data once it's in ES.
By default, topbeat sends to the topbeat-* index pattern. It can be adjusted in the config file, so it's probably helpful to provide an option to create an index pattern for a different indes. |
The overall flow LGTM. Trying to answer some of the questions / add more info:
At the moment we keep the dashboards in a separate repository (https://github.com/elastic/beats-dashboards) with a script to load them. We're not terribly happy with that and because with Metricbeat we expect a lot more dashboards we're thinking of storing them closer to the source code. I'm not sure about the solution but it's the right time for the question :-). These dashboards don't necessarily need to be loaded from Go (they currently aren't) but whatever loads them shouldn't require new dependencies. The dashboards can potentially change with every topbeat release and they should be included / tested with the Kibana having the same version (yay synchronized version numbers). I think my favorite is your number 3, if I understand it correctly, in which you bundle a topbeat tar.gz containing the required objects in a Kibana plugin. What I don't like about it is introducing a release time dependency (topbeat must be built when Kibana is build). I don't know enough about Kibana plugins to know if this is doable with reasonable effort. Pinging @kimchy as I think he also had some thoughts around this.
In the interest of keeping the wizard simple I'd also say no.
It could be an option pre-filled with |
Thanks for the feedback so far. Not including a pipeline creation step sounds good to me, seems like it wouldn't make much sense and it would only create additional coupling between Kibana and Topbeat by requiring Kibana to know about Topbeat's default document fields.
@tsg that's a really good point. What do you do today if a user configures a different index name? Are they not able to use the default dashboards at all? How common is it for users to change the index name? I'm not particularly familiar with how Topbeat is used in the wild.
Yeah my idea was to literally bundle the matching Topbeat distribution (probably expanded, since the plugin itself will be compressed) in a Kibana plugin so that we can pull the template/dashboards from the same place a user would. But as you said, this makes releases much more complicated. It would also mean we need to create a Kibana plugin for any future beats we want a setup UI for, so maybe it's not such a good idea. I had no idea the dashboards were already in a separate repo, I thought they were stored here. Could you elaborate a bit more on the troubles you're having with using a separate repo? |
At the moment they wouldn't be able to use the sample dashboards at all, but there is an open PR to make renaming the indices possible: elastic/beats-dashboards#85
We're in the process of moving them there, but currently all releases have been using the beats-dashboards repo.
There are a few things:
|
This is blocked until we can come up with a good solution for managing the Topbeat template and dashboards/visualizations/searches. We talked about how the Kibana REST refactor could expose endpoints that would allow Beats to manage their Kibana dashboards directly without having to mess with the .kibana index directly. |
Small update also from our side: it looks like we'll have the Kibana dashboards together with a loading script inside the Topbeat packages by alpha2. |
@tsg I noticed you guys enabled autoloading of index templates as well. Will the dashboards get auto loaded, or is there still separate script to run for those? Also, semi-related question, what does the user do about the index template if they've configured a different index other than the default |
@Bargs We have a bash script for Unix systems and a powershell script for Windows systems to import the dashboards in Kibana. We are planning to include this script together with the Beat dashboards in the Beat packages, so the user can import the sample dashboards only if he/she wants. |
While this would be a nice feature to have, we've put our add data efforts on hold for the time being to focus on more impactful enhancements for Kibana. |
add data as you had originally envisioned would be the most critical enhancement. I would not assume that all users are ninjas with grok and using conf files for ingest. Copy/paste of sample data, perhaps a headers preview, upload a csv, map field types and pipeline wizard would be a huge feature. The ingestion and transform components are not very intuitive. I hope this doesn't remain on hold for much longer. It looked fantastic. |
@RedCloudDC The value is immense, for sure! One of our biggest problems with getting the add data feature out the door was its sheer scale. There are really tons of features that tie together to form what we were previously lumping into a single "add data" effort. We have not abandoned this effort as a whole, we've just focussed our energy on individual features until enough pieces are in place to form the broader vision. We've been working on a Pipelines UI, for example, which deals with iterating on sample data to create and edit ingest pipelines through Kibana. Another feature that is high on our list is a UI for managing indices. I also strongly encourage everyone to look into the awesome ingestion workflows coming from the beats team around metricbeat and filebeat. With those, you can kickstart an ingestion pipeline and have it wired up into Kibana automatically with default visualizations/dashboards. Those ingestion features will harmonize with the features we're building into Kibana rather than be completely replaced/reimplemented at the UI level. |
Closing this out. This idea is still valuable, but we've started moving in a different direction, specifically with a new home page |
## Summary `[email protected]` ⏩ `[email protected]` --- ## [`74.0.1`](https://github.com/elastic/eui/tree/v74.0.1) **Bug fixes** - Fixed `EuiModalHeaderTitle` type errors when passed `EuiTitle` props ([#6547](elastic/eui#6547)) ## [`74.0.0`](https://github.com/elastic/eui/tree/v74.0.0) - Added the `component` prop to `EuiModalHeaderTitle`, which allows overriding the default `h1` tag ([#6530](elastic/eui#6530)) - Added the `titleProps` prop to `EuiConfirmModal`, which allows overriding the default `h1` tag ([#6530](elastic/eui#6530)) **Bug fixes** - Fixed slight row height jumping in `EuiBasicTable`s when actions with tooltips became disabled ([#6538](elastic/eui#6538)) **Breaking changes** - `EuiModalHeaderTitle` now **always** wraps its children in a `h1` tag (previously attempted to conditionally detect whether its children were raw strings or not). To change this tag type to, e.g. a more generic `div`, use the new `component` prop. ([#6530](elastic/eui#6530)) - `EuiLink` now applies `rel="noreferrer"` to all domains, including `elastic.co` ([#6535](elastic/eui#6535)) - `EuiBasicTable` no longer blocks mouse/keyboard interactions while `loading` ([#6543](elastic/eui#6543)) **CSS-in-JS conversions** - Converted `EuiBasicTable` to Emotion ([#6539](elastic/eui#6539)) - Added a new `RenderWithEuiTheme` render prop utility ([#6539](elastic/eui#6539)) --------- Co-authored-by: Kibana Machine <[email protected]>
## Summary `[email protected]` ⏩ `[email protected]` --- ## [`74.0.1`](https://github.com/elastic/eui/tree/v74.0.1) **Bug fixes** - Fixed `EuiModalHeaderTitle` type errors when passed `EuiTitle` props ([elastic#6547](elastic/eui#6547)) ## [`74.0.0`](https://github.com/elastic/eui/tree/v74.0.0) - Added the `component` prop to `EuiModalHeaderTitle`, which allows overriding the default `h1` tag ([elastic#6530](elastic/eui#6530)) - Added the `titleProps` prop to `EuiConfirmModal`, which allows overriding the default `h1` tag ([elastic#6530](elastic/eui#6530)) **Bug fixes** - Fixed slight row height jumping in `EuiBasicTable`s when actions with tooltips became disabled ([elastic#6538](elastic/eui#6538)) **Breaking changes** - `EuiModalHeaderTitle` now **always** wraps its children in a `h1` tag (previously attempted to conditionally detect whether its children were raw strings or not). To change this tag type to, e.g. a more generic `div`, use the new `component` prop. ([elastic#6530](elastic/eui#6530)) - `EuiLink` now applies `rel="noreferrer"` to all domains, including `elastic.co` ([elastic#6535](elastic/eui#6535)) - `EuiBasicTable` no longer blocks mouse/keyboard interactions while `loading` ([elastic#6543](elastic/eui#6543)) **CSS-in-JS conversions** - Converted `EuiBasicTable` to Emotion ([elastic#6539](elastic/eui#6539)) - Added a new `RenderWithEuiTheme` render prop utility ([elastic#6539](elastic/eui#6539)) --------- Co-authored-by: Kibana Machine <[email protected]>
Related to #5974
The goal here is to create an additional Add Data wizard that makes it easier to install Topbeat along with its index template and Kibana dashboards.
Questions
Mockups and Workflow
Step 0 - New option on the Add Data landing page
The Topbeat wizard will appear as an additional option on the Add Data landing page, describing it as a way to gather CPU/Memory metrics. When the user selects this option, Kibana will take a number of actions in the background:
Step 1 - Install Topbeat
This is the first and only step of the wizard. The page includes links to docs and/or embedded instructions to help the user install Filebeat on their servers. This page will also poll the topbeat index pattern and report to the user when documents are successfully being index.
The text was updated successfully, but these errors were encountered: