1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

Improve validator session stats (#1117)

* Improve validator session stats

* Collator stats: block limits, number of processed external messages
* Collator and validator work time
* Last key block seqno
* Approvers and signers

* End validator session stats
This commit is contained in:
SpyCheese 2024-08-20 19:54:16 +03:00 committed by EmelyanenkoK
parent b70090dae3
commit dc26c3be67
21 changed files with 373 additions and 27 deletions

View file

@ -386,6 +386,7 @@ void ValidatorGroup::start(std::vector<BlockIdExt> prev, BlockIdExt min_masterch
stats.session_id = session_id_;
stats.shard = shard_;
stats.cc_seqno = validator_set_->get_catchain_seqno();
stats.last_key_block_seqno = last_key_block_seqno_;
stats.timestamp = td::Clocks::system();
td::uint32 idx = 0;
for (const auto& node : validator_set_->export_vector()) {
@ -417,6 +418,16 @@ void ValidatorGroup::destroy() {
td::actor::send_closure(manager, &ValidatorManager::log_validator_session_stats, block_id,
std::move(stats));
});
td::actor::send_closure(session_, &validatorsession::ValidatorSession::get_end_stats,
[manager = manager_](td::Result<validatorsession::EndValidatorGroupStats> R) {
if (R.is_error()) {
LOG(DEBUG) << "Failed to get validator session end stats: " << R.move_as_error();
return;
}
auto stats = R.move_as_ok();
td::actor::send_closure(manager, &ValidatorManager::log_end_validator_group_stats,
std::move(stats));
});
auto ses = session_.release();
delay_action([ses]() mutable { td::actor::send_closure(ses, &validatorsession::ValidatorSession::destroy); },
td::Timestamp::in(10.0));