Arafat Khan created HDDS-14913:
----------------------------------
Summary: Implement Scalable CSV Export for Unhealthy Containers in
Recon UI
Key: HDDS-14913
URL: https://issues.apache.org/jira/browse/HDDS-14913
Project: Apache Ozone
Issue Type: Sub-task
Components: Ozone Recon
Reporter: Arafat Khan
*Problem:* Currently, exporting a large number of unhealthy container records
(e.g., Missing, Under-Replicated, Mis-Replicated, etc.) from Recon is
difficult. The UI is paginated and cannot efficiently handle downloading
millions of records. Administrators often have to rely on manual, non-scalable
database extraction methods (like connecting the Derby {{ij}} client) to
analyze cluster health data.
*Solution:* This ticket implements a native, scalable CSV export feature
directly in the Recon UI and Backend.
# *Frontend:* Added an "{*}Export CSV{*}" button to the Recon Containers page
with a dropdown selector allowing administrators to quickly extract data blocks
ranging from 10K up to 5 Million records based on their currently active
diagnostic tab (Missing, Under-Replicated, etc).
# *Backend:* Added a new REST endpoint
({{{}/api/v1/containers/unhealthy/export{}}}) that uses jOOQ cursors and JAX-RS
{{StreamingOutput}} to fetch and stream records lazily. By piping data directly
from the Derby database to the HTTP response, the JVM heap memory is protected
from OutOfMemory errors, regardless of scale.
# *Security & Limits:* The endpoint sits behind Recon's robust {{@AdminOnly}}
authorization. Additionally, a new configuration property
{{ozone.recon.csv.export.max.records}} (default: 5,000,000) was introduced to
forcefully cap exports, protecting the server connection pool and worker
threads from accidental misuse or abuse.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]