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:

  1. Inbound Messages - One or more messages received from the messaging bus that are included in the transaction.

  2. Outbound Messages - Zero or more messages sent by the application during message processing, held until commit

  3. 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 dispatch

  • Processing Time (in.proc) - Time spent in the application's message handler

Transaction Commit Timings:

  • Store Commit Start (txn.store.start) - Time to initiate store commit

  • Store Commit (txn.store.commit) - Time for store commit to complete

  • Send Commit Start (txn.send.start) - Time to initiate send commit

  • Send 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 processing

  • Commit 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 operation

  • Total 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

Command
Description

Dump transaction stats to CSV format

Query transaction logs and join with stats

Compatibility

circle-info

3.x Compatibility: For logs created with Rumi 3.x, use the --3x flag before the command:

See Also

  • admin - Administrative command-line tool

  • discovery - Discovery troubleshooting tool

  • hbdump - Heartbeats dump tool

  • tlt - Transaction log tool

Last updated