This is an automated email from the ASF dual-hosted git repository. awong pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kudu.git commit 2711b5c02b4d46c055cbf734ade99e8837f361a1 Author: Will Berkeley AuthorDate: Wed Feb 20 15:21:21 2019 -0800 Reduce startup log spam This eliminates a lot of the messages at startup that really aren't useful: 1. No more of this: I0220 13:18:51.160027 372970944 ts_tablet_manager.cc:1007] T 2f7ecbdb5c564106a2646ffe5f21f347 P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata I0220 13:18:51.161830 372970944 ts_tablet_manager.cc:1007] T 27705b0198da406d8301830cd942c7ee P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata I0220 13:18:51.162523 372970944 ts_tablet_manager.cc:1007] T 58f1243dad6346549370fbe50a739563 P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata I0220 13:18:51.163156 372970944 ts_tablet_manager.cc:1007] T c4fc7d7a16e34f4aa87e1af2e1defa2e P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata I0220 13:18:51.163739 372970944 ts_tablet_manager.cc:1007] T 28d12a741054442d988646178daad91f P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata I0220 13:18:51.164413 372970944 ts_tablet_manager.cc:1007] T 0048470f677242dda0277aed2fef7b05 P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata I0220 13:18:51.165114 372970944 ts_tablet_manager.cc:1007] T 2b9dc70391f54e3fbf116b46d86c2c50 P 0a909baebce949a6aa4cdc0f196ecd00: Loading tablet metadata ... Instead, just a periodic progress message and a summary message: I0220 15:15:29.755679 323278272 ts_tablet_manager.cc:344] Loading tablet metadata (0/60 complete) I0220 15:15:29.803109 323278272 ts_tablet_manager.cc:356] Loaded tablet metadata (60 total tablets, 60 live tablets) 2. No more of this: I0220 13:18:51.200745 372970944 ts_tablet_manager.cc:1175] T 27705b0198da406d8301830cd942c7ee P 0a909baebce949a6aa4cdc0f196ecd00: Registered tablet (data state: TABLET_DATA_READY) I0220 13:18:51.201200 372970944 ts_tablet_manager.cc:1175] T 58f1243dad6346549370fbe50a739563 P 0a909baebce949a6aa4cdc0f196ecd00: Registered tablet (data state: TABLET_DATA_READY) I0220 13:18:51.201637 372970944 ts_tablet_manager.cc:1175] T c4fc7d7a16e34f4aa87e1af2e1defa2e P 0a909baebce949a6aa4cdc0f196ecd00: Registered tablet (data state: TABLET_DATA_READY) I0220 13:18:51.202126 372970944 ts_tablet_manager.cc:1175] T 28d12a741054442d988646178daad91f P 0a909baebce949a6aa4cdc0f196ecd00: Registered tablet (data state: TABLET_DATA_READY) I0220 13:18:51.202700 372970944 ts_tablet_manager.cc:1175] T 0048470f677242dda0277aed2fef7b05 P 0a909baebce949a6aa4cdc0f196ecd00: Registered tablet (data state: TABLET_DATA_READY) I0220 13:18:51.203141 372970944 ts_tablet_manager.cc:1175] T 2b9dc70391f54e3fbf116b46d86c2c50 P 0a909baebce949a6aa4cdc0f196ecd00: Registered tablet (data state: TABLET_DATA_READY) ... Instead, just a periodic progress message and a summary message: I0220 15:15:29.803143 323278272 ts_tablet_manager.cc:362] Registering tablets (0/60 complete) I0220 15:15:29.822479 323278272 ts_tablet_manager.cc:376] Registered 60 tablets 3. Condense webserver startup messages. Instead of I0220 13:18:51.234637 372970944 webserver.cc:175] Starting webserver on 127.0.0.1:8050 I0220 13:18:51.234654 372970944 webserver.cc:180] Document root: /Users/wdberkeley/src/kudu/www I0220 13:18:51.235159 372970944 webserver.cc:313] Webserver started. Bound to: http://127.0.0.1:8050/ just I0220 15:15:29.834751 323278272 webserver.cc:307] Webserver started at http://127.0.0.1:8050/ using document root /Users/wdberkeley/src/kudu/www and password file Note that the protocol 'http://' will now correctly show as 'https://' if the webserver is configured for SSL. 4. I got rid of some of the highest level, lowest info content messages about the "tablet server starting", because that just means we finished executed code in tablet_server_main.cc, not that the tablet server is ready to do anything in particular. Change-Id: I3793a2385612cf920a94e5f62a559c350b8bf461 Reviewed-on: http://gerrit.cloudera.org:8080/12540 Tested-by: Will Berkeley Reviewed-by: Andrew Wong --- src/kudu/master/master_main.cc | 3 --- src/kudu/server/webserver.cc | 37 +++++++++++++++++----------------- src/kudu/tablet/tablet_bootstrap.cc | 5 +---- src/kudu/tserver/tablet_server_main.cc | 3 --- src/kudu/tserver/ts_tablet_manager.cc | 22 ++++++++++++-------- 5 files changed, 33 insertions(+), 37 deletions(-) diff --git a/src/kudu/master/master_main.cc b/src/kudu/master/master_main.cc index 1abb837..583a185 100644 --- a/src/kudu/master/master_main.cc +++ b/src/kudu/master/master_main.cc @@ -77,13 +77,10 @@ static int MasterMain(int argc, char** argv) { MasterOptions opts; Master server(opts); - LOG(INFO) << "Initializing master server..."; CHECK_OK(server.Init()); - LOG(INFO) << "Starting Master server..."; CHECK_OK(server.Start()); - LOG(INFO) << "Master server successfully started."; while (true) { SleepFor(MonoDelta::FromSeconds(60)); } diff --git a/src/kudu/server/webserver.cc b/src/kudu/server/webserver.cc index d0fde6b..304d3e8 100644 --- a/src/kudu/server/webserver.cc +++ b/src/kudu/server/webserver.cc @@ -162,9 +162,10 @@ Status Webserver::BuildListenSpec(string* spec) const { RETURN_NOT_OK(ParseAddressList(http_address_, 80, &addrs)); vector parts; + parts.reserve(addrs.size()); for (const Sockaddr& addr : addrs) { - // Mongoose makes sockets with 's' suffixes accept SSL traffic only - parts.push_back(addr.ToString() + (IsSecure() ? "s" : "")); + // Mongoose makes sockets with 's' suffixes accept SSL traffic only. + parts.emplace_back(addr.ToString() + (IsSecure() ? "s" : "")); } JoinStrings(parts, ",", spec); @@ -172,25 +173,17 @@ Status Webserver::BuildListenSpec(string* spec) const { } Status Webserver::Start() { - LOG(INFO) << "Starting webserver on " << http_address_; - vector options; - if (static_pages_available()) { - LOG(INFO) << "Document root: " << opts_.doc_root; options.emplace_back("document_root"); options.push_back(opts_.doc_root); options.emplace_back("enable_directory_listing"); options.emplace_back("no"); - } else { - LOG(INFO)<< "Document root disabled"; } if (IsSecure()) { - LOG(INFO) << "Webserver: Enabling HTTPS support"; - - // Initialize OpenSSL, and prevent Squeasel from also performing global OpenSSL - // initialization. + // Initialize OpenSSL, and prevent Squeasel from also performing global + // OpenSSL initialization. security::InitializeOpenSSL(); options.emplace_back("ssl_global_init"); options.emplace_back("false"); @@ -208,7 +201,7 @@ Status Webserver::Start() { &key_password)); } options.emplace_back("ssl_private_key_password"); - options.push_back(key_password); // maybe empty if not configured. + options.push_back(key_password); // May be empty if not configured. } options.emplace_back("ssl_ciphers"); @@ -223,14 +216,13 @@ Status Webserver::Start() { } if (!opts_.password_file.empty()) { - // Mongoose doesn't log anything if it can't stat the password file (but will if it - // can't open it, which it tries to do during a request) + // Mongoose doesn't log anything if it can't stat the password file (but + // will if it can't open it, which it tries to do during a request). if (!Env::Default()->FileExists(opts_.password_file)) { ostringstream ss; ss << "Webserver: Password file does not exist: " << opts_.password_file; return Status::InvalidArgument(ss.str()); } - LOG(INFO) << "Webserver: Password file is " << opts_.password_file; options.emplace_back("global_auth_file"); options.push_back(opts_.password_file); } @@ -298,7 +290,8 @@ Status Webserver::Start() { std::bind(std::mem_fn(&Webserver::RootHandler), this, std::placeholders::_1, std::placeholders::_2); - RegisterPathHandler("/", "Home", default_callback, true /* styled */, true /* on_nav_bar */); + RegisterPathHandler("/", "Home", default_callback, + /*is_styled=*/true, /*is_on_nav_bar=*/true); vector addrs; RETURN_NOT_OK(GetBoundAddresses(&addrs)); @@ -307,10 +300,16 @@ Status Webserver::Start() { if (!bound_addresses_str.empty()) { bound_addresses_str += ", "; } - bound_addresses_str += "http://" + addr.ToString() + "/"; + bound_addresses_str += Substitute("$0$1/", + IsSecure() ? "https://" : "http://", + addr.ToString()); } - LOG(INFO) << "Webserver started. Bound to: " << bound_addresses_str; + LOG(INFO) << Substitute( + "Webserver started at $0 using document root $1 and password file $2", + bound_addresses_str, + static_pages_available() ? opts_.doc_root : "", + opts_.password_file.empty() ? "" : opts_.password_file); return Status::OK(); } diff --git a/src/kudu/tablet/tablet_bootstrap.cc b/src/kudu/tablet/tablet_bootstrap.cc index 2b03540..d37157e 100644 --- a/src/kudu/tablet/tablet_bootstrap.cc +++ b/src/kudu/tablet/tablet_bootstrap.cc @@ -436,9 +436,7 @@ class TabletBootstrap { }; void TabletBootstrap::SetStatusMessage(const string& status) { - LOG(INFO) << "T " << tablet_meta_->tablet_id() - << " P " << tablet_meta_->fs_manager()->uuid() << ": " - << status; + LOG_WITH_PREFIX(INFO) << status; if (tablet_replica_) tablet_replica_->SetStatusMessage(status); } @@ -567,7 +565,6 @@ Status TabletBootstrap::RunBootstrap(shared_ptr* rebuilt_tablet, VLOG_WITH_PREFIX(1) << "Tablet Metadata: " << SecureDebugString(super_block); } - // Ensure the tablet's data dirs are present and healthy before it is opened. DataDirGroupPB data_dir_group; RETURN_NOT_OK_PREPEND( diff --git a/src/kudu/tserver/tablet_server_main.cc b/src/kudu/tserver/tablet_server_main.cc index 17989be..7c7ca60 100644 --- a/src/kudu/tserver/tablet_server_main.cc +++ b/src/kudu/tserver/tablet_server_main.cc @@ -82,15 +82,12 @@ static int TabletServerMain(int argc, char** argv) { TabletServerOptions opts; TabletServer server(opts); - LOG(INFO) << "Initializing tablet server..."; CHECK_OK(server.Init()); MAYBE_FAULT(FLAGS_fault_before_start); - LOG(INFO) << "Starting tablet server..."; CHECK_OK(server.Start()); - LOG(INFO) << "Tablet server successfully started."; while (true) { SleepFor(MonoDelta::FromSeconds(60)); } diff --git a/src/kudu/tserver/ts_tablet_manager.cc b/src/kudu/tserver/ts_tablet_manager.cc index b365ba4..2dc868e 100644 --- a/src/kudu/tserver/ts_tablet_manager.cc +++ b/src/kudu/tserver/ts_tablet_manager.cc @@ -334,7 +334,7 @@ Status TSTabletManager::Init() { InitLocalRaftPeerPB(); - vector > metas; + vector> metas; // First, load all of the tablet metadata. We do this before we start // submitting the actual OpenTablet() tasks so that we don't have to compete @@ -347,16 +347,20 @@ Status TSTabletManager::Init() { RETURN_NOT_OK_PREPEND(OpenTabletMeta(tablet_id, &meta), "Failed to open tablet metadata for tablet: " + tablet_id); loaded_count++; - if (PREDICT_FALSE(meta->tablet_data_state() != TABLET_DATA_READY)) { + if (meta->tablet_data_state() != TABLET_DATA_READY) { RETURN_NOT_OK(HandleNonReadyTabletOnStartup(meta)); continue; } metas.push_back(meta); } - LOG(INFO) << Substitute("Loaded tablet metadata ($0 live tablets)", metas.size()); + LOG(INFO) << Substitute("Loaded tablet metadata ($0 total tablets, $1 live tablets)", + loaded_count, metas.size()); // Now submit the "Open" task for each. - for (const scoped_refptr& meta : metas) { + int registered_count = 0; + for (const auto& meta : metas) { + KLOG_EVERY_N_SECS(INFO, 1) << Substitute("Registering tablets ($0/$1 complete)", + registered_count, metas.size()); scoped_refptr deleter; { std::lock_guard lock(lock_); @@ -367,7 +371,9 @@ Status TSTabletManager::Init() { RETURN_NOT_OK(CreateAndRegisterTabletReplica(meta, NEW_REPLICA, &replica)); RETURN_NOT_OK(open_tablet_pool_->SubmitFunc(boost::bind(&TSTabletManager::OpenTablet, this, replica, deleter))); + registered_count++; } + LOG(INFO) << Substitute("Registered $0 tablets", registered_count); { std::lock_guard lock(lock_); @@ -1004,7 +1010,7 @@ Status TSTabletManager::StartTabletStateTransitionUnlocked( Status TSTabletManager::OpenTabletMeta(const string& tablet_id, scoped_refptr* metadata) { - LOG(INFO) << LogPrefix(tablet_id) << "Loading tablet metadata"; + VLOG(1) << LogPrefix(tablet_id) << "Loading tablet metadata"; TRACE("Loading metadata..."); scoped_refptr meta; RETURN_NOT_OK_PREPEND(TabletMetadata::Load(fs_manager_, tablet_id, &meta), @@ -1027,7 +1033,7 @@ void TSTabletManager::OpenTablet(const scoped_refptr& replica, shared_ptr tablet; scoped_refptr log; - LOG(INFO) << LogPrefix(tablet_id) << "Bootstrapping tablet"; + VLOG(1) << LogPrefix(tablet_id) << "Bootstrapping tablet"; TRACE("Bootstrapping tablet"); scoped_refptr cmeta; @@ -1172,8 +1178,8 @@ void TSTabletManager::RegisterTablet(const std::string& tablet_id, } TabletDataState data_state = replica->tablet_metadata()->tablet_data_state(); - LOG(INFO) << LogPrefix(tablet_id) << Substitute("Registered tablet (data state: $0)", - TabletDataState_Name(data_state)); + VLOG(1) << LogPrefix(tablet_id) << Substitute("Registered tablet (data state: $0)", + TabletDataState_Name(data_state)); } bool TSTabletManager::LookupTablet(const string& tablet_id,