mirror of
https://github.com/qdrant/qdrant.git
synced 2026-07-28 21:51:04 -05:00
Previously all three Kubernetes health endpoints shared the same generic
description ("An endpoint for health checking used in Kubernetes."), which did
not convey what each one actually guarantees.
- /healthz and /livez: clarify they are pure liveness checks (200 once the HTTP
API is up), do not inspect data/shards/consensus, and are identical to each
other.
- /readyz: clarify it is a readiness probe that waits out pending data
operations (consensus catch-up + shard health in distributed mode) before
reporting ready, and document the real 200 ("all shards are ready") and 503
("some shards are not ready") responses.
Documentation-only change (OpenAPI descriptions/examples + added 503 response
doc). No runtime behavior changes.
Co-authored-by: Cursor <cursoragent@cursor.com>
205 lines
6.4 KiB
YAML
205 lines
6.4 KiB
YAML
#@ load("openapi.lib.yml", "response", "reference", "type", "array")
|
|
|
|
paths:
|
|
/:
|
|
get:
|
|
summary: Returns information about the running Qdrant instance
|
|
description: Returns information about the running Qdrant instance like version and commit id
|
|
operationId: root
|
|
tags:
|
|
- Service
|
|
responses:
|
|
"200":
|
|
description: Qdrant server version information
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/VersionInfo"
|
|
"4XX":
|
|
description: error
|
|
|
|
/telemetry:
|
|
get:
|
|
summary: Collect telemetry data
|
|
description: Collect telemetry data including app info, system info, collections info, cluster info, configs and statistics
|
|
operationId: telemetry
|
|
tags:
|
|
- Service
|
|
parameters:
|
|
- name: anonymize
|
|
in: query
|
|
description: "If true, anonymize result"
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
- name: details_level
|
|
in: query
|
|
description: "Level of details in telemetry data. Minimal level is 0, maximal is infinity"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
- name: per_collection
|
|
in: query
|
|
description: "If true, include per-collection request statistics in the response"
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
- name: timeout
|
|
in: query
|
|
description: "Timeout for this request"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
default: 60 #! Keep in sync with DEFAULT_TELEMETRY_TIMEOUT
|
|
responses: #@ response(reference("TelemetryData"))
|
|
|
|
/metrics:
|
|
get:
|
|
summary: Collect Prometheus metrics data
|
|
description: Collect metrics data including app info, collections info, cluster info and statistics
|
|
operationId: metrics
|
|
tags:
|
|
- Service
|
|
parameters:
|
|
- name: anonymize
|
|
in: query
|
|
description: "If true, anonymize result"
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
- name: per_collection
|
|
in: query
|
|
description: "If true, include per-collection request metrics with a collection label instead of global request metrics"
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
- name: timeout
|
|
in: query
|
|
description: "Timeout for this request"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
default: 60 #! Keep in sync with DEFAULT_TELEMETRY_TIMEOUT
|
|
responses:
|
|
"200":
|
|
description: Metrics data in Prometheus format
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: |
|
|
# HELP app_info information about qdrant server
|
|
# TYPE app_info gauge
|
|
app_info{name="qdrant",version="0.11.1"} 1
|
|
# HELP cluster_enabled is cluster support enabled
|
|
# TYPE cluster_enabled gauge
|
|
cluster_enabled 0
|
|
# HELP collections_total number of collections
|
|
# TYPE collections_total gauge
|
|
collections_total 1
|
|
"4XX":
|
|
description: error
|
|
|
|
/healthz:
|
|
get:
|
|
summary: Kubernetes healthz endpoint
|
|
description: >-
|
|
Liveness-style health check. Returns 200 as soon as the HTTP API is
|
|
serving requests. It does not inspect collections, shards or consensus
|
|
state, and is identical to `/livez`. Use it only to detect whether the
|
|
process is up and responsive.
|
|
operationId: healthz
|
|
tags:
|
|
- Service
|
|
responses:
|
|
"200":
|
|
description: Healthz response
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: healthz check passed
|
|
"4XX":
|
|
description: error
|
|
|
|
/livez:
|
|
get:
|
|
summary: Kubernetes livez endpoint
|
|
description: >-
|
|
Kubernetes liveness probe. Returns 200 as soon as the HTTP API is
|
|
serving requests. It does not inspect collections, shards or consensus
|
|
state, and is identical to `/healthz`. A failure indicates the process
|
|
is unresponsive and should be restarted.
|
|
operationId: livez
|
|
tags:
|
|
- Service
|
|
responses:
|
|
"200":
|
|
description: Healthz response
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: healthz check passed
|
|
"4XX":
|
|
description: error
|
|
|
|
/readyz:
|
|
get:
|
|
summary: Kubernetes readyz endpoint
|
|
description: >-
|
|
Kubernetes readiness probe. Checks the instance and waits out pending
|
|
data operations to see when it can start accepting traffic. In a
|
|
distributed deployment it returns 200 only once the node has caught up
|
|
with the cluster consensus commit and its local shards are healthy;
|
|
otherwise it returns 503. In a single-node deployment it always returns
|
|
200 once the API is up. Use it to decide when to route traffic to the
|
|
instance.
|
|
operationId: readyz
|
|
tags:
|
|
- Service
|
|
responses:
|
|
"200":
|
|
description: The instance is ready to accept traffic
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: all shards are ready
|
|
"503":
|
|
description: The instance is not ready to accept traffic yet
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: some shards are not ready
|
|
"4XX":
|
|
description: error
|
|
|
|
/issues:
|
|
get:
|
|
summary: Get issues
|
|
description: Get a report of performance issues and configuration suggestions
|
|
operationId: get_issues
|
|
tags:
|
|
- Beta
|
|
responses:
|
|
"200":
|
|
description: Successful response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
"4XX":
|
|
description: error
|
|
delete:
|
|
summary: Clear issues
|
|
description: Removes all issues reported so far
|
|
operationId: clear_issues
|
|
tags:
|
|
- Beta
|
|
responses: #@ response(type("boolean"))
|