How to Set Up Qdrant Monitoring
Get Prometheus scraping working first, then health probes, then alerting. Do not skip monitoring setup before going to production.
Prometheus Metrics
Use when: setting up metric collection for the first time or adding a new deployment.
- Node metrics at
/metricsendpoint Monitoring docs - Cluster metrics at
/sys_metrics(Qdrant Cloud only) - Prefix customization via
service.metrics_prefixconfig orQDRANT__SERVICE__METRICS_PREFIXenv var - Example self-hosted setup with Prometheus + Grafana prometheus-monitoring repo
Hybrid Cloud Scraping
Use when: running Qdrant Hybrid Cloud and need cluster-level visibility.
Do not just scrape Qdrant nodes. In Hybrid Cloud, you manage the Kubernetes data plane. You must also scrape the cluster-exporter and operator pods for full cluster visibility and operator state.
- Hybrid Cloud Prometheus setup tutorial Hybrid Cloud Prometheus
- Official Grafana dashboards Grafana dashboard repo
Liveness and Readiness Probes
Use when: configuring Kubernetes health checks.
- Use
/healthz,/livez,/readyzfor basic status, liveness, and readiness Kubernetes health endpoints
Alerting
Use when: setting up alerts for production or Hybrid Cloud deployments.
- Qdrant Cloud provides pre-configured email alerts for 11 cluster issues. Use scraped metrics when you need custom alerts or routing to other targets. See Cloud cluster monitoring
- Use AlertmanagerConfig to route alerts to Slack, PagerDuty, or other targets based on labels
- At minimum, alert on: optimizer errors, node not ready, replication factor below target, disk usage >80%
Log Centralization and Audit Logging
Use when: enterprise compliance requires centralized logs or audit trails.
- Enable JSON log format for structured analysis: set
logger.formattojsonin config Configuration - Use FluentD/OpenSearch for log aggregation
- Audit logs (v1.17+) write to local filesystem (
/qdrant/storage/audit/) by default. On v1.20 or newer, setaudit.outputtostdout,stderr,file_and_stdout, orfile_and_stderr(env varQDRANT__AUDIT__OUTPUT) so a DaemonSet can collect them with no sidecar or Persistent Volume. Each line carries"kind": "audit"to tell it from regular logs, and the/audit/logsAPI returns nothing on a node that writes only to a stream. On v1.19 or older, mount a Persistent Volume and deploy a sidecar container to tail the files to stdout. Audit logging
What NOT to Do
- Scrape
/sys_metricson self-hosted (only available on Qdrant Cloud) - Scrape only Qdrant nodes in Hybrid Cloud (miss cluster-exporter and operator metrics)
- Skip monitoring setup before going to production (you will regret it)
- Alert on page cache memory usage (it's supposed to fill available RAM, normal OS behavior)


