voonhous opened a new pull request, #13147: URL: https://github.com/apache/hudi/pull/13147
### Describe the issue this Pull Request addresses Visualizing the timeline via console and finder/explorer is often challenging as files are often sorted via naming convention. With completion time thrown into completed instants, it makes grouping of instants even harder when looking at it via console. Hence, a timeline visualizer can oftentimes make one able to understand the timeline better, especially for concurrent/long writes. The timeline-ui page is accessible via `http://timeline_server__host:timeline_server__port/ui` after starting the timeline service. ### Summary and Changelog Attached below is an example of how it looks like for now, functionalities are there, but it is a little rough: #### Main page The main page allow users to input the the table paths and the timeline will be visualised. <img width="1025" height="335" alt="image" src="https://github.com/user-attachments/assets/25370c58-b037-4a31-9fbc-c8fc5430944a" /> #### Hovering over instants Hovering over the instant bars will show you additional details like duration an action took. <img width="4092" height="1386" alt="image" src="https://github.com/user-attachments/assets/96b4abb2-b708-4603-a9b9-9b6d4be4ce7e" /> #### Selecting an instant Since commit details are saved to the filesystem as avro binaries, the commit information are not easily readable. Selecting the commit/deltacommit will return the details in json format. <img width="2052" height="1155" alt="image" src="https://github.com/user-attachments/assets/495082af-b6fa-4bc1-87fa-5d943b2c3d5f" /> #### Clean range Upon selection of a `clean` commit/plan that uses `KEEP_LATEST_COMMITS`, clean range will be displayed. <img width="2043" height="746" alt="image" src="https://github.com/user-attachments/assets/20c06785-b38d-4c8e-a0cf-370d7320af37" /> #### Configs page Table configurations are displayed in the `Table Config` tab: <img width="2041" height="813" alt="image" src="https://github.com/user-attachments/assets/f607f0ff-751e-4647-b8c6-b66542a90212" /> #### Schema History Schema related changelogs are also displayed (only when schema operations are done using `hoodie.schema.on.read.enable=true` under the `Shcema History` tab. <img width="2042" height="1177" alt="image" src="https://github.com/user-attachments/assets/2281da8d-c972-429c-8a06-a2d3a1c82bd1" /> The schema changelog can also be expanded to see what column changed at which schemacommit. <img width="2040" height="534" alt="image" src="https://github.com/user-attachments/assets/e05cd10e-3905-4ced-bc12-3a47512f8fba" /> ### Impact _Describe any public API or user-facing feature change or any performance impact._ Added 4 API endpoints on the `/v2/hoodie/view` path: 1. `timeline/instants/all?basepath={basepath}` - all instants (v2 format) 2. `timeline/instant?basepath={basepath}&instant={instant}&instantaction={action}&instantstate={state}` - instant details 3. `table/config?basepath={basepath}` - table configuration 4. `table/schema/history?basepath={basepath}&limit={limit}` - schema evolution history The UI is served at `/ui` (previously redirected to `/index.html`). ### Risk Level None ### Documentation Update We do not have any documentations for timeline service, hence, i suppose no documentation changes are required. ### Contributor's checklist - [x] Read through [contributor's guide](https://hudi.apache.org/contribute/how-to-contribute) - [x] Change Logs and Impact were stated clearly - [x] Adequate tests were added if applicable - [x] CI passed -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
