20 #ifndef RIPPLE_BASICS_PERFLOGIMP_H
21 #define RIPPLE_BASICS_PERFLOGIMP_H
23 #include <ripple/basics/PerfLog.h>
24 #include <ripple/basics/chrono.h>
25 #include <ripple/beast/utility/Journal.h>
26 #include <ripple/protocol/jss.h>
27 #include <ripple/rpc/impl/Handler.h>
28 #include <boost/asio/ip/host_name.hpp>
164 rpcEnd(method, requestId,
true);
170 rpcEnd(method, requestId,
false);
180 int instance)
override;
211 #endif // RIPPLE_BASICS_PERFLOGIMP_H
std::chrono::microseconds microseconds
microseconds runningDuration
system_time_point lastLog_
std::set< char const * > getHandlerNames()
Return names of all methods.
Json::Value countersJson() const override
Render performance counters in Json.
PerfLogImp(Setup const &setup, Application &app, beast::Journal journal, std::function< void()> &&signalStop)
void jobFinish(JobType const type, microseconds dur, int instance) override
Log job finishing.
void rotate() override
Rotate perf log file.
std::condition_variable cond_
Singleton class that maintains performance counters and optionally writes Json-formatted data to a di...
Implementation class for PerfLog.
std::unordered_map< std::uint64_t, MethodStart > methods_
const std::string hostname_
Configuration from [perf] section of rippled.cfg.
void jobStart(JobType const type, microseconds dur, steady_time_point startTime, int instance) override
Log job executing.
Json::Value currentJson() const override
Render currently executing jobs and RPC calls and durations in Json.
A box coupling data with a mutex for locking access to it.
std::vector< std::pair< JobType, steady_time_point > > jobs_
std::unordered_map< JobType, Locked< Jq > > jq_
Counters(std::set< char const * > const &labels, JobTypes const &jobTypes)
static JobTypes const & instance()
A generic endpoint for log messages.
const std::function< void()> signalStop_
std::unordered_map< std::string, Locked< Rpc > > rpc_
Job Queue task performance counters.
microseconds queuedDuration
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
std::chrono::time_point< steady_clock > steady_time_point
RPC performance counters.
void rpcEnd(std::string const &method, std::uint64_t const requestId, bool finish)
std::chrono::time_point< system_clock > system_time_point
void rpcStart(std::string const &method, std::uint64_t const requestId) override
Log start of RPC call.
Json::Value currentJson() const
Track performance counters and currently executing tasks.
Locked(Locked const &rhs)
void rpcFinish(std::string const &method, std::uint64_t const requestId) override
Log successful finish of RPC call.
void jobQueue(JobType const type) override
Log queued job.
void resizeJobs(int const resize) override
Ensure enough room to store each currently executing job.
Json::Value countersJson() const
void rpcError(std::string const &method, std::uint64_t const requestId) override
Log errored RPC call.