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:
parent
5bdcb5e2ce
commit
9c3dc22b78
21 changed files with 373 additions and 27 deletions
|
@ -52,6 +52,16 @@ struct AsyncSerializerState {
|
|||
UnixTime last_written_block_ts;
|
||||
};
|
||||
|
||||
struct CollationStats {
|
||||
td::uint32 bytes, gas, lt_delta;
|
||||
int cat_bytes, cat_gas, cat_lt_delta;
|
||||
std::string limits_log;
|
||||
td::uint32 ext_msgs_total = 0;
|
||||
td::uint32 ext_msgs_filtered = 0;
|
||||
td::uint32 ext_msgs_accepted = 0;
|
||||
td::uint32 ext_msgs_rejected = 0;
|
||||
};
|
||||
|
||||
using ValidateCandidateResult = td::Variant<UnixTime, CandidateReject>;
|
||||
|
||||
class ValidatorManager : public ValidatorManagerInterface {
|
||||
|
@ -173,6 +183,7 @@ class ValidatorManager : public ValidatorManagerInterface {
|
|||
|
||||
virtual void log_validator_session_stats(BlockIdExt block_id, validatorsession::ValidatorSessionStats stats) = 0;
|
||||
virtual void log_new_validator_group_stats(validatorsession::NewValidatorGroupStats stats) = 0;
|
||||
virtual void log_end_validator_group_stats(validatorsession::EndValidatorGroupStats stats) = 0;
|
||||
|
||||
virtual void get_block_handle_for_litequery(BlockIdExt block_id, td::Promise<ConstBlockHandle> promise) = 0;
|
||||
virtual void get_block_data_for_litequery(BlockIdExt block_id, td::Promise<td::Ref<BlockData>> promise) = 0;
|
||||
|
@ -192,6 +203,12 @@ class ValidatorManager : public ValidatorManagerInterface {
|
|||
virtual void add_lite_query_stats(int lite_query_id) {
|
||||
}
|
||||
|
||||
virtual void record_collate_query_stats(BlockIdExt block_id, double work_time, double cpu_work_time,
|
||||
CollationStats stats) {
|
||||
}
|
||||
virtual void record_validate_query_stats(BlockIdExt block_id, double work_time, double cpu_work_time) {
|
||||
}
|
||||
|
||||
static bool is_persistent_state(UnixTime ts, UnixTime prev_ts) {
|
||||
return ts / (1 << 17) != prev_ts / (1 << 17);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue