Skip to content

Conversation

rcj1
Copy link
Contributor

@rcj1 rcj1 commented Aug 25, 2025

This PR is intended to indent tag sets such as those under gc.heap.generation by one extra indent. This makes it clearer that the label gc.heap.generation is a header and not a data value.

Before:
image

After:
image

closes #4935

Copy link
Member

@noahfalk noahfalk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you tried visualizing the "Microsoft.AspNetCore.Hosting" provider on a .NET web app? That shows an example of metrics with quite a few dimensions. I'm guessing this extra indent is a tradeoff between making the headers clearer when there are fewer dimensions vs. taking more horizontal space for cases with large numbers of dimensions. As long as the high dimension cases still look OK then tab is great. If high dimension cases don't look good any more than we might want to consider other options like smaller spacing or using "-----" to underline column headers instead.

https://learn.microsoft.com/en-us/aspnet/core/log-mon/metrics/metrics?view=aspnetcore-9.0

@rcj1
Copy link
Contributor Author

rcj1 commented Aug 26, 2025

Have you tried visualizing the "Microsoft.AspNetCore.Hosting" provider on a .NET web app? That shows an example of metrics with quite a few dimensions. I'm guessing this extra indent is a tradeoff between making the headers clearer when there are fewer dimensions vs. taking more horizontal space for cases with large numbers of dimensions. As long as the high dimension cases still look OK then tab is great. If high dimension cases don't look good any more than we might want to consider other options like smaller spacing or using "-----" to underline column headers instead.

https://learn.microsoft.com/en-us/aspnet/core/log-mon/metrics/metrics?view=aspnetcore-9.0

So in this case we have a table with headers lined up horizontally. It doesn't look truncated with the added indentation. On the other hand, in such a table one would expect the values to be left-aligned, which they are not. If the header name were short this could be an issue.
Screenshot 2025-08-26 162503
Screenshot 2025-08-26 162528

@rcj1
Copy link
Contributor Author

rcj1 commented Aug 27, 2025

I will see if it looks better with an underline.

@rcj1
Copy link
Contributor Author

rcj1 commented Aug 27, 2025

Screenshot 2025-08-27 164944 Screenshot 2025-08-27 165010 Ok I think it looks better with the underline especially in the web test. @noahfalk

@noahfalk
Copy link
Member

Agreed, the underline looks better to me as well. As a small tweak, I think it might help visually separate the columns if you put a space in the underline in between the columns:

http.request.method http.request.status_code http.route
------------------- ------------------------ ----------
GET                 200                      /
GET                 200                      /
GET                 200                      /

@rcj1
Copy link
Contributor Author

rcj1 commented Aug 28, 2025

Yes this looks good to me:
Screenshot 2025-08-28 083739
Screenshot 2025-08-28 083805

@rcj1 rcj1 changed the title Indenting tag set value rows by one more indent Delimiting tag set headers Aug 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

dotnet-counters gc.heap.generation output
2 participants