Comments (3)
I'll use this opportunity to provide some feedback, some of which is based on our past experiments with lttng-scope.
Here is a rather disorganized desiderata list:
- When a non-time-x-axis chart is shown, it typically covers an area of the trace (or all the trace). It should be very clear which time area of the trace is covered by the chart, IOW for which time range/ranges is trace data being aggregated ?
- Being able to interact with elements on the chart would be great, e.g. quickly finding max/min values and being able to select them, see details, open more detailed views about the surrounding of those extremes,
- Make it clear what each axis is representing, with clear units.
- Show readable axis units, e.g. use k, M, G rather than large numbers or exponential (nnEmm) values.
- When a number shown is large (many characters), it typically contains very few significant numbers. How to best present the significant numbers only and cut away the non-significant ones in a way that is clear to the end user should be carefully thought through.
- Allow users to choose the math function to apply on each axis: linear, log, others. This should be clearly shown on the axes labels.
- Allow auto-selection of math function to apply on an axis based on the content shown: e.g. we could auto-detect if logN is a good way to show an axis based on the content. There should always be a way to override this if we guess wrong.
- There should be a legend somewhere that shows the meaning of line color, line types, icons, markers.
- Grids may be interesting to easily show alignment of axis steps with data, but beware that it does not overburden the view (e.g. grid colors should be really pale). This is probably something that could be optional. Make good default choices for it.
- Make sure the time-aligned views cannot be mistaken to be on the same "time alignment" as non-time-x-axis views. There should be some hint to the end user that a group of time-aligned views are indeed showing time as x axis. A non-time-x-axis view should not be visually integrated in a way that would let users think they are time-aligned. This probably has more impact on groups of views that have time as an x-axis. It is important though to clearly show this in order to allow users to distinguish between time-x-axis and non-time-x-axis views.
- Users will likely want to compare different instances of those charts one against the other to see difference in distributions, e.g. between different traces, between different point in time within a trace, between different processes, between different machines, and so on. It would be important to allow users to collect those charts into a "report" and allow them to "tag" each chart with a specific name so they can quickly make sense of how they relate to one another. Whether the charts in those reports need to be interactive is not a given: perhaps just a snapshot would be fine.
from theia-trace-extension.
Thank you very much! This is the kind of feedback we're looking for.
I was thinking that we may want "gutters" or some kind of marker to differentiate the views, but also, maybe the non-time views should be non-interlaceable with the time views.
i.e.
Resource view
flame graph
Threads view
Density
IRQ latency
would be impossible.
Some items I though of that could be atemporal:
- Cycles
- Durations
- Memory Usage
- Number of Occurrences
- user defined (I don't want to stop someone from using this to put temperature or power...)
This is not a process that we can do overnight. We won't get it right, but we want it good enough to start to make the user experience pleasant.
from theia-trace-extension.
@MatthewKhouzam Would there be interest in mockups / graph sketches of how to display titles/labels/units? As in, is there time for doing more core changes to chart components/layout?
+1 Clarify difference between time-based and not time-based charts e.g. via no interlacability #650
+1 Clarify explanations of chart contents (descriptive title, units, axis labels) #647
from theia-trace-extension.
Related Issues (20)
- Add dependencies from root as peer-dependencies in extension HOT 3
- Histogram view for experiments with 2 traces with same name and different directory not working well
- Events Table trace column for experiments with 2 traces with same name and different directory confusing
- Thread status and resources view show only one trace for experiments with multiple kernel traces with same name
- Dispose experiment/trace back-end resources when closing an experiment from the UI
- Add units for time and duration in tooltips
- Perform automated 3PP license check as part of CI for PRs
- Handle opening of single trace files via dialog HOT 2
- Add filter Thread Status HOT 10
- webpack.config.js missing in docker example HOT 1
- Make example applications more like trace viewer appliances
- Selection of row in segment store table (e.g. IRQ Latency Table) doesn't select time in other views HOT 1
- Add additional filter on Event Table HOT 1
- Make it possible to copy data from statistics tables
- Multiple selected rows highlighting does not propagate to timeline-chart
- Invoking open-trace-with-path command via vscode.commands.executeCommand() shows "maximum call stack size exceeded" error HOT 17
- Re-enable table-components.test.tsx tests
- Should remove accidentally added "yarn.lock", in folder "playwright-tests"
- Does not work properly in code-server
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from theia-trace-extension.