elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.81k stars 8.2k forks source link

[Reporting] Scheduled Reports #79905

Open joelgriffith opened 4 years ago

joelgriffith commented 4 years ago

The Feature

We want to give our users the ability to get Reports from Kibana on a regular interval. In maturity this will encompass CSVs, PDFs and more of our user's content in Kibana. For initial release we'll likely scope this down to just PDFs

Some core use-cases include:

In order to achieve this, we'll be leveraging TaskManger internally to take care of the scheduling and running of these jobs. Our plugin will handle the user and licensing permissions checks, loading pages, gathering data, and all the connector/saving logic of the binaries into ES.

What we'll do to achieve this

There's some core modifications that'll need to be done in our reporting plugin in order to achieve this. Our current stack is sufficient for most of the work needed for report scheduling, but there's a few things that we'll need to alter in order to achieve this:

Why we're doing this

There are a number of table stakes features users of enterprise software products expect. Granular security and alerting capabilities to name a few, are ones that Elastic currently support and continue to evolve today. Reporting also falls under one of these features. While this functionality is being used, it is not easily configured. Because of this, our users are significantly under utilizing one of the more important features the Elastic Stack offers today. Whether you are using the stack for Observability, Security, Enterprise Search or one of the seemingly infinite use cases we support - reporting is an expected feature and one that truly makes our products useful.

Once we have a more robust reporting system in place, we can unlock more powerful workflows within Kibana. While it's not something we've committed to at this time, being able to have an alert trigger a report is something that we can envision happening in the future.

Open Questions

Diagrams and more to come

elasticmachine commented 4 years ago

Pinging @elastic/kibana-app-arch (Team:AppArch)

elasticmachine commented 3 years ago

Pinging @elastic/kibana-reporting-services (Team:Reporting Services)

eeijlar commented 3 years ago

Can the following use case be considered:

The Post URL approach which is used in the current Kibana implementation does not cover this use case, as the URL is not portable across repeated installs of ELK.

tsullivan commented 3 years ago

@eeijlar this sounds like more of an Alerting use case. We do want to enable reporting as an Action of an Alert. Could your use case look like something this:

  1. Import the dashboard into the stack
  2. Create an alert in the stack that triggers when testing is done.
  3. Run the performance test and send the metrics to the Elastic stack.
  4. When tests are done, the alert fires (maybe based on some flag in the data).
  5. The alert has an action which creates the report of your dashboard, and sends it to you.

I think that is a cleaner solution, as you wouldn't need your own scripting to figure out a reporting POST URL.

tsullivan commented 3 years ago

Edit: deleted this quote, since the detailed design for starting work is in an RFC: https://github.com/elastic/kibana/issues/114167