3#include <xrpld/rpc/detail/Handler.h>
5#include <xrpl/beast/utility/Journal.h>
6#include <xrpl/core/PerfLog.h>
8#include <boost/asio/ip/host_name.hpp>
138 rpcEnd(method, requestId,
true);
144 rpcEnd(method, requestId,
false);
A generic endpoint for log messages.
static JobTypes const & instance()
std::condition_variable cond_
void jobFinish(JobType const type, microseconds dur, int instance) override
Log job finishing.
PerfLogImp(Setup setup, Application &app, beast::Journal journal, std::function< void()> &&signalStop)
void rpcStart(std::string const &method, std::uint64_t const requestId) override
Log start 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.
system_time_point lastLog_
json::Value currentJson() const override
Render currently executing jobs and RPC calls and durations in Json.
void rpcFinish(std::string const &method, std::uint64_t const requestId) override
Log successful finish of RPC call.
void rpcEnd(std::string const &method, std::uint64_t const requestId, bool finish)
void rotate() override
Rotate perf log file.
std::function< void()> const signalStop_
void jobStart(JobType const type, microseconds dur, steady_time_point startTime, int instance) override
Log job executing.
json::Value countersJson() const override
Render performance counters in Json.
std::string const hostname_
void rpcError(std::string const &method, std::uint64_t const requestId) override
Log errored RPC call.
Singleton class that maintains performance counters and optionally writes Json-formatted data to a di...
std::chrono::microseconds microseconds
std::chrono::time_point< steady_clock > steady_time_point
std::chrono::time_point< system_clock > system_time_point
std::set< char const * > getHandlerNames()
Return names of all methods.
Dummy class for unit tests.
Locked(Locked const &rhs)
Job Queue task performance counters.
microseconds queuedDuration
microseconds runningDuration
RPC performance counters.
Track performance counters and currently executing tasks.
std::pair< char const *, steady_time_point > MethodStart
std::vector< std::pair< JobType, steady_time_point > > jobs
std::unordered_map< std::string, Locked< Rpc > > rpc
json::Value countersJson() const
json::Value currentJson() const
Counters(std::set< char const * > const &labels, JobTypes const &jobTypes)
std::unordered_map< JobType, Locked< Jq > > jq
std::unordered_map< std::uint64_t, MethodStart > methods
Configuration from [perf] section of xrpld.cfg.