This repository demonstrates a basic setup of Prometheus + Grafana for monitoring Qdrant clusters. It is primary targeting monitoring for cloud-hosted Qdrant clusters, but some parts can be used for monitoring open-source deployments as well.
Monitoring includes:
- Cluster status
- Collection statistics and ongoing operations
- API performance and latency distribution
- System resource usage (CPU, memory, disk, IOPS)
- Network traffic statistics
If you already have running prometheus and grafana instances, you can import the dashboards from grafana/dashboards folder.
Copy prometheus/prometheus.example.yml to prometheus/prometheus.yml and edit it to your needs.
Replace the placeholders in prometheus/prometheus.yml:
- job_name: "qdrant-cloud"
bearer_token: "<QDRANT_API_KEY>"
static_configs:
- targets:
- "<QDRANT_CLOUD_CLUSTER_URL>"For example, if your cluster URL is my-cluster.eu-west-1.aws.cloud.qdrant.io:6333:
- job_name: "qdrant-cloud"
bearer_token: "your-actual-api-key"
static_configs:
- targets:
- "my-cluster.eu-west-1.aws.cloud.qdrant.io:6333"Note: You need to specify configuration for
/metricsand/sys_metricsendpoints for both jobs to have full monitoring coverage.
Note: It is preferable to use dedicated read-only API key for monitoring purposes.
docker compose upNavigate to http://localhost:3000 and log in with:
- User:
admin - Password:
admin
Both dashboards are auto-provisioned in the Qdrant folder.
WARN: To change the password, you need to edit the
docker-compose.ymlfile and change theGF_SECURITY_ADMIN_PASSWORDenvironment variable.
docker compose downTo also remove stored data:
docker compose down -v.
├── docker-compose.yml
├── prometheus/
│ └── prometheus.yml # Prometheus scrape config
└── grafana/
├── dashboards/
│ ├── qdrant_cloud_dashboard.json
│ └── qdrant_cloud_operator_dashboard.json
└── provisioning/
├── datasources/
│ └── datasource.yml # Auto-provision Prometheus datasource
└── dashboards/
└── dashboards.yml # Auto-provision dashboard JSONs
