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

[Reporting] Exporting raw data from table-based visualizations #30982

Open
tsullivan opened this issue Feb 13, 2019 · 29 comments
Open

[Reporting] Exporting raw data from table-based visualizations #30982

tsullivan opened this issue Feb 13, 2019 · 29 comments
Labels
enhancement New value added to drive a business result Feature:Reporting Reporting (PDF, CSV, ..) feature impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. loe:large Large Level of Effort Meta Team:SharedUX Team label for AppEx-SharedUX (formerly Global Experience)

Comments

@tsullivan
Copy link
Member

tsullivan commented Feb 13, 2019

Summary

This enhancement is a parallel effort of #17950 to provide better options for exporting raw data from table-based Kibana visualizations, in CSV form.

Numbers and timestamps will be formatted per user configuration (kibana.yml, advanced settings).

Use cases

  • Get immediate CSV download of table data in the UI using a panel action
  • Schedule CSV export of table data using an HTTP API

Walk through a user interaction

  1. Create a saved object. TSVB Data Table visualization is the easiest example (maybe)
  2. Add the visualization to a dashboard
  3. Use a Panel Action to find ways to export the raw data:
    • Download CSV Data
      • Immediate download
      • Content is available for re-download in Management > Reporting
      • Similar to the raw data download options in "classical" visualizations, but this will be grounded in something that's accessible to integration with other applications
    • Copy POST URL
      • Carrying over this existing functionality will be possible
    • Schedule CSV Data Report
      • This is for much later, but this enhancement will lead into it.
      • Expensive queries are better suited to this, vs immediate download
      • When we have this, it will make sense to get rid of "Copy POST URL" because the URL is used for scheduling

Working on this feature leads into a solution for #18110

@tsullivan tsullivan added Meta Feature:Reporting Reporting (PDF, CSV, ..) feature labels Feb 13, 2019
@tsullivan
Copy link
Member Author

cc @joelgriffith @AlonaNadler

@AlonaNadler
Copy link

AlonaNadler commented Feb 13, 2019

TSVB table is one example, mainly because it doesn't have the inspector, the main use case is with saved search within a dashboard.
Ideally, we can use the action panel for every table (TSVB table, saved search and aggregated table), the top priority from my perspective is saved search

@tsullivan
Copy link
Member Author

Thanks for the input @AlonaNadler. We'll look at Saved Search next.

TSVB was a bit easier since all the querying is on the server side.

Aggregated table will be hard with its current implementation, because the saved object stored state has a relational nature with the index pattern object.

With Saved Search, we don't know how many rows of hits there will be, so we use the scan/scroll API to get it from Elasticsearch. I don't think that will be a barrier as we're going to use Server-side APIs to build the CSV - but that explains why there is no Inspector for it.

@AlonaNadler
Copy link

There are a few problems customers report:

  • Not being able to export a saved search to a CSV from a dashboard
  • PDF report doesn't export the full table when there are multiple pages
  • Export the raw documents behind a visualization - not like in inspector but the actual original document the aggregation is based on.
  • Export CSV of aggregated data behind visualization in TSVB - TSVB doesn't have the inspector, which means you can't export csv of the aggregated data when using TSVB visualization, in all the TSVB charts (line, metric, gauge, table) types (not just table).

When you say "Exporting raw data from table-based visualizations" is it the original document used in the aggregation or the aggregated data visualized in a chart (similar to inspector export to CSV)?

@Damientinker
Copy link

Hello there

I would just like to hear if this line

  • Schedule CSV export of table data using an HTTP API

Is covering using watcher to generate the CSV file (similar to the one found in inspect on a data table visulalization (not the TSVB version))

Atm, the .PDF generation is not optimal, since it only shows the first page =)

@tsullivan
Copy link
Member Author

TSVB table is one example, mainly because it doesn't have the inspector, the main use case is with saved search within a dashboard.

I'm pivoting this issue to saved search within a dashboard. It turns out that we have all the utilities we need on the server side to build the query based on the search saved object data.

Getting the aggregated table export for CSV will be hard to do in this design, because parsing aggregated table saved object data relies on a lot of services built in Angular.

Export CSV of aggregated data behind visualization in TSVB - TSVB doesn't have the inspector, which means you can't export csv of the aggregated data when using TSVB visualization, in all the TSVB charts (line, metric, gauge, table) types (not just table).

I think it will be best to hold off on the original idea to enable CSV export for TSVB tables, so we can focus on releasing the saved search export from Dashboard. But soon after this, we can work on CSV of aggregated data behind TSVB visualization. Assuming the data is 2-dimensional, we can get it into CSV.

When you say "Exporting raw data from table-based visualizations" is it the original document used in the aggregation or the aggregated data visualized in a chart (similar to inspector export to CSV)?

