1#ifndef XRPL_BASICS_PERFLOGIMP_H
2#define XRPL_BASICS_PERFLOGIMP_H
4#include <xrpld/rpc/detail/Handler.h>
6#include <xrpl/beast/utility/Journal.h>
7#include <xrpl/core/PerfLog.h>
9#include <boost/asio/ip/host_name.hpp>
143 rpcEnd(method, requestId,
true);
149 rpcEnd(method, requestId,
false);
159 int instance)
override;
A generic endpoint for log messages.
static JobTypes const & instance()
Implementation class for PerfLog.
std::condition_variable cond_
void jobFinish(JobType const type, microseconds dur, int instance) override
Log job finishing.
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::set< char const * > getHandlerNames()
Return names of all methods.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
A box coupling data with a mutex for locking access to it.
Locked(Locked const &rhs)
Job Queue task performance counters.
microseconds queuedDuration
microseconds runningDuration
RPC performance counters.
Track performance counters and currently executing tasks.
std::unordered_map< JobType, Locked< Jq > > jq_
std::vector< std::pair< JobType, steady_time_point > > jobs_
Json::Value currentJson() const
std::unordered_map< std::uint64_t, MethodStart > methods_
std::unordered_map< std::string, Locked< Rpc > > rpc_
Json::Value countersJson() const
Configuration from [perf] section of xrpld.cfg.