\n\n\n\n How to Set Up Monitoring with Qdrant (Step by Step) \n

How to Set Up Monitoring with Qdrant (Step by Step)

📖 5 min read•859 words•Updated Mar 29, 2026

What You’ll Build and Why It Matters

We’re setting up monitoring for Qdrant, making it easier to track performance issues and bottlenecks in your vector search setup, which is crucial if you want to optimize user experience and data retrieval efficiency.

Prerequisites

  • Qdrant version 0.10.0+
  • Docker version 20.10.0+
  • Python 3.8+
  • Requests library: pip install requests
  • Grafana for visualization: download from Grafana official site

Step 1: Set Up Qdrant

First, let’s spin up Qdrant using Docker. This gives you a clean environment to work with.

docker run -p 6333:6333 qdrant/qdrant

Why? Using Docker allows for isolation and easier management without cluttering your local machine. If you run into issues, check if Docker is up and running. If the port 6333 is already in use, change it or stop the other service.

Step 2: Install Prometheus

Next is Prometheus, a powerful monitoring toolkit, to scrape metrics from Qdrant.

docker run -d -p 9090:9090 prom/prometheus

Why Prometheus? It excels in collecting and querying time-series data. If you get a “cannot connect” error, verify if the container started correctly, and that Docker is not using the port 9090 elsewhere.

Step 3: Configure Prometheus to Scrape Qdrant Metrics

Now, you need to set up Prometheus to scrape metrics from your Qdrant instance.

echo "global:
 scrape_interval: 15s

scrape_configs:
 - job_name: 'qdrant'
 static_configs:
 - targets: ['host.docker.internal:6333']" > prometheus.yml

Save this configuration as prometheus.yml. The reason behind this setup? You want regular updates on your metrics. Note that using ‘host.docker.internal’ works on Mac and Windows; for Linux, you might have to replace it with the actual host IP.

Step 4: Start Prometheus with the Configuration File

Now that you have your prometheus.yml file ready, fire up Prometheus using that config.

docker run -d -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

Why run Prometheus with a configuration file? This helps it know where to find Qdrant’s metrics. If it doesn’t start, check for errors in the container logs with docker logs <container_id>.

Step 5: Validate Prometheus is Scraping Qdrant

Check if Prometheus is actually pulling metrics from Qdrant. Open your browser and go to http://localhost:9090/targets.

Why do this? Ensuring the scraping is successful helps you know if your entire monitoring setup is on the right track. If it shows the target as “down,” double-check the IP and port configuration.

Step 6: Set Up Grafana for Visualization

Grafana is where you can actually visualize the metrics you’ve collected. Install Grafana and run the following:

docker run -d -p 3000:3000 grafana/grafana

What’s the point? Grafana turns raw metrics into friendly graphs and dashboards. If you hit errors accessing Grafana, check the Docker container logs or ensure port 3000 is available.

Step 7: Add Prometheus as a Data Source in Grafana

Once Grafana is up, go to http://localhost:3000. Use default credentials (admin/admin) and then add Prometheus as a data source.

Why is this step essential? Grafana needs to know where to fetch the data from for visualization. If it doesn’t connect, verify the Prometheus URL and that it’s accessible from within the Grafana container.

The Gotchas

  • Version compatibility: Ensure that all your component versions are compatible, otherwise you’re looking at a troubleshooting nightmare.
  • Firewall settings: On some networks, containers might be blocked. Check your firewall rules if connections fail.
  • Resource Allocation: Monitor resource usage; Qdrant can be memory-intensive. If your app crashes unexpectedly, it might be out of memory.
  • Grafana Timestamp Issues: Sometimes timestamps don’t match correctly. Ensure that your systems use the same time zone.
  • Docker Network Config: Changes in Docker network settings can lead to connectivity issues between containers. Make sure everything is on the same network if needed.

Full Code Example

Here’s a summary of the commands for the entire setup, so you don’t have to scroll back:

# Qdrant
docker run -p 6333:6333 qdrant/qdrant

# Prometheus
docker run -d -p 9090:9090 prom/prometheus
echo "global:
 scrape_interval: 15s

scrape_configs:
 - job_name: 'qdrant'
 static_configs:
 - targets: ['host.docker.internal:6333']" > prometheus.yml
docker run -d -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

# Grafana
docker run -d -p 3000:3000 grafana/grafana

What’s Next

Now that you have monitoring set up, consider implementing alerting in Prometheus to get notified when performance drops below your set thresholds. This could save you from sleepless nights.

FAQ

How can I know if Qdrant is healthy?
Check your Prometheus metrics for health and status codes. You could also create a Grafana dashboard specifically for Qdrant health metrics.
Can I use other monitoring tools besides Prometheus?
Sure, but in my experience, Prometheus integrates better with Qdrant specifically and provides better metric scraping capabilities.
What if I make a mistake during the setup?
Believe me, I once forgot to expose ports. The entire monitoring didn’t work. So double-check your configurations. If something fails, any logs from the containers will usually point you in the right direction.

Data Sources

Last updated March 29, 2026. Data sourced from official docs and community benchmarks.

đź•’ Published:

✍️
Written by Jake Chen

AI technology writer and researcher.

Learn more →
Browse Topics: Best Practices | Case Studies | General | minimalism | philosophy
Scroll to Top