Skip to content

AxonOps — AI-Native Control Plane for Open Source Data Platforms

nodetool proxyhistograms

Displays latency histograms for coordinator operations including reads, writes, and range queries.


Terminal window
nodetool [connection_options] proxyhistograms

See connection options for connection options.

nodetool proxyhistograms shows coordinator-level latency percentiles for:

  • Read operations
  • Write operations
  • Range slice queries (scans)
  • CAS read operations
  • CAS write operations
  • View write operations

These are end-to-end latencies as seen by the coordinator node, including network time to replicas.


proxy histograms
Percentile Read Latency Write Latency Range Latency CAS Read Latency CAS Write Latency View Write Latency
(micros) (micros) (micros) (micros) (micros) (micros)
50% 234.00 89.00 567.00 345.00 456.00 0.00
75% 345.00 123.00 789.00 567.00 678.00 0.00
95% 678.00 234.00 1234.00 890.00 1012.00 0.00
98% 890.00 345.00 1567.00 1234.00 1345.00 0.00
99% 1234.00 456.00 2345.00 1567.00 1789.00 0.00
Min 45.00 23.00 123.00 89.00 123.00 0.00
Max 5678.00 1234.00 9012.00 4567.00 5678.00 0.00

TypeDescription
Read LatencyPoint read operations (SELECT by primary key)
Write LatencyMutations (INSERT, UPDATE, DELETE)
Range LatencyRange queries (SELECT with range or no key)
CAS Read LatencyLightweight transaction reads
CAS Write LatencyLightweight transaction writes
View Write LatencyMaterialized view updates
PercentileMeaning
50% (median)Half of requests are faster than this
75%75% of requests are faster
95%95% of requests are faster
98%98% of requests are faster
99%99% of requests are faster (p99)
MinFastest observed request
MaxSlowest observed request

Operationp50p99Assessment
Read< 500μs< 5msExcellent
Read< 2ms< 20msGood
Read< 5ms< 50msAcceptable
Write< 200μs< 2msExcellent
Write< 500μs< 5msGood
Write< 1ms< 10msAcceptable
Percentile Read Latency
50% 5000.00
99% 50000.00

High Latencies

p50 > 5ms or p99 > 50ms suggests:

  • Disk I/O issues
  • GC pressure
  • Network problems
  • Large partitions
  • Inefficient queries
50% 234.00
99% 25000.00

Large gap between p50 and p99 indicates:

CauseInvestigation
GC pausesCheck gcstats, JVM logs
Large partitionsCheck tablestats partition sizes
Network variabilityCheck inter-node latency
Slow replicaCheck tpstats on all nodes
View Write Latency
0.00

Zero means no operations of that type occurred since restart.


Establish baseline latencies during normal operation:

Terminal window
nodetool proxyhistograms > baseline_$(date +%Y%m%d).txt

Compare current latencies to baseline:

Terminal window
nodetool proxyhistograms

After configuration or schema changes:

Terminal window
nodetool proxyhistograms
Terminal window
watch -n 30 'nodetool proxyhistograms'

Terminal window
nodetool proxyhistograms
Terminal window
for node in node1 node2 node3; do
echo "=== $node ==="
ssh "$node" "nodetool proxyhistograms"
done
Terminal window
nodetool proxyhistograms | grep "99%" | awk '{print "Read p99:", $2, "μs"}'
Terminal window
while true; do
echo "$(date): $(nodetool proxyhistograms | grep '99%' | awk '{print "R:"$2 " W:"$3}')"
sleep 60
done

The proxyhistograms command measures the total time from when the coordinator receives a query to when it returns the result to the client. This includes:

StepDescription
1Client sends query to coordinator
2Coordinator sends read requests to replicas (R1, R2, R3)
3Replicas process and return responses
4Coordinator aggregates results and returns to client

Measurement Scope

proxyhistograms measures the entire span from query receipt to result return, including all network round-trips to replicas.

CommandMeasuresIncludes
proxyhistogramsCoordinator latencyNetwork + all replicas
tablehistogramsLocal latencyOnly local disk operations

High proxy latency with low table latency = network issue or slow remote replicas.


Terminal window
# Check if all nodes affected
for node in node1 node2 node3; do
ssh "$node" "nodetool proxyhistograms" | grep "99%"
done
Terminal window
# Proxy (coordinator) latency
nodetool proxyhistograms
# Local (single node) latency
nodetool tablehistograms my_keyspace my_table
Terminal window
# Thread pools
nodetool tpstats
# GC stats
nodetool gcstats
# Compaction backlog
nodetool compactionstats
Terminal window
# Which tables are slow?
nodetool tablestats my_keyspace | grep -E "Table:|read latency|write latency"

  • Growing data volume
  • SSTable accumulation
  • Bloom filter pressure
  • Node failure
  • Network partition
  • GC storm
  • Compaction pressure
  • Scheduled jobs
  • Backup operations
  • Repair running
  • Compaction cycles

CommandRelationship
tablestatsTable statistics including latencies
tpstatsThread pool statistics
gcstatsGarbage collection statistics
compactionstatsCompaction activity