Closed AbanoubGhadban closed 2 months ago
The recent update introduces a Trace Visualizer into the application, enabling visualization of operations through a Gantt chart. Key changes include implementation of a new controller, view, and routes for the visualizer, along with tracing enhancements within the react_on_rails
framework. A new Rake task is also added to easily start a server for the visualizer. These changes collectively aim to enhance debugging and performance analysis.
File(s) | Change Summary |
---|---|
app/controllers/trace_visualizer/... |
Added TraceVisualizerController to handle log reading, data parsing, and JSON response for visualization. |
app/views/trace_visualizer/... |
Introduced index.html.erb to render a web page displaying a Gantt chart for operations timeline data. |
config/routes.rb |
Added route for TraceVisualizer engine to direct requests to trace_visualizer#index action. |
lib/react_on_rails.rb |
Added require 'trace_visualizer/engine' statement. |
lib/react_on_rails/helper.rb |
Refactored methods to include tracing via ReactOnRails::Utils.with_trace ; modified server rendering reset logic. |
lib/react_on_rails/server_rendering_js_code.rb |
Added tracing block to server_rendering_component_js_code method, including error-checking logic. |
lib/react_on_rails/server_rendering_pool/... |
Modified reset_pool_if_server_bundle_was_modified signature and refactored logic; added tracing. |
lib/react_on_rails/utils.rb |
Introduced with_trace method for conditional logging and time tracking. |
lib/tasks/trace_visualizer.rake |
Added a Rake task to start a server for Trace Visualizer engine using Puma. |
lib/trace_visualizer/engine.rb |
Introduced TraceVisualizer module with Engine class for Rails engine namespace isolation. |
sequenceDiagram
participant User
participant Browser
participant TraceVisualizerController
participant TraceVisualizer::Engine
User->>Browser: Request data visualization
Browser->>TraceVisualizerController: GET /trace_visualizer
TraceVisualizerController->>TraceVisualizer::Engine: Process log data
TraceVisualizer::Engine->>TraceVisualizerController: Return processed data
TraceVisualizerController->>Browser: Render JSON response
Browser->>User: Display Gantt chart
sequenceDiagram
participant Client
participant ReactOnRails
participant RenderHelper
Client->>ReactOnRails: Request render React component
ReactOnRails->>RenderHelper: Call internal_react_component with trace
RenderHelper->>ReactOnRails: Render component with trace
ReactOnRails->>Client: Return rendered component
In the land where codes and logs unite,
A visualizer springs to life in the night.
Gantt charts bloom, tracing every move,
With enhanced insights, they beautifully groove.
Debugging's now a clearer stage,
Thanks to the updates on this new page.
π Happy coding nights from CodeRabbit's sage! ππ
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Summary
Remove this paragraph and provide a general description of the code changes in your pull request... were there any bugs you had fixed? If so, mention them. If these bugs have open GitHub issues, be sure to tag them here as well, to keep the conversation linked together.
Pull Request checklist
Remove this line after checking all the items here. If the item is not applicable to the PR, both check it out and wrap it by
~
.Add the CHANGELOG entry at the top of the file.
Other Information
Remove this paragraph and mention any other important and relevant information such as benchmarks.
This change isβ
Summary by CodeRabbit
New Features
http://localhost:5200
.Enhancements
Refactor