Class GrpcLogger
java.lang.Object
io.perl.logger.impl.ResultsLogger
io.sbk.logger.impl.AbstractRWLogger
io.sbk.logger.impl.SystemLogger
io.sbk.logger.impl.CSVLogger
io.sbk.logger.impl.PrometheusLogger
io.sbk.logger.impl.GrpcLogger
- All Implemented Interfaces:
io.perl.logger.PerformanceLogger, io.perl.logger.Print, io.perl.logger.ReportLatency, CountReaders, CountRW, CountWriters, Logger, ReadRequestsLogger, RWLogger, RWPrint, SetRW, WriteRequestsLogger
Class for Recoding/Printing benchmark results on micrometer Composite Meter Registry.
-
Field Summary
Fields inherited from class CSVLogger
DISABLE_STRING, REGULAR_PRINT, TOTAL_PRINT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddArgs(InputOptions params) Add SBM host/port options and load defaults fromsbmhost.properties.voidclose(ParsedOptions params) Close the logger, unregister the client, and shutdown the gRPC channel.voidopen(ParsedOptions params, String storageName, Action action, io.time.Time time) Open the logger, establish a gRPC channel, validate configuration with SBM, and prepare buffers.voidparseArgs(ParsedOptions params) Parse SBM options and decide if gRPC export is enabled.voidprint(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMbPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts) Print the periodic results toSystem.outat the end of each interval.voidrecordLatency(long startTime, int events, int bytes, long latency) Record individual latency values into the localLatencyRecorderand stage them for gRPC export.voidrecordReadRequests(int readerId, long startTime, long bytes, long events) Record read requests locally and mirror them into RAM buffers for gRPC export when enabled.voidrecordReadTimeoutEvents(int writerId, long startTime, long events) Record read timeout events and mirror them into RAM buffers for gRPC export when enabled.voidrecordWriteRequests(int writerId, long startTime, long bytes, long events) Record write requests locally and mirror them into RAM buffers for gRPC export when enabled.voidrecordWriteTimeoutEvents(int readerId, long startTime, long events) Record write timeout events and mirror them into RAM buffers for gRPC export when enabled.voidSend the accumulated request/latency counters to SBM and reset local accumulators.voidsetExceptionHandler(io.perl.exception.ExceptionHandler handler) Default implementation for setting exception handler.Methods inherited from class PrometheusLogger
getMetricsConfig, getMetricsConfigStream, getPrometheusRWMetricsServerMethods inherited from class CSVLogger
getCsvFile, isCsvEnable, openCSV, printTotal, writeToCSVMethods inherited from class AbstractRWLogger
appendResultString, appendWriteAndReadRequests, appendWriteAndReadRequestsPending, appendWriteAndReadTimeoutEvents, appendWritesAndReaders, decrementReaders, decrementWriters, getAction, getLoggerConfigStream, getMaxReaderIDs, getMaxReadersCount, getMaxWriterIDs, getMaxWritersCount, getPrintingIntervalSeconds, getReadersCount, getStorageName, getTime, getWritersCount, incrementReaders, incrementWriters, isReadRequestsEnabled, isWriteRequestsEnabled, print, printTotal, setMaxReaders, setMaxReadersIds, setMaxWriters, setMaxWritersIds, setReaders, setWritersMethods inherited from class io.perl.logger.impl.ResultsLogger
appendResultString, getMaxLatency, getMinLatency, getPercentileNames, getPercentiles, getPrefix, getTimeUnit, setMaxLatency, setMinLatency, setPercentiles, setPrefix, setTimeUnitMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.perl.logger.PerformanceLogger
getMaxLatency, getMinLatency, getPercentiles, getTimeUnit
-
Constructor Details
-
GrpcLogger
public GrpcLogger()Construct a gRPC logger. Calls super to initialize base logging and metrics behavior.
-
-
Method Details
-
setExceptionHandler
public void setExceptionHandler(io.perl.exception.ExceptionHandler handler) Description copied from interface:LoggerDefault implementation for setting exception handler. if the logger encounters any exception, it can report to SBK.- Parameters:
handler- Exception handler
-
addArgs
Add SBM host/port options and load defaults fromsbmhost.properties.- Specified by:
addArgsin interfaceLogger- Overrides:
addArgsin classPrometheusLogger- Parameters:
params- InputOptions object to be extended.- Throws:
IllegalArgumentException- If an exception occurred.
-
parseArgs
Parse SBM options and decide if gRPC export is enabled.- Specified by:
parseArgsin interfaceLogger- Overrides:
parseArgsin classPrometheusLogger- Parameters:
params- ParsedOptions containing driver/logger specific parameters/arguments.- Throws:
IllegalArgumentException- If an exception occurred.
-
open
public void open(ParsedOptions params, String storageName, Action action, io.time.Time time) throws IllegalArgumentException, IOException Open the logger, establish a gRPC channel, validate configuration with SBM, and prepare buffers.- Specified by:
openin interfaceLogger- Overrides:
openin classPrometheusLogger- Parameters:
params- ParsedOptions including logger-specific configuration.storageName- The Name of the storage.action- action to printtime- time interface- Throws:
IOException- If an exception occurred.IllegalArgumentException
-
close
Close the logger, unregister the client, and shutdown the gRPC channel.- Specified by:
closein interfaceLogger- Overrides:
closein classPrometheusLogger- Parameters:
params- ParsedOptions used during open; may carry shutdown options.- Throws:
IOException- If an exception occurred.IllegalArgumentException
-
sendLatenciesRecord
public void sendLatenciesRecord()Send the accumulated request/latency counters to SBM and reset local accumulators. -
recordWriteRequests
public void recordWriteRequests(int writerId, long startTime, long bytes, long events) Record write requests locally and mirror them into RAM buffers for gRPC export when enabled.- Specified by:
recordWriteRequestsin interfaceRWLogger- Specified by:
recordWriteRequestsin interfaceWriteRequestsLogger- Overrides:
recordWriteRequestsin classAbstractRWLogger- Parameters:
writerId- logical writer identifier (0..N-1)startTime- write start time in the activeTimeUnitbytes- bytes written for these eventsevents- number of write events
-
recordReadRequests
public void recordReadRequests(int readerId, long startTime, long bytes, long events) Record read requests locally and mirror them into RAM buffers for gRPC export when enabled.- Specified by:
recordReadRequestsin interfaceReadRequestsLogger- Specified by:
recordReadRequestsin interfaceRWLogger- Overrides:
recordReadRequestsin classAbstractRWLogger- Parameters:
readerId- logical reader identifier (0..N-1)startTime- read start time in the activeTimeUnitbytes- bytes read for these eventsevents- number of read events
-
recordWriteTimeoutEvents
public void recordWriteTimeoutEvents(int readerId, long startTime, long events) Record write timeout events and mirror them into RAM buffers for gRPC export when enabled.- Specified by:
recordWriteTimeoutEventsin interfaceWriteRequestsLogger- Overrides:
recordWriteTimeoutEventsin classAbstractRWLogger- Parameters:
readerId- logical writer identifier (0..N-1)startTime- time when timeouts were observedevents- number of timeout events
-
recordReadTimeoutEvents
public void recordReadTimeoutEvents(int writerId, long startTime, long events) Record read timeout events and mirror them into RAM buffers for gRPC export when enabled.- Specified by:
recordReadTimeoutEventsin interfaceReadRequestsLogger- Overrides:
recordReadTimeoutEventsin classAbstractRWLogger- Parameters:
writerId- logical reader identifier (0..N-1)startTime- time when timeouts were observedevents- number of timeout events
-
recordLatency
public void recordLatency(long startTime, int events, int bytes, long latency) Record individual latency values into the localLatencyRecorderand stage them for gRPC export. -
print
public void print(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMbPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts) Description copied from class:SystemLoggerPrint the periodic results toSystem.outat the end of each interval.- Specified by:
printin interfaceRWPrint- Overrides:
printin classPrometheusLogger- Parameters:
writers- number of active writersmaxWriters- maximum writers seenreaders- number of active readersmaxReaders- maximum readers seenwriteRequestBytes- write request bytes in this intervalwriteRequestMbPerSec- write request throughput in MB/secwriteRequestRecords- write request countwriteRequestRecordsPerSec- write requests per secondreadRequestBytes- read request bytes in this intervalreadRequestMbPerSec- read request throughput in MB/secreadRequestRecords- read request countreadRequestRecordsPerSec- read requests per secondwriteResponsePendingRecords- pending write response recordswriteResponsePendingBytes- pending write response bytesreadResponsePendingRecords- pending read response recordsreadResponsePendingBytes- pending read response byteswriteReadRequestPendingRecords- write-read pending records deltawriteReadRequestPendingBytes- write-read pending bytes deltawriteTimeoutEvents- write timeout events countwriteTimeoutEventsPerSec- write timeout events per secondreadTimeoutEvents- read timeout events countreadTimeoutEventsPerSec- read timeout events per secondseconds- reporting interval secondsbytes- total bytes processed in intervalrecords- total records processed in intervalrecsPerSec- records per secondmbPerSec- MB per secondavgLatency- average latencyminLatency- minimum latencymaxLatency- maximum latencyinvalid- invalid/negative latency countlowerDiscard- discarded below min latencyhigherDiscard- discarded above max latencyslc1- sliding latency coverage 1slc2- sliding latency coverage 2percentileLatencies- percentile latency valuespercentileLatencyCounts- percentile latency counts
-