1
0
mirror of https://github.com/Zygo/bees.git synced 2025-05-17 21:35:45 +02:00

progress: put the progress table in the stats and status files

Make the progress information more accessible, without having to
enable full debug log and fish it out of the stream with grep.

Also increase the progress log level to INFO.

Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
Zygo Blaxell 2024-11-27 15:58:06 -05:00
parent 59f8a467c3
commit 9c183c2c22
4 changed files with 43 additions and 6 deletions

View File

@ -98,6 +98,8 @@ BeesContext::dump_status()
TaskMaster::print_queue(ofs); TaskMaster::print_queue(ofs);
#endif #endif
ofs << get_progress();
ofs.close(); ofs.close();
BEESNOTE("renaming status file '" << status_file << "'"); BEESNOTE("renaming status file '" << status_file << "'");
@ -112,6 +114,20 @@ BeesContext::dump_status()
} }
} }
void
BeesContext::set_progress(const string &str)
{
unique_lock<mutex> lock(m_progress_mtx);
m_progress_str = str;
}
string
BeesContext::get_progress()
{
unique_lock<mutex> lock(m_progress_mtx);
return m_progress_str;
}
void void
BeesContext::show_progress() BeesContext::show_progress()
{ {
@ -159,6 +175,8 @@ BeesContext::show_progress()
BEESLOGINFO("\ttid " << t.first << ": " << t.second); BEESLOGINFO("\ttid " << t.first << ": " << t.second);
} }
// No need to log progress here, it is logged when set
lastStats = thisStats; lastStats = thisStats;
} }
} }

View File

@ -356,6 +356,8 @@ BeesHashTable::prefetch_loop()
auto avg_rates = thisStats / m_ctx->total_timer().age(); auto avg_rates = thisStats / m_ctx->total_timer().age();
graph_blob << "\t" << avg_rates << "\n"; graph_blob << "\t" << avg_rates << "\n";
graph_blob << m_ctx->get_progress();
BEESLOGINFO(graph_blob.str()); BEESLOGINFO(graph_blob.str());
catch_all([&]() { catch_all([&]() {
m_stats_file.write(graph_blob.str()); m_stats_file.write(graph_blob.str());

View File

@ -1069,10 +1069,6 @@ BeesScanModeExtent::next_transid(const CrawlMap &crawl_map_unused)
}); });
BEESCOUNT(progress_ok); BEESCOUNT(progress_ok);
} }
ostringstream oss;
eta.left("PROGRESS: ");
eta.mid(" ");
eta.right("");
eta.insert_row(0, vector<Table::Content> { eta.insert_row(0, vector<Table::Content> {
Table::Text("done"), Table::Text("done"),
Table::Text(pretty(fs_size)), Table::Text(pretty(fs_size)),
@ -1087,8 +1083,24 @@ BeesScanModeExtent::next_transid(const CrawlMap &crawl_map_unused)
}); });
const auto dash_fill = Table::Fill('-'); const auto dash_fill = Table::Fill('-');
eta.insert_row(1, vector<Table::Content>(eta.cols().size(), dash_fill)); eta.insert_row(1, vector<Table::Content>(eta.cols().size(), dash_fill));
oss << eta; eta.left("");
BEESLOGDEBUG(oss.str()); eta.mid(" ");
eta.right("");
// One for publication through beesstats.txt and $BEESSTATUS
{
ostringstream progress_oss;
progress_oss << eta;
m_ctx->set_progress(progress_oss.str());
}
// One for the debug log
{
eta.left("PROGRESS: ");
ostringstream log_oss;
log_oss << eta;
BEESLOGINFO(log_oss.str());
}
} }
void void

View File

@ -749,6 +749,9 @@ class BeesContext : public enable_shared_from_this<BeesContext> {
shared_ptr<BeesThread> m_progress_thread; shared_ptr<BeesThread> m_progress_thread;
shared_ptr<BeesThread> m_status_thread; shared_ptr<BeesThread> m_status_thread;
mutex m_progress_mtx;
string m_progress_str;
void set_root_fd(Fd fd); void set_root_fd(Fd fd);
BeesResolveAddrResult resolve_addr_uncached(BeesAddress addr); BeesResolveAddrResult resolve_addr_uncached(BeesAddress addr);
@ -784,6 +787,8 @@ public:
void dump_status(); void dump_status();
void show_progress(); void show_progress();
void set_progress(const string &str);
string get_progress();
void start(); void start();
void stop(); void stop();