mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
getactorstats query for validator-engine-console
This commit is contained in:
parent
e55c132178
commit
420029b056
39 changed files with 1223 additions and 51 deletions
|
@ -1008,6 +1008,32 @@ td::Status ImportShardOverlayCertificateQuery::receive(td::BufferSlice data) {
|
|||
td::TerminalIO::out() << "successfully sent certificate to overlay manager\n";
|
||||
return td::Status::OK();
|
||||
}
|
||||
td::Status GetActorStatsQuery::run() {
|
||||
auto r_file_name = tokenizer_.get_token<std::string>();
|
||||
if (r_file_name.is_ok()) {
|
||||
file_name_ = r_file_name.move_as_ok();
|
||||
}
|
||||
return td::Status::OK();
|
||||
}
|
||||
td::Status GetActorStatsQuery::send() {
|
||||
auto b = ton::create_serialize_tl_object<ton::ton_api::engine_validator_getActorTextStats>();
|
||||
td::actor::send_closure(console_, &ValidatorEngineConsole::envelope_send_query, std::move(b), create_promise());
|
||||
return td::Status::OK();
|
||||
}
|
||||
|
||||
td::Status GetActorStatsQuery::receive(td::BufferSlice data) {
|
||||
TRY_RESULT_PREFIX(f, ton::fetch_tl_object<ton::ton_api::engine_validator_textStats>(data.as_slice(), true),
|
||||
"received incorrect answer: ");
|
||||
if (file_name_.empty()) {
|
||||
td::TerminalIO::out() << f->data_;
|
||||
} else {
|
||||
std::ofstream sb(file_name_);
|
||||
sb << f->data_;
|
||||
sb << std::flush;
|
||||
td::TerminalIO::output(std::string("wrote stats to " + file_name_ + "\n"));
|
||||
}
|
||||
return td::Status::OK();
|
||||
}
|
||||
|
||||
td::Status GetPerfTimerStatsJsonQuery::run() {
|
||||
TRY_RESULT_ASSIGN(file_name_, tokenizer_.get_token<std::string>());
|
||||
|
|
|
@ -1076,6 +1076,28 @@ class ImportShardOverlayCertificateQuery : public Query {
|
|||
std::string in_file_;
|
||||
};
|
||||
|
||||
class GetActorStatsQuery : public Query {
|
||||
public:
|
||||
GetActorStatsQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
: Query(console, std::move(tokenizer)) {
|
||||
}
|
||||
td::Status run() override;
|
||||
td::Status send() override;
|
||||
td::Status receive(td::BufferSlice data) override;
|
||||
static std::string get_name() {
|
||||
return "getactorstats";
|
||||
}
|
||||
static std::string get_help() {
|
||||
return "getactorstats [<outfile>]\tget actor stats and print it either in stdout or in <outfile>";
|
||||
}
|
||||
std::string name() const override {
|
||||
return get_name();
|
||||
}
|
||||
|
||||
private:
|
||||
std::string file_name_;
|
||||
};
|
||||
|
||||
class GetPerfTimerStatsJsonQuery : public Query {
|
||||
public:
|
||||
GetPerfTimerStatsJsonQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
|
|
|
@ -140,6 +140,7 @@ void ValidatorEngineConsole::run() {
|
|||
add_query_runner(std::make_unique<QueryRunnerImpl<GetOverlaysStatsJsonQuery>>());
|
||||
add_query_runner(std::make_unique<QueryRunnerImpl<ImportShardOverlayCertificateQuery>>());
|
||||
add_query_runner(std::make_unique<QueryRunnerImpl<SignShardOverlayCertificateQuery>>());
|
||||
add_query_runner(std::make_unique<QueryRunnerImpl<GetActorStatsQuery>>());
|
||||
add_query_runner(std::make_unique<QueryRunnerImpl<GetPerfTimerStatsJsonQuery>>());
|
||||
add_query_runner(std::make_unique<QueryRunnerImpl<GetShardOutQueueSizeQuery>>());
|
||||
add_query_runner(std::make_unique<QueryRunnerImpl<SetExtMessagesBroadcastDisabledQuery>>());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue