These resources give you information about your Cassandra or DSE cluster and its nodes. For example, you can get a map of node information including the current OS load, the data held in storage, or the status of streaming or compaction operations underway.
| Cluster and Node Retrieval Methods | URL |
|---|---|
| Retrieve cluster configuration information. | GET /{cluster_id}/cluster |
| Retrieve information about a cluster property. | GET /{cluster_id}/cluster/{property} |
| Retrieve information about nodes in the cluster. | GET /{cluster_id}/nodes |
| Retrieve information about a specific node. | GET /{cluster_id}/nodes/{node_ip} |
| Retrieve information about the property of a node. | GET /{cluster_id}/nodes/{node_ip}/{property} |
| Retrieve information about a property for all nodes. | GET /{cluster_id}/nodes/all/{property} |
| Retrieve cluster-wide storage capacity information. | GET /{cluster_id}/storage-capacity |
Retrieve information about the cluster.
| Path arguments: | cluster_id -- A Cluster Config ID. |
|---|
Returns a Cluster object.
{
"endpoint_snitch": Full class name of snitch,
"name": Name of the cluster,
"partitioner": Full class name of partitioner,
"status": Status if the cluster is being restarted
}
Example:
curl http://127.0.0.1:8888/Test_Cluster/cluster
Output:
{
"endpoint_snitch": "org.apache.cassandra.locator.SimpleSnitch",
"name": "Test Cluster",
"partitioner": "org.apache.cassandra.dht.RandomPartitioner",
"status": "Restarting"
}
Retrieve a single cluster property.
| Path arguments: |
|
|---|
Returns a string.
Example:
curl http://127.0.0.1:8888/Test_Cluster/cluster/partitioner
Output:
"org.apache.cassandra.dht.RandomPartitioner"
Retrieve a list of all nodes and node properties in the cluster.
| Path arguments: | cluster_id -- A Cluster Config ID. |
|---|
Returns a list of Node objects.
A property is null if it is not applicable to the node or if there is no data to report.
{
"node_ip": <value>,
"node_name": <value>,
"token": <value>,
"node_version": <name:value>,
"load": <value>,
"data_held": <value>,
"mode": <value>,
"streaming": <name:value, name:value, . . .>,
"task_progress": <name:value, name:value, . . .>,
"last_seen": <value>,
"num_procs": <value>,
"rpc_ip": <value>,
"dc": <value>,
"rack": <value>,
"network_interfaces": <value array>,
"partitions": {
"data": <value list>,
"commitlog": <value>,
"saved_caches": <value>,
"other": <value list>
},
"devices": {
"data": <value list>,
"commitlog": <value>,
"saved_caches": <value>,
"other": <value list>
},
"os": <value>,
"has_jna": <value>,
"ec2": {
"instance-id": <value>,
"instance-type": <value>,
"ami-id": <value>,
"placement": <value>
}
}
This table describes the property values of a Node:
| Property | Description of Values |
|---|---|
| node_ip | IP address |
| node_name | Hostname |
| token | Token assignment (string). If the node has multiple tokens (part of vnode support in Cassandra 1.2 and later), this will be a single randomly selected token from the node's set of tokens. |
| node_version |
|
| load | OS load, which corresponds to the command, 1min avg from uptime |
| data_held | Amount of Cassandra data on the node (in bytes) |
| mode | Examples are "normal", "decommissioned", "leaving". Controlled by Cassandra. |
| streaming | Dictionary of active outbound streams in the form {<destination_node_ip>: <progress>}, where <progress> is a float between 0.0 and 1.0. For example, 0.8 means the stream is 80% complete. |
| task_progress | Dictionary of active tasks in the form {<task-name-string>: <progress>}. Example task names include "major-compaction" and "minor-compaction". <progress> is the same format as it is for streaming. |
| last_seen | 0 if the node is up, a UNIX timestamp indicating when the node went down if it is currently down, or null if the node state is unknown |
| num_procs | Number of processor cores |
| rpc_ip | The rpc_address set in cassandra.yaml, which is usually the same as the node_ip property |
| dc | Name of node's data center |
| rack | Name of node's rack |
| network_interfaces | Array of network interface names |
| partitions |
|
| devices |
|
| os | Name of the operating system that will contain "linux", "mac", or "windows" |
| has_jna | True if the node has JNA enabled, false otherwise |
| ec2 |
|
Example:
curl http://127.0.0.1:8888/Test_Cluster/nodes
Output:
{
"192.168.1.28": {
"data_held": 53067368.0,
"dc": "Cassandra",
"devices": {
"commitlog": "disk0",
"data": [
"disk0"
],
"other": [],
"saved_caches": "disk0"
},
"ec2": {
"ami-id": "ami-82fa58eb",
"instance-id": "i-1c264a66",
"instance-type": "m1.large",
"placement": "us-east-1d"
},
"has_jna": true,
"last_seen": 0,
"load": 0.20000000000000001,
"mode": "normal",
"network_interfaces": [
"lo0",
"en0",
"en1"
],
"node_ip": "192.168.1.28",
"node_name": "cassandra08",
"node_version": {
"cassandra": "1.0.8",
"dse": "2.0-1",
"jobtracker": null,
"search": null,
"tasktracker": null
},
"num_procs": 8,
"os": "mac os x",
"partitions": {
"commitlog": "/dev/disk0s2",
"data": [
"/dev/disk0s2"
],
"other": [],
"saved_caches": "/dev/disk0s2"
},
"rack": "rack1",
"rpc_ip": "192.168.1.28",
"streaming": {
"192.168.1.27": 0.23,
"192.168.1.29": 0.97,
},
"task_progress": {
"minor-compaction": 0.447
},
"token": "34478773810192488084662817292306645152"
},
"192.168.1.29": {
...
}
...
}
Retrieve data for a specific node.
| Path arguments: |
|
|---|
Returns a Node object.
Retrieve a single property for a node or all nodes.
| Path arguments: |
|
|---|
Returns a single property from a Node object.
Example:
curl http://127.0.0.1:8888/Test_Cluster/nodes/1.2.3.4/token
Output:
"34478773810192488084662817292306645152"
Retrieve a single property for all nodes.
| Path arguments: |
|
|---|
Returns a dictionary of {<node_ip>: <property value>} for all nodes in the cluster.
Example:
curl http://127.0.0.1:8888/Test_Cluster/nodes/all/token
Output:
{
"1.2.3.3": "0",
"1.2.3.4": "34478773810192488084662817292306645152",
"1.2.3.5": "14981209899913204811852010238019834127"
}
Retrieve cluster-wide storage capacity information.
| Path arguments: | cluster_id -- A Cluster Config ID. |
|---|
Returns:
{
"free_gb": Total free space in the cluster in GB,
"used_gb": Total c* used space in the cluster in GB,
"reporting_nodes": How many nodes are included in the first two numbers
}
Example:
curl http://127.0.0.1:8888/Test_Cluster/storage-capacity
Output:
{
"free_gb": 627,
"reporting_nodes": 1,
"used_gb": 70
}