Skip to main content
Version: Python

How to use Barrage metrics for performance monitoring

Barrage is the name of our IPC table transport. This is a guide of what statistics are recorded and how to access them.

Accessing the Metrics Table

You can access these tables as follows:

bpl = jpy.get_type("io.deephaven.extensions.barrage.BarragePerformanceLog").getInstance()
subs = bpl.getSubscriptionTable()
snaps = bpl.getSnapshotTable()

This is what the subscription table looks like when there are live subscriptions: img

This is what the snapshot table looks like after processing a few requests: img

Barrage Subscription Metrics Summary

Subscription statistics are presented in percentiles bucketed over a time period.

Here are the various metrics that are recorded by the deephaven-core server:

Stat TypeSender / ReceiverDescription
EnqueueMillisSenderThe time it took to record changes that occurred during a single update graph cycle
AggregateMillisSenderThe time it took to aggregate multiple updates within the same interval
PropagateMillisSenderThe time it took to deliver an aggregated message to all subscribers
SnapshotMillisSenderThe time it took to snapshot data for a new or changed subscription
UpdateJobMillisSenderThe time it took to run one full cycle of the off-thread propagation logic
WriteMillisSenderThe time it took to write the update to a single subscriber
WriteMegabitsSenderThe payload size of the update in megabits
DeserializationMillisReceiverThe time it took to read and deserialize the update from the wire
ProcessUpdateMillisReceiverThe time it took to apply a single update during the update graph cycle
RefreshMillisReceiverThe time it took to apply all queued updates during a single udpate graph cycle

Barrage Snapshot Metrics Summary

Snapshot statistics are presented once per request.

Stat TypeDescription
QueueMillisThe time it took waiting for a thread to process the request
SnapshotMillisThe time it took to construct a consistent snapshot of the source table
WriteMillisThe time it took to write the snapshot
WriteMegabitsThe payload size of the snapshot in megabits