I'd like to refactor and improve the metric collection system in the database layer. Specifically, please refactor the report_data_size function to make it publicly accessible by changing its visibility from pub(super) to pub. Then, remove the commented-out report_data_size invocation from record_tx_metrics in the datastore.rs file and ensure that metric collection is more streamlined. Add a new function in the RelationalDB struct named update_data_size_metrics to simplify invoking report_data_size and enhance its usage across the code. Finally, refactor the storage_monitor function by renaming it to metric_reporter, and ensure that it periodically collects disk usage statistics and updates data size metrics. Additionally, leave a TODO in the code for adding heap usage metrics in the future. Please ensure that these changes maintain the core functionality while improving the overall organization and clarity of the code.