grafana / grafana

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
https://grafana.com
GNU Affero General Public License v3.0
64.06k stars 11.99k forks source link

Table Panel: auto height and max rows property #24901

Open baur opened 4 years ago

baur commented 4 years ago

What would you like to be added:

Table Panel: auto height and max rows (until appearing vertical scroll) property

image

Why is this needed:

Optimize space and improve look and feel

image

image

torkelo commented 4 years ago

We might add a row / cell height/size option but not a dynamic row height (unless big demand, easy to support). If you want a bar gauge with more dynamic height use the bar gauge panel. And not sure I understand the max rows option your proposing?

zloo commented 4 years ago

I'd like to see this as well. As you can see in the screenshot I added here, I have a group of machines separated by a prometheus label, and one of them has a bigger number of machines than the others. I'd like the height to auto-fit the table size.

image

The only options I currently have is to either have the first one scrollable (i.e. small), or have this huge empty space between each group - both of them seem really suboptimal.

e-shevchuk commented 3 years ago

Yep. That would be really great to have this feature!

thies88 commented 3 years ago

Must have feature !!! now in some cases there is a lot of empty space. For example when you want to view multple tables with diffrent number of rows.

"dynamic row/table height" +1

dpnbp commented 3 years ago

+1 to request that the table allows for a dynamic height or at least a definable row-height property.

I think using the bar gauge to obtain the dynamic height functionality is an OK recommendation but the reason I don't use the bar gauge panel is due to not being able to sort data across multiple data frames. The table panel allows for a series to rows or reduce transformation to be applied and then applying the sort-by to get the sort functionality I need.

UlrichThiess commented 3 years ago

+1

I think a table is often used as an overview. You can display many different values and color them depending on the threshold.

It would be desirable if it could be set that the table adapts its size to the number of rows. It should be possible to set the minimum and maximum number of lines.

In order to keep several adjacent tables at the same height, if there are different tables above, you can also put the text plug-in without content in between. Unfortunately, the text panel cannot be set to 0 height.

cameronkerrnz commented 3 years ago

I had a couple of tables showing various alerts for a group of a systems. Useful to have these 'above the line' so to better catch eye-balls. But they either a) take up space that would be better used for the other most-useful panels, and b) lead to scrolling when it does have something useful to say. I have now, somewhat reluctantly, moved these much further down the page.

In general, it would be absolutely fabulous if panels could have means to auto-hide if they don't have something useful to say, but I understand that would be impractical to implement.... but auto-hiding rows on the other hand; that would be awesome, and presumably you would just have a a query (like a singlestat) that would return a boolean value as to whether the row should be shown or not.

yusuf-multhan commented 2 years ago

Would need ability to set row height based on the content inside it. I have a scenario where my cell sometimes contains a rendered HTML, and end up overlapping with other rows, with having fixed height of 35px. "dynamic row" +1

DominikMoelter commented 2 years ago

I created several dashboards with table panels and variables that are used to select multiple pods from my kubernetes cluster. Therefore the number of rows of my table panels depend on the number of selected pods. So as @zloo mentioned I have a scrollable table with small height or have non scrollable table with high table height, that is almost empty when selecting only a few pods. Would be nice to have something like minimum and maximum table height/rows and the height of the table is based on the content between these values.

UlrichThiess commented 2 years ago

+1 i think only maximum is needed if maximum is not set, the table panel adjusts its size minimum is the size as it was placed on the panel what is the measurement? px?

DominikMoelter commented 2 years ago

Yes that's a good suggestion. For me the best unit to set the hight would be "rows", so I can decide how many rows should be displayed until I have to scroll.

UlrichThiess commented 2 years ago

I think rows depend on font size, browser enlargement and other things. Maybe it is to difficult to calculate it?

DominikMoelter commented 2 years ago

I'm not into how panels are rendered so I can not really make any suggestions on that. From the point of an user, "row" as an unit would be nice.

08d2 commented 2 years ago

I have many tables where each row represents a dynamically-provisioned entity in my infrastructure. Those tables are information-dense and typically 100% width. I generally want them to be as tall as they need to be to show all of the rows. Right now I have to manually resize them based on the current number of rows and then re-save the dashboard. Would be great if this wasn't necessary.

MichaelTendoSsemwanga commented 1 year ago

++ I have tables generated by repeat variable, having different number of rows, some leave empty space, while others need too much scrolling. Please add table height based on number of rows.

psheehymn commented 1 year ago

Not pertaining to the Table visualization, but along the same topic, we use the Text visualization to display HTML blocks which can vary in size due to content based on variables. We either have to vertically size the panel to the largest possible length expected, resulting in excess white space in many cases, or else force scrolling in the larger cases if not so sized.

It would be nice to have the option to mark these panels as "dynamic" and have Grafana adjust the panel's vertical space according to the content, such that the panel takes up the minimum space required, but NOT require scrolling.

Sulomus commented 1 year ago

+1 100%!

I can't believe Grafana has not added this ... :(

jesseorr commented 1 year ago

+1

We have pages with multiple tables stacked vertically which have a dynamic volume of data, with each table pertaining to various aspects of statuses. If the first few tables are empty (because everything is OK), then you have to scroll past them to get to the next sets of tables.

Ideally, tables should be able to grow to a maximum number of rows, then paginate, and if row count is under the maximum, the height of the table should dynamically shrink to fit other content below it.

This would be more similar to basic HTML tables which do not pre-reserve height.

AyoubHabra commented 1 year ago

+1 2023

yusufgungor commented 10 months ago

+1

nascentt commented 5 months ago

+1 scrolling through pages of empty tables is less than ideal

carlocea9 commented 2 months ago

Please add auto-height / resize too. Would be a big changer for reporting.