Skip to content

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

nodetool describering

Displays detailed token range information for a keyspace.


Terminal window
nodetool [connection_options] describering <keyspace>

See connection options for connection options.

nodetool describering shows the token ranges for a keyspace, including the start and end tokens for each range and which nodes are responsible for each range. This provides more detail than ring by showing the actual replica endpoints for each token range.


ArgumentDescription
keyspaceRequired. The keyspace to describe

Schema Version:a1b2c3d4-e5f6-7890-abcd-ef1234567890
TokenRange:
TokenRange(start_token:-9223372036854775808, end_token:-6148914691236517206, endpoints:[192.168.1.101, 192.168.1.102, 192.168.1.103], rpc_endpoints:[192.168.1.101, 192.168.1.102, 192.168.1.103], endpoint_details:[EndpointDetails(host:192.168.1.101, datacenter:dc1, rack:rack1), ...])
TokenRange(start_token:-6148914691236517206, end_token:-3074457345618258604, endpoints:[192.168.1.102, 192.168.1.103, 192.168.1.101], ...)
...

Note: The command prints a single Schema Version: line (the local node’s schema version), followed by a TokenRange: header and the list of token ranges.


FieldDescription
start_tokenBeginning of the token range (exclusive)
end_tokenEnd of the token range (inclusive)
endpointsIP addresses of replica nodes
rpc_endpointsClient-facing addresses
endpoint_detailsDatacenter and rack for each endpoint

Terminal window
nodetool describering my_keyspace
Terminal window
nodetool describering my_keyspace | grep TokenRange

Note: The command does not support JSON or YAML output formats.

Terminal window
nodetool describering my_keyspace | grep -c "TokenRange"

Terminal window
# Find which nodes own a specific token range
nodetool describering my_keyspace | grep "start_token:-614891"
Terminal window
# Count endpoints per range (should equal RF)
nodetool describering my_keyspace | head -1 | grep -o "192.168" | wc -l
Terminal window
# See datacenter placement for each range
nodetool describering my_keyspace | grep "datacenter:"

TokenRange(start_token:-9223372036854775808, end_token:-6148914691236517206, ...)

This means:

  • Data with tokens from -9223372036854775808 to -6148914691236517206
  • Is stored on the listed endpoints

The token ring is circular. The last range wraps around:

TokenRange(start_token:6148914691236517204, end_token:-9223372036854775808, ...)

This range covers from the highest token back to the lowest (wrap-around).


CommandShowsBest For
nodetool ringAll tokens for all nodesOverall token distribution
nodetool describeringToken ranges with replicasFinding replicas for ranges
nodetool getendpointsReplicas for specific keyFinding replicas for a key

With NetworkTopologyStrategy:

TokenRange(
start_token:-9223372036854775808,
end_token:-6148914691236517206,
endpoints:[
192.168.1.101, # DC1
192.168.1.102, # DC1
192.168.1.103, # DC1
192.168.2.101, # DC2
192.168.2.102, # DC2
192.168.2.103 # DC2
],
endpoint_details:[
EndpointDetails(host:192.168.1.101, datacenter:dc1, rack:rack1),
EndpointDetails(host:192.168.1.102, datacenter:dc1, rack:rack2),
...
]
)

Terminal window
# Check that replicas are spread across racks
nodetool describering my_keyspace | grep -A10 "TokenRange" | head -20

Each range should have replicas in different racks.

Terminal window
# Count endpoints per range
nodetool describering my_keyspace | grep "endpoints:" | head -5

If count doesn’t match RF, investigate topology issues.

Terminal window
# Ensure both DCs have replicas
nodetool describering my_keyspace | grep "datacenter:" | sort | uniq -c

#!/bin/bash
# List all unique endpoints for a keyspace
nodetool describering $1 | \
grep -oP '(?<=endpoints:\[)[^\]]+' | \
tr ',' '\n' | \
sort -u
#!/bin/bash
# Verify RF matches expected value
KS=$1
EXPECTED_RF=$2
ACTUAL_RF=$(nodetool describering $KS | \
head -1 | \
grep -oP '(?<=endpoints:\[)[^\]]+' | \
tr ',' '\n' | wc -l)
if [ "$ACTUAL_RF" -eq "$EXPECTED_RF" ]; then
echo "RF is correct: $ACTUAL_RF"
else
echo "WARNING: Expected RF $EXPECTED_RF but found $ACTUAL_RF"
fi

CommandRelationship
ringSimpler token distribution view
statusNode status overview
getendpointsFind replicas for specific key
gossipinfoDetailed node information