3#include <xrpl/basics/StringUtilities.h>
4#include <xrpl/beast/utility/Journal.h>
5#include <xrpl/core/Job.h>
6#include <xrpl/core/JobTypes.h>
7#include <xrpl/core/PerfLog.h>
8#include <xrpl/json/json_value.h>
10#include <boost/asio/ip/host_name.hpp>
167 rpcEnd(method, requestId,
true);
173 rpcEnd(method, requestId,
false);
A generic endpoint for log messages.
PerfLogImp(Setup setup, Application &app, std::span< NullTerminatedView const > methodNames, beast::Journal journal, std::function< void()> &&signalStop)
std::condition_variable cond_
void rpcEnd(std::string_view method, std::uint64_t const requestId, bool finish)
void jobQueue(JobType const type) override
Log queued job.
void resizeJobs(int const resize) override
Ensure enough room to store each currently executing job.
void jobStart(JobType const type, Microseconds dur, SteadyTimePoint startTime, int instance) override
Log job executing.
void rpcError(std::string_view method, std::uint64_t const requestId) override
Log errored RPC call.
void rpcFinish(std::string_view method, std::uint64_t const requestId) override
Log successful finish of RPC call.
json::Value currentJson() const override
Render currently executing jobs and RPC calls and durations in Json.
void rotate() override
Rotate perf log file.
std::function< void()> const signalStop_
void rpcStart(std::string_view method, std::uint64_t const requestId) override
Log start of RPC call.
void jobFinish(JobType const type, Microseconds dur, int instance) override
Log job finishing.
json::Value countersJson() const override
Render performance counters in Json.
std::string const hostname_
Singleton class that maintains performance counters and optionally writes Json-formatted data to a di...
std::chrono::time_point< SystemClock > SystemTimePoint
std::chrono::microseconds Microseconds
std::chrono::time_point< SteadyClock > SteadyTimePoint
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::vector< NullTerminatedView > labels
std::unordered_map< std::string_view, Locked< Rpc > > rpc
std::pair< std::string_view, SteadyTimePoint > MethodStart
json::Value countersJson() const
json::Value currentJson() const
std::vector< std::pair< JobType, SteadyTimePoint > > jobs
std::unordered_map< JobType, Locked< Jq > > jq
std::unordered_map< std::uint64_t, MethodStart > methods
Counters(std::span< NullTerminatedView const > methodNames, JobTypes const &jobTypes)
Configuration from [perf] section of xrpld.cfg.