Next Features and Development
0.2 - Jeffrey CLI
- Investigate and implement generator of current components into a single HTML file (along with data)
- Implement Flamegraph Generator
- Implement Sub-Second Generator
- Support Timeseries in Flamegraph Generator
- Command for listing stack-based event-types
0.3 - Simple Cloud Deployment
- Configuration of directories for Jeffrey
- HTTP Config for Load App
- Special handling of generated Lambdas to stop crippling DiffGraph
- Page for recordings maintained by Jeffrey
- Generate a new profile from the recording
- “Simple Cloud Deployment” blog post
- Add info about secondary profiles to DiffGraph cards
0.4 - Performance
- Pre-generate all static profile’s content (content for Profile Information, Auto-Analysis, Event Viewer)
- Pre-generate content for the main configured flamegraphs and sub-second graphs
- Shared iterating over the JFR file (one iteration of JFR file for multiple outputs)
- Processing in parallel (e.g. Primary&Secondary recordings DiffGraph)
- Profile Jeffrey with Jeffrey
0.5 - Thread View
- Threads with timelines and given states
- Context window - stacktrace/flamegraph for BLOCKED state
- Context window - generate a flamegraph for a thread RUNNABLE state for the given period (modal window)
- Filtering/Grouping threads
0.6 - Manipulating with Recordings
- Upload recordings to folders
- Merge recordings
- Split recordings into chunks
- Generate a new recording with specific events from the old one
- Generate a new recording by removing specific events from the old one
- Generate a new recording from a specific time range of the old one
0.7 - Code Quality (Removing TechDebt)
We omitted tests to be focused on bringing features to the first major version of Jeffrey (to check whether community has any interest to this app)
Reasons for omitting tests:
- Limited time is invested to features
- A lot of unknowns (choosing proper plotting libraries requiring data in different formats)
-
Plenty of internal refactorings would cause rewriting tests for the price of delaying features
- Test Coverage
- Documentation to interfaces and other building blocks
- Code Refactorings
- Error handling - meaningful error messages from backend to frontend