rippled
Classes | Public Types | Public Member Functions | List of all members
ripple::perf::PerfLog Class Referenceabstract

Singleton class that maintains performance counters and optionally writes Json-formatted data to a distinct log. More...

Inheritance diagram for ripple::perf::PerfLog:
Inheritance graph
[legend]

Classes

struct  Setup
 Configuration from [perf] section of rippled.cfg. More...
 

Public Types

using steady_clock = std::chrono::steady_clock
 
using system_clock = std::chrono::system_clock
 
using steady_time_point = std::chrono::time_point< steady_clock >
 
using system_time_point = std::chrono::time_point< system_clock >
 
using seconds = std::chrono::seconds
 
using milliseconds = std::chrono::milliseconds
 
using microseconds = std::chrono::microseconds
 

Public Member Functions

virtual ~PerfLog ()=default
 
virtual void start ()
 
virtual void stop ()
 
virtual void rpcStart (std::string const &method, std::uint64_t requestId)=0
 Log start of RPC call. More...
 
virtual void rpcFinish (std::string const &method, std::uint64_t requestId)=0
 Log successful finish of RPC call. More...
 
virtual void rpcError (std::string const &method, std::uint64_t requestId)=0
 Log errored RPC call. More...
 
virtual void jobQueue (JobType const type)=0
 Log queued job. More...
 
virtual void jobStart (JobType const type, microseconds dur, steady_time_point startTime, int instance)=0
 Log job executing. More...
 
virtual void jobFinish (JobType const type, microseconds dur, int instance)=0
 Log job finishing. More...
 
virtual Json::Value countersJson () const =0
 Render performance counters in Json. More...
 
virtual Json::Value currentJson () const =0
 Render currently executing jobs and RPC calls and durations in Json. More...
 
virtual void resizeJobs (int const resize)=0
 Ensure enough room to store each currently executing job. More...
 
virtual void rotate ()=0
 Rotate perf log file. More...
 

Detailed Description

Singleton class that maintains performance counters and optionally writes Json-formatted data to a distinct log.

It should exist prior to other objects launched by Application to make it accessible for performance logging.

Definition at line 48 of file PerfLog.h.

Member Typedef Documentation

◆ steady_clock

Definition at line 51 of file PerfLog.h.

◆ system_clock

Definition at line 52 of file PerfLog.h.

◆ steady_time_point

Definition at line 53 of file PerfLog.h.

◆ system_time_point

Definition at line 54 of file PerfLog.h.

◆ seconds

Definition at line 55 of file PerfLog.h.

◆ milliseconds

Definition at line 56 of file PerfLog.h.

◆ microseconds

Definition at line 57 of file PerfLog.h.

Constructor & Destructor Documentation

◆ ~PerfLog()

virtual ripple::perf::PerfLog::~PerfLog ( )
virtualdefault

Member Function Documentation

◆ start()

virtual void ripple::perf::PerfLog::start ( )
virtual

Reimplemented in ripple::perf::PerfLogImp.

Definition at line 72 of file PerfLog.h.

◆ stop()

virtual void ripple::perf::PerfLog::stop ( )
virtual

Reimplemented in ripple::perf::PerfLogImp.

Definition at line 77 of file PerfLog.h.

◆ rpcStart()

virtual void ripple::perf::PerfLog::rpcStart ( std::string const &  method,
std::uint64_t  requestId 
)
pure virtual

Log start of RPC call.

Parameters
methodRPC command
requestIdUnique identifier to track command

Implemented in ripple::perf::PerfLogTest, and ripple::perf::PerfLogImp.

◆ rpcFinish()

virtual void ripple::perf::PerfLog::rpcFinish ( std::string const &  method,
std::uint64_t  requestId 
)
pure virtual

Log successful finish of RPC call.

Parameters
methodRPC command
requestIdUnique identifier to track command

Implemented in ripple::perf::PerfLogTest, and ripple::perf::PerfLogImp.

◆ rpcError()

virtual void ripple::perf::PerfLog::rpcError ( std::string const &  method,
std::uint64_t  requestId 
)
pure virtual

Log errored RPC call.

Parameters
methodRPC command
requestIdUnique identifier to track command

Implemented in ripple::perf::PerfLogTest, and ripple::perf::PerfLogImp.

◆ jobQueue()

virtual void ripple::perf::PerfLog::jobQueue ( JobType const  type)
pure virtual

Log queued job.

Parameters
typeJob type

Implemented in ripple::perf::PerfLogImp, and ripple::perf::PerfLogTest.

◆ jobStart()

virtual void ripple::perf::PerfLog::jobStart ( JobType const  type,
microseconds  dur,
steady_time_point  startTime,
int  instance 
)
pure virtual

Log job executing.

Parameters
typeJob type
durDuration enqueued in microseconds
startTimeTime that execution began
instanceJobQueue worker thread instance

Implemented in ripple::perf::PerfLogImp.

◆ jobFinish()

virtual void ripple::perf::PerfLog::jobFinish ( JobType const  type,
microseconds  dur,
int  instance 
)
pure virtual

Log job finishing.

Parameters
typeJob type
durDuration running in microseconds
instanceJobqueue worker thread instance

Implemented in ripple::perf::PerfLogTest, and ripple::perf::PerfLogImp.

◆ countersJson()

virtual Json::Value ripple::perf::PerfLog::countersJson ( ) const
pure virtual

Render performance counters in Json.

Returns
Counters Json object

Implemented in ripple::perf::PerfLogImp, and ripple::perf::PerfLogTest.

◆ currentJson()

virtual Json::Value ripple::perf::PerfLog::currentJson ( ) const
pure virtual

Render currently executing jobs and RPC calls and durations in Json.

Returns
Current executing jobs and RPC calls and durations

Implemented in ripple::perf::PerfLogImp, and ripple::perf::PerfLogTest.

◆ resizeJobs()

virtual void ripple::perf::PerfLog::resizeJobs ( int const  resize)
pure virtual

Ensure enough room to store each currently executing job.

Parameters
resizeNumber of JobQueue worker threads

Implemented in ripple::perf::PerfLogImp, and ripple::perf::PerfLogTest.

◆ rotate()

virtual void ripple::perf::PerfLog::rotate ( )
pure virtual

Rotate perf log file.

Implemented in ripple::perf::PerfLogImp, and ripple::perf::PerfLogTest.