influxdata / influxdb

Scalable datastore for metrics, events, and real-time analytics
https://influxdata.com
Apache License 2.0
28.97k stars 3.55k forks source link

Use the yield of a query in one cell as a starting point for another cell in the same dashboard. #21779

Open Wappie opened 3 years ago

Wappie commented 3 years ago

Proposal: Use the yield of a query in one cell as a starting point for another cell in the same dashboard.

Current behavior: Each cell starts calculations from the raw data in the bucket. Sometimes the start of these calculations and aggregations are equal for multiple cells in a dashboard. If the initial aggregation/calculation steps are equal but the final steps are different both cells will query the data from scratch resulting in high and unnecessary computational costs.

Example: In one cell a graph is desired which uses the relative expensive map() function and in another the integral of that graph is desired. Currently, both cells query the graph from scratch where the only difference is the integral() at the end. This seems unnecessary.

Desired behavior: Use the output from a dashboard cell as input for another dashboard cell similar to the notebook feature where the output of a query can be used as input for the next query.

Alternatives considered: Accept higher query cost and longer load time. (open to better solutions of course)

Use case: Increase efficiency by reducing load time and query costs of dashboarding.

russorat commented 3 years ago

thanks for the request! i think this makes sense and we have some features in the platform coming that will make this a little easier to implement on the frontend.

for now, we recommend you create a task to run the calculation and store the results in a new bucket/measurement. Then you can leverage that measurement without incurring the additional calculation costs.