Skip to main content
Go to documentation:
⌘U
Weaviate Database

Develop AI applications using Weaviate's APIs and tools

Deploy

Deploy, configure, and maintain Weaviate Database

Weaviate Agents

Build and deploy intelligent agents with Weaviate

Weaviate Cloud

Manage and scale Weaviate in the cloud

Additional resources

Integrations
Contributor guide
Events & Workshops
Weaviate Academy

Need help?

Weaviate LogoAsk AI Assistant⌘K
Community Forum

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

py docs  API docs
More infoCode snippets in the documentation reflect the latest client library and Weaviate Database version. Check the Release notes for specific versions.

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

py docs  API docs
More infoCode snippets in the documentation reflect the latest client library and Weaviate Database version. Check the Release notes for specific versions.

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

Added in v1.35.0

Each 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 /backups endpoints.
  • ScaleOut: The same as ReadOnly, with additional CUD operations on /replication endpoints 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

NameLocationTypeDescription
outputbodystringHow 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.
    • objectCount Total number of indexed objects on the node.
  • shards: Array of shard statistics. To see shards details, set output == 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 Weaviate 1.22 when ASYNC_INDEXING is enabled.)

Example

The following command will retrieve summary information about all nodes in the cluster:

py docs  API docs
More infoCode snippets in the documentation reflect the latest client library and Weaviate Database version. Check the Release notes for specific versions.

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

py docs  API docs
More infoCode snippets in the documentation reflect the latest client library and Weaviate Database version. Check the Release notes for specific versions.

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.