-
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
[Meta] Embeddable types #43879
Comments
Pinging @elastic/kibana-app-arch |
@stacey-gammon thanks for your help during the SIEM team's spike on embeddables for the Overview page! 🙏 As detailed in the issue linked above, the following issues are relevant to the SIEM team's plan to use embeddables in a future release: |
Issuing a call for more use cases of users/devs wanting "UI things" from other apps/solutions to be addable to a dashboard or canvas workpad. @AlonaNadler - you know of any more to add here that are being considered? We are rethinking the add panel flow and specific information about embeddables that devs want to add will be useful (#64383) |
@stacey-gammon Here are some initial thoughts, some of them previously discussed with @AlonaNadler Happy to chat further to sync up on priorities between these. APM charts:
Metrics:
Logs:
|
@tbragin, I'm assuming these are all types of observability charts you want users to be able to add to a Dashboard or a Canvas. #64528 @stacey-gammon we already have also ML that have a PR to add ML job using a swimlane into a dashboard and Canvas #64056 |
thanks @AlonaNadler - just fyi though, the ML job swimlane will not be addable to Canvas without additional work. The way Embeddables in Canvas is built, every new type has to be manually supported. This is probably a topic for another issue though. (cc @crob611 ) |
There was a recent discuss post (item 5) that was requesting ML job anomalies be surfaced on the SIEM Overview page. So I think we on the security side could leverage the new ML Swimlane embeddable for that, so it's good to see 🙂 As far as new embeddables for SIEM to consume, not too much comes to mind outside of perhaps some of the Alerting UI's? Though I'm not sure how much sense it makes for them to be exposed as embeddables vs a generic re-usable UI? For instance, we've recently added Notifications to our Detection Engine Rules, and used the connector and notification configuration UI from Alerting. We'll be adding Threshold Based Rules here soon as well, and are looking at the Alerting Metric Threshold UI to see if we could leverage that. Any future Lastly, I'd be curious to see what people think about exposing the SIEM Timeline as an embeddable? This has come up before, but with the recent Timeline re-design effort, it might be a good idea to revisit this as part of that effort. |
@stacey-gammon I would just like to clarify the embeddable use case for myself as I think about some of this (and go through some old notifications that got lost!). If the Logs app wanted to embed a map on one of its pages, what would be the advantage of using a Kibana Embeddable as opposed to a React component provided by the Maps team? My initial thought was that Kibana Embeddables would be more about making items available to users to embed on the fly, the way they can embed any viz they want into any dashboard they like, but are we also thinking of using them to share components across Kibana apps and teams as well? Thanks! |
Oh gosh, thanks for the ping! I meant to follow up on this. It's a great question! Some clarifying questions, and then I'll make educated guesses on them with my answers but correct me if I'm wrong. You are saying "Maps Kibana Embeddable" vs "Maps React component" , but the Maps Kibana Embeddable is a react component. I'm going to assume you mean the react component that maps uses inside the embeddable react component. One advantage to using Embeddables is that you get things like attached ui actions (drilldowns), and, depending on how you render the embeddable, you can get the "panel wrapper" which exposes the gear icon which opens the context menu panel and shows all registered actions that can act on that embeddable (even things that aren't map specific actions like "customize time range"). If you want to use this functionality, you should still grab the element directly from the map plugin itself instead of going through the generic embeddable registry (a recommendation that we don't have documented anywhere but should). The other big reason to use embeddables is for dynamic usage, when you don't know what type of embeddable you have at runtime. You do, because you are saying "maps", so you shouldn't need to go directly through the embeddable api. e.g. Prefer: const MapEmbeddable = mapsStart.MapEmbeddable;
return <MapEmbeddable props={...} /> to: // Don't use generic access when you know the type at compile time.
const mapEmbeddable = embeddableStart.getEmbeddableFactory(MAP).create(input);
mapEmbeddable.render(); However, if you don't want any drilldown or action functionality, you can definitely just use any functionality or react components they share off their plugins contract, or exported statically. Let me know if this helps! cc @ppisljar |
@stacey-gammon this is fantastic context, thanks! I plan on playing with these some over the next few weeks to see how Observability UIs can leverage them or provide our own to the registry. Thanks again! |
FYI @Dosant just merged #67783 which adds a new developer example for embedding dashboards by value. I believe a "by reference" one is up next, as a lightweight wrapper around the "by value" version. Just go to @tsg @andrew-goldstein it would be helpful to determine what are actual blockers to adopting embeddable dashboards in SIEM, and what is a nice to have, as I think almost everything is just about there.
Coming soon, but could still use the "by value" one to get around it.
Nice to have?
Done!
Nice to have?
I think this is the last one that is required left? I added a comment in the issue, there may be a simple solution for this. |
I tried running the @stacey-gammon would you happen to know if the "by value" example above or the upcoming "by reference" example supports reads and writes in edit mode?
I would put Export to PDF in the "Nice to have" bucket. CC: @MikePaquette
Awesome! 🎉
@stacey-gammon please see the SDH related to the Maps embeddable on the SIEM Network page for an example of the confusion caused by Synchronization Issues With Kibana Index Patterns Referenced by Embeddables. This still feels like a blocker.
The pattern of creating things on demand when a user visits a page in an app (like the Detections page) is associated with open issues, community posts, and bugs:
This still feels like a capability that should be provided by the platform. |
@stacey-gammon, @XavierM, @ppisljar and I met today to review the issues referenced in the previous comment above, and discuss solutions:
RecommendationsWe recommend @hmnichols and @MikePaquette follow-up with:
|
@hmnichols @MikePaquette For completeness, it's worth noting that we also discussed the impediment that saved objects, which are used to persist cases and timelines, don't support aggregations, as @kobelb documented here: #64137 Although not a limitation of embeddables themselves, some of the embeddable dashboards we would like to implement cannot be realized until Lens, charts, etc can perform aggregations on saved objects. |
This PR will allow us to do aggs #64002 |
Closing this as discussed at team sync as we now have a project that will track new embeddable types. |
@vadimkibana is there a link to the new project? |
Let's use this meta issue to track all our current embeddable types, embeddables currently being implemented, and embeddables that different teams would like to implement. This way the App Arch team can be sure to give support where needed!
Current Embeddable Types
In progress
Endpoint ResolverEmbeddables being used in
Done
Canvas. Embeddable support was merged but has some bugs:Done
Map pew pew in SIEMcc @streamich
The text was updated successfully, but these errors were encountered: