mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Add GetPerfTimerStats (#451)
* Add getperfwarningtimeraverage query for validator-engine-console * Fix for getperfwarningtimeraverage query * getperftimerstats * Add history max size: 1 hour * PerfWarningTimer: move callback instead of copy * PerfWarningTimer: fix move constructor bug * PerfWarningTimer: fix bug: lifetime of the callback was greater than lifetime of the local variable 'manager' captured by reference * Fix validate-query.cpp: 'manager' used after it was moved * PerfWarningTimer: remove logs * getperftimerstats: write to json file * getperftimerstatsjson Co-authored-by: legaii <jgates.ardux@gmail.com> Co-authored-by: Ivan Siomash <106972486+legaii@users.noreply.github.com>
This commit is contained in:
parent
8376c289d7
commit
8329a58994
25 changed files with 244 additions and 27 deletions
|
@ -2495,6 +2495,24 @@ void ValidatorManagerImpl::prepare_stats(td::Promise<std::vector<std::pair<std::
|
|||
td::actor::send_closure(db_, &Db::prepare_stats, merger.make_promise("db."));
|
||||
}
|
||||
|
||||
void ValidatorManagerImpl::prepare_perf_timer_stats(td::Promise<std::vector<PerfTimerStats>> promise) {
|
||||
promise.set_value(std::vector<PerfTimerStats>(perf_timer_stats));
|
||||
}
|
||||
|
||||
void ValidatorManagerImpl::add_perf_timer_stat(std::string name, double duration) {
|
||||
for (auto &s : perf_timer_stats) {
|
||||
if (s.name == name) {
|
||||
double now = td::Time::now();
|
||||
while (!s.stats.empty() && s.stats.front().first < now - 3600.0) {
|
||||
s.stats.pop_front();
|
||||
}
|
||||
s.stats.push_back({td::Time::now(), duration});
|
||||
return;
|
||||
}
|
||||
}
|
||||
perf_timer_stats.push_back({name, {{td::Time::now(), duration}}});
|
||||
}
|
||||
|
||||
void ValidatorManagerImpl::truncate(BlockSeqno seqno, ConstBlockHandle handle, td::Promise<td::Unit> promise) {
|
||||
td::actor::send_closure(db_, &Db::truncate, seqno, std::move(handle), std::move(promise));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue