Qdrant
Qdrant
Qdrant Cloud is a fully managed service, so there is no in-cluster endpoint to scrape. Instead, each Qdrant Cloud cluster exposes a Prometheus-compatible /sys_metrics endpoint, and the StackGen agent scrapes it over the internet using a Bearer API key.
Integration is two steps: (1) get a read-only API key from Qdrant Cloud, and (2) add a scrape job (and its secret) to the agent's values.yaml.
1. Get an API key from Qdrant Cloud
-
Create a read-only Database API key. In the Qdrant Cloud console, open your cluster → API Keys → create a Database API Key. A read-only key is sufficient for monitoring.
-
Copy the cluster endpoint. From the cluster overview, note the endpoint host, e.g.:
https://<cluster-id>.<region>.aws.cloud.qdrant.ioMetrics are served at
/sys_metricson port6333(or443), and only need to be scraped once on the main cluster endpoint.
2. Configure the agent (values.yaml)
Qdrant Cloud is an external SaaS target secured with a Bearer API key, so it is added as a static_configs scrape job (not Kubernetes service discovery). Add the job under extraScrapeConfigs and reference the API key via credentials_file.
victoria-metrics-agent:
extraScrapeConfigs:
- job_name: 'qdrant'
scheme: https
scrape_interval: 1m
scrape_timeout: 30s
metrics_path: /sys_metrics
authorization:
type: Bearer
credentials_file: /etc/vmagent-credentials/qdrant-api-key
static_configs:
- targets: ['<cluster-id>.<region>.aws.cloud.qdrant.io:6333'] # from the Qdrant console
Add the API key as a key in the credentials secret the agent already mounts at /etc/vmagent-credentials:
kubectl -n <observe-namespace> patch secret observe-agent-credentials \
--type merge \
-p '{"stringData":{"qdrant-api-key":"<the-read-only-key>"}}'
If the key referenced by credentials_file is missing, the agent rejects the config reload and silently keeps the previous config — the qdrant job will not appear. Ensure the secret key exists, then roll the agent.
Apply the values and run the agent based on these instructions. Within one scrape interval the metrics appear under the MetricsServer datasource — Qdrant-specific ones prefixed qdrant_/collection (for example collections_total, collections_vector_total, qdrant_collection_number_of_rest_requests, rest_responses_total), plus cluster_* consensus, memory_*, and process_*. Series are labelled with cluster_id, name (collection), peer_id, and pod.
Verify
Confirm the target is up and metrics are flowing:
up{job="qdrant"} # expect 1
collections_total # number of collections
Qdrant's /sys_metrics also includes infrastructure metrics that share names with cluster-wide series (container_*, kube_pod_*, kubelet_volume_stats_*). Scope dashboard queries to job="qdrant" so they only match the Qdrant target — this keeps queries fast and the numbers correct.