enhancement
major
minor
defect
critical
major
minor
major
#30058
Administration of the React UI: memory trend chart (memory use over time incl. garbage collection) and the remaining monitoring views of the classic UI
Split off #30047. Follow-up to #29767; related: #29108.
Context
The React UI is managed via admin/admin.view.xml in tl-layout-view (sections: Access Control, Monitoring, System; additional sections are contributed by same-path overlays—see the developer article view-layer/overlays). Monitoring → Application displays only the current memory snapshot; the memory trend is available only in the classic UI (com.top_logic.monitoring, admin/monitor/memory/memoryMonitorChart.layout.xml).
Feature
A chart showing memory usage over time, including garbage collection runs, in the Monitoring section of the React administration. The other monitoring views from the classic module com.top_logic.monitoring are available in the React administration with the same functionality.
Solution
- New module `com.top_logic.monitoring.view'(depends on tl-layout-view and tl-layout-react-chartjs, not on tl-monitoring, which provides the classic Flex reporting; included in tl-starter-react).
- Memory History (Monitoring → Memory): MemoryObserverThread (com.top_logic) additionally records the number and duration of garbage collections for each entry. The TL-Script function `monitorMemoryUsage() ` returns the buffered entries; the chart displays used/reserved/maximum memory over time and the number of garbage collections per interval.
- Logins (Monitoring → Logins): Logins per hour/day/week/month/year within a specified time period, displayed as a chart (monitorSessionLogins(from, to, period)).
- Log Entries: If no file is selected, all log files combined, sorted by severity and time; Excel export; “Output to Console” for the selected line.
- Session log: in the user menu for your own session (any logged-in user), in the administration section for the selected session (new column with the session’s log identifier).
- User sessions and failed logins: Time period instead of a fixed 30 days; date columns sorted and filtered by date; export; refresh.
- Filters for “Logins” and “Changes”: a <fields> grid with all labels above the input fields; for “Changes,” the Range, From, To, and page buttons are in one row, with the two checkboxes below them.
- General: TableExportCommand.contribute(...) provides export functionality for every table built in Java.
- General (form layout, tl-design-system form.css): A field is positioned at the top of its grid row. If there is a taller neighboring field in the same row, the label and input field no longer extend beyond its height but remain aligned with the other fields.
- Not included: the Schema Monitor (#30060).
Verification
tl-demo-react (/view/, root / root1234), Administration → Monitoring.