feat(maintenance): thread dump and info REST endpoints (#35205)#35463
feat(maintenance): thread dump and info REST endpoints (#35205)#35463hassandotcms wants to merge 2 commits into
Conversation
Adds GET /api/v1/maintenance/_threads and GET /api/v1/maintenance/_threads/info, returning structured JSON via Immutables-backed view classes. Replaces the legacy DWR ThreadMonitorTool which served HTML <pre> blobs and is unusable for the Angular Maintenance portlet rewrite. Both responses include serverId and serverName so the UI can identify which cluster node served the request.
|
Claude finished @hassandotcms's task in 1m 47s —— View job PR ReviewTwo new endpoints look reasonable overall. A few real issues worth a second look: Bugs1. 2. Two separate snapshots → silent thread drops — 3. Locale/timezone-fragile timestamps —
For a JSON API consumed by an Angular UI, use Design / consistency4. No SecurityLogger entry for thread dump / thread info access — 5. 6. No feature flag — Sibling sensitive endpoints ( Minor
Not flaggedAuth ( Summary: the deadlock-count/filter inconsistency (#1), the silent thread-drop race (#2), and the locale-fragile timestamps (#3) are the substantive items. The SecurityLogger gap (#4) and |
…dpoints Brings upstream main into the thread-diagnostics branch. Conflicts in MaintenanceResource.java and openapi.yaml resolved by keeping both feature sets: the new Thread Diagnostics endpoints from this branch and the Fix/Clean Assets endpoints from main. openapi.yaml regenerated.
Adds GET /api/v1/maintenance/_threads and GET /api/v1/maintenance/_threads/info, returning structured JSON via Immutables-backed view classes. Replaces the legacy DWR ThreadMonitorTool which served HTML blobs and is unusable for the Angular Maintenance portlet rewrite. Both responses include serverId and serverName so the UI can identify which cluster node served the request.
This PR fixes: #35205