txnstats
The Transaction Stats Tools (rumi tools txnstats) provide utilities for analyzing per-transaction timing statistics captured in Rumi transaction stats logs (.txnstats.log files).
Overview
When per-transaction statistics logging is enabled, Rumi captures detailed timing information for each transaction.
Transaction Structure
A Rumi transaction consists of:
Inbound Messages - One or more messages received from the messaging bus that are included in the transaction.
Outbound Messages - Zero or more messages sent by the application during message processing, held until commit
Commit - Store commit (persistence/replication) followed by send commit (releasing outbound messages)
Timing Categories
The statistics capture timing at each stage of message and transaction processing:
Inbound Message Timings:
Wire Time (
in.w2d) - Time from receiving the message from the bus to pre-deserialization (4.x only)Deserialize Time (
in.d) - Time to convert the binding's message to a Java object (4.x only)Queue Offer Time (
in.d2o) - Time from deserialization to offering to the input queue (4.x only)Queue Latency (
in.o2p) - Time the message waits in the disruptor-based input queue (4.x only)Pre-Processing Time (
in.pre) - Time from queue poll to message handler dispatchProcessing Time (
in.proc) - Time spent in the application's message handler
Transaction Commit Timings:
Store Commit Start (
txn.store.start) - Time to initiate store commitStore Commit (
txn.store.commit) - Time for store commit to completeSend Commit Start (
txn.send.start) - Time to initiate send commitSend Commit (
txn.send.commit) - Time for send commit to complete (releasing outbound messages)Total Commit (
txn.commit) - Overall commit time
Outbound Message Timings:
Send Queue Time (
out.sq) - Time to enqueue an outbound message during processingCommit to Serialize (
out.o2s) - Time from send commit start to pre-serialization (4.x only)Serialize Time (
out.s) - Time to convert the Java object to the binding's message format (4.x only)Serialize to Wire (
out.s2w) - Time from serialization to wire send (4.x only)Wire Send Time (
out.ws) - Time spent in the binding provider's send operationTotal Send Time (
out.snd) - Overall time to send the outbound message
These statistics are invaluable for performance analysis, identifying latency bottlenecks, and understanding transaction flow timing.
Commands
Compatibility
3.x Compatibility: For logs created with Rumi 3.x, use the --3x flag before the command:
Related Topics
Configuring Per-Transaction Statistics - How to enable per-transaction stats logging
Transaction Logs - Understanding transaction log structure
Container Stats and Heartbeats - Configuring statistics collection
AEP Engine Statistics - Engine metrics and timing data
See Also
Last updated

