20#ifndef RIPPLE_BASICS_PERFLOGIMP_H
21#define RIPPLE_BASICS_PERFLOGIMP_H
23#include <xrpld/perflog/PerfLog.h>
24#include <xrpld/rpc/detail/Handler.h>
26#include <xrpl/beast/utility/Journal.h>
28#include <boost/asio/ip/host_name.hpp>
162 rpcEnd(method, requestId,
true);
168 rpcEnd(method, requestId,
false);
178 int instance)
override;
A generic endpoint for log messages.
static JobTypes const & instance()
Implementation class for PerfLog.
std::string const hostname_
void rpcEnd(std::string const &method, std::uint64_t const requestId, bool finish)
void resizeJobs(int const resize) override
Ensure enough room to store each currently executing job.
void rpcError(std::string const &method, std::uint64_t const requestId) override
Log errored RPC call.
std::function< void()> const signalStop_
Json::Value countersJson() const override
Render performance counters in Json.
void jobQueue(JobType const type) override
Log queued job.
void jobStart(JobType const type, microseconds dur, steady_time_point startTime, int instance) override
Log job executing.
void rpcStart(std::string const &method, std::uint64_t const requestId) override
Log start of RPC call.
void rotate() override
Rotate perf log file.
std::condition_variable cond_
void rpcFinish(std::string const &method, std::uint64_t const requestId) override
Log successful finish of RPC call.
void jobFinish(JobType const type, microseconds dur, int instance) override
Log job finishing.
system_time_point lastLog_
Json::Value currentJson() const override
Render currently executing jobs and RPC calls and durations in Json.
Singleton class that maintains performance counters and optionally writes Json-formatted data to a di...
std::chrono::time_point< steady_clock > steady_time_point
std::chrono::microseconds microseconds
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 runningDuration
microseconds queuedDuration
RPC performance counters.
Track performance counters and currently executing tasks.
Json::Value currentJson() const
std::unordered_map< std::string, Locked< Rpc > > rpc_
std::vector< std::pair< JobType, steady_time_point > > jobs_
std::unordered_map< std::uint64_t, MethodStart > methods_
Json::Value countersJson() const
std::unordered_map< JobType, Locked< Jq > > jq_
Configuration from [perf] section of rippled.cfg.