For exporting search, it is close to the original document - only the columns to show have to be set in the saved object data (or state has to be passed to the API as free-form data, which we'll allow to override the state that's in the saved object). For visualizations that aggregate data, "raw" means the bucketed aggregation metrics in the ES response.

@tsullivan
Copy link
Member Author

  • Schedule CSV export of table data using an HTTP API
  • Is covering using watcher to generate the CSV file (similar to the one found in inspect on a data table visulalization (not the TSVB version))

My understanding of the Watcher integration of alerting is that it allows you to configure a "webhook action" that can POST a data payload to an HTTP host. (Please correct me if I'm wrong) This will be possible with the new API in the works, but it's also possible today with the "POST URL" you see shown in the Kibana UI for the Share > Reporting actions menu.

@bhavyarm
Copy link
Contributor

cc @kunisen thanks!

@gkalangara
Copy link

This a very important feature for us.
We have a payed version and still not able to export data automatically.

@tsullivan
Copy link
Member Author

could include: #36546

@tsullivan
Copy link
Member Author

this is stalled as the current implementation of Data Table visualization depends on Angular modules (AggConfigs & tabifyAggResponse), that we can't access from the server-side for automation.

@tsullivan
Copy link
Member Author

Related issue: Table data visualizations in PDFs

#17950

@Artiizan
Copy link

Would also love to see "Schedule CSV export of table data using an HTTP API" be implemented to allow generation of Kibana Visualizations as CSV using a watcher.

@bmcconaghy bmcconaghy added Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) and removed Team:Stack Services labels Dec 12, 2019
@bmcconaghy bmcconaghy added (Deprecated) Team:Reporting Services Use Team:Global Experiance and Feature:Reporting instead. and removed Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) labels Dec 20, 2019
@elasticmachine
Copy link
Contributor

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

@tsullivan
Copy link
Member Author

Update: I have heard from @jimgoodwin in a sync meeting that the visualizations have separated the data modeling logic from the rendering logic. That should get us closer to this goal, but I'm not sure by how much.

cc @elastic/kibana-app-arch

@tsullivan
Copy link
Member Author

Per #30982 (comment), this issue is blocked on App team making a source of data modeling logic that can be called from automation.

@fbaligand
Copy link
Contributor

I'm very interested by this feature.
Numerous clients in my company have asked for this feature since years.
=> I would love this feature!

@lireanne
Copy link

lireanne commented Oct 29, 2020

I too would love this feature!

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-app-services (Team:AppServices)

@tsullivan tsullivan removed the (Deprecated) Team:Reporting Services Use Team:Global Experiance and Feature:Reporting instead. label Dec 17, 2020
@eskdera
Copy link

eskdera commented Dec 20, 2020

This feature would be very useful for us as well!

@exalate-issue-sync exalate-issue-sync bot added impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:small Small Level of Effort loe:large Large Level of Effort impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. and removed loe:small Small Level of Effort impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. labels May 13, 2021
@exalate-issue-sync exalate-issue-sync bot added impact:critical This issue should be addressed immediately due to a critical level of impact on the product. and removed impact:high Addressing this issue will have a high level of impact on the quality/strength of our product. labels Jul 14, 2021
@exalate-issue-sync exalate-issue-sync bot added impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. and removed impact:critical This issue should be addressed immediately due to a critical level of impact on the product. labels Sep 29, 2021
@carlopuri
Copy link

Please go on deploying this feature... very very loved feature

@Singh-Shivani
Copy link

Hi, is it deployed? how can I use it? @tsullivan @timroes

@dcolazin
Copy link
Contributor

Moreover, it would be nice to inspect the TSVB-generated visualizations, in a similarly to what it is possible to do with other vizs.

@dyangel16
Copy link

Please go on deploying this feature, This feature would be very useful for us as well,want automate some reports using HTTP API!

@vani-hiver
Copy link

I've been following this feature from quite a while now. Would really like to see this deployed.

@juan-domenech
Copy link

FYI onlookers: The CSV export option is available under Inspect for Data Table Visualisations.

Visualize Library -> New visualization -> Data Table -> Inspect -> Download CSV
image

@petrklapka petrklapka added Team:SharedUX Team label for AppEx-SharedUX (formerly Global Experience) and removed Team:AppServicesUx (Deprecated) Team:Reporting Services Use Team:Global Experiance and Feature:Reporting instead. labels Oct 24, 2022
@dej611
Copy link
Contributor

dej611 commented Dec 14, 2022

@drewdaemon
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New value added to drive a business result Feature:Reporting Reporting (PDF, CSV, ..) feature impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. loe:large Large Level of Effort Meta Team:SharedUX Team label for AppEx-SharedUX (formerly Global Experience)
Projects
None yet
Development

No branches or pull requests