Cluster status and metadata
Monitor the health, status, and metadata of your Weaviate cluster.
Liveness
The live endpoint checks if the application is alive. You can use it for a Kubernetes liveness probe.
Usage
The endpoint accepts a GET request:
GET /v1/.well-known/live
The endpoint returns HTTP status code 200 if the application is able to respond to HTTP requests.
Example
If a snippet doesn't work or you have feedback, please open a GitHub issue.
import weaviate
client = weaviate.connect_to_local()
print(client.is_live())
finally:
client.close()
The endpoint returns HTTP status code 200 if the application is able to respond to HTTP requests.
Readiness
The ready endpoint checks if the application is ready to receive traffic. You can use it for Kubernetes readiness probe.
Usage
The discovery endpoint accepts a GET request:
GET /v1/.well-known/ready
The endpoint returns HTTP status code 200 if the application is able to respond to HTTP requests. If the application is currently unable to serve traffic, the endpoint returns HTTP status code 503.
If the application is unavailable and you have horizontal replicas of Weaviate that can receive traffic, redirect traffic to one of the replicas.
Example
If a snippet doesn't work or you have feedback, please open a GitHub issue.
import weaviate
client = weaviate.connect_to_local()
print(client.is_ready())
finally:
client.close()
Operational modes
v1.35.0Each Weaviate node can be set to one of the following operational modes, limiting the types of operations it can handle:
ReadWrite: (default) There are no restrictions; the node can handle both read and write operations.WriteOnly: The node is limited to write operations.ReadOnly: The node is limited to read operations and backup creation via the/backupsendpoints.ScaleOut: The same asReadOnly, with additional CUD operations on/replicationendpoints allowed.
These modes can be configured using the OPERATIONAL_MODE environment variable, or the equivalent operational_mode runtime configuration.
Schema synchronization
The v1/schema/cluster-status endpoint displays the status of the schema synchronization. The endpoint returns the following fields:
healthy: The status of the schema synchronization.hostname: The hostname of the Weaviate instance.ignoreSchemaSync: Whether to ignore the cluster check at startup (for recovery from an out-of-sync situation).nodeCount: The number of nodes in the cluster.
Example response:
{
"healthy": true,
"hostname": "node1",
"ignoreSchemaSync": false,
"nodeCount": 3
}
Cluster node data
You can retrieve information about individual nodes in a Weaviate cluster. The query can be for the entire cluster, or for a particular collection.
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
output | body | string | How much information to include in the output. Options: minimal (default) and verbose (includes shard information). |
Returned data:
The nodes endpoint returns an array of nodes. The nodes have the following fields:
name: Name of the node.status: Status of the node (one of:HEALTHY,UNHEALTHY,UNAVAILABLE,INDEXING).version: Version of Weaviate running on the node.gitHash: Short git hash of the latest commit of Weaviate running on the node.stats: Statistics for the node.shardCount: Total number of shards on the node.objectCountTotal number of indexed objects on the node.
shards: Array of shard statistics. To seeshardsdetails, setoutput == verbose.name: Name of the shard.class: Name of the collection stored on the shard.objectCount: Number of indexed objects on the shard.vectorQueueLength: Number of objects waiting to be indexed on the shard. (Available starting in Weaviate1.22whenASYNC_INDEXINGis enabled.)
Example
The following command will retrieve summary information about all nodes in the cluster:
If a snippet doesn't work or you have feedback, please open a GitHub issue.
import weaviate
client = weaviate.connect_to_local()
nodes_info = client.cluster.nodes(
collection="JeopardyQuestion", # If omitted, all collections will be returned
output="verbose", # If omitted, will be "minimal"
)
print(nodes_info)
client.close()
Example output:
{
"nodes": [
{
"batchStats": {
"ratePerSecond": 0
},
"gitHash": "e6b37ce",
"name": "weaviate-0",
"stats": {
"objectCount": 0,
"shardCount": 2
},
"status": "HEALTHY",
"version": "1.22.1"
},
{
"batchStats": {
"ratePerSecond": 0
},
"gitHash": "e6b37ce",
"name": "weaviate-1",
"stats": {
"objectCount": 1,
"shardCount": 2
},
"status": "HEALTHY",
"version": "1.22.1"
},
{
"batchStats": {
"ratePerSecond": 0
},
"gitHash": "e6b37ce",
"name": "weaviate-2",
"stats": {
"objectCount": 1,
"shardCount": 2
},
"status": "HEALTHY",
"version": "1.22.1"
}
]
}
Cluster metadata
You can retrieve metadata about the Weaviate instance, such as:
hostname: The location of the Weaviate instance.version: The version of Weaviate.modules: Module specific info.
Example
If a snippet doesn't work or you have feedback, please open a GitHub issue.
import weaviate
client = weaviate.connect_to_local()
meta_info = client.get_meta()
print(meta_info)
client.close()
returns:
{
"hostname": "http://[::]:8080",
"modules": {
"text2vec-contextionary": {
"version": "en0.16.0-v0.4.21",
"wordCount": 818072
}
},
"version": "1.0.0"
}
Questions and feedback
If you have any questions or feedback, let us know in the user forum.
