监控与遥测
Qdrant 以 普罗米修斯/OpenMetrics 格式公开其指标,因此您可以轻松地将它们与兼容的工具集成,并使用您自己的监控系统监控 Qdrant。您可以使用 /metrics 端点并将其配置为抓取目标。
指标端点: http://localhost:6333/metrics
与Qdrant的集成很容易通过Prometheus和Grafana进行配置。
监控多节点集群
从多节点Qdrant集群中抓取指标时,重要的是从每个节点单独抓取,而不是使用负载均衡的URL。否则,每次抓取后,您的指标将显得不一致。
Qdrant 云中的监控
要从在Qdrant Cloud中运行的Qdrant集群中抓取指标,请注意需要API密钥才能访问/metrics和/sys_metrics。Qdrant Cloud还支持将API密钥作为Bearer 令牌提供,某些提供商可能需要这种方式。
暴露的指标
有两个可用的端点:
/metrics是底层 Qdrant 数据库节点的直接端点。/sys_metrics是一个仅限 Qdrant 云的端点,提供有关集群的额外操作和基础设施指标,如 CPU、内存和磁盘使用率、集合指标和负载均衡器遥测。
节点指标 /metrics
每个Qdrant服务器将暴露以下指标。
| 名称 | 类型 | 含义 |
|---|---|---|
| app_info | gauge | 关于Qdrant服务器的信息 |
| app_status_recovery_mode | gauge | 如果Qdrant当前以恢复模式启动 |
| collections_total | gauge | 集合数量 |
| collections_vector_total | gauge | 所有集合中的向量总数 |
| collections_full_total | gauge | 完整集合的数量 |
| collections_aggregated_total | gauge | 聚合集合的数量 |
| rest_responses_total | counter | 通过REST API的响应总数 |
| rest_responses_fail_total | counter | 通过REST API失败的响应总数 |
| rest_responses_avg_duration_seconds | gauge | REST API 的平均响应时间 |
| rest_responses_min_duration_seconds | gauge | REST API中的最小响应持续时间 |
| rest_responses_max_duration_seconds | gauge | REST API中的最大响应持续时间 |
| grpc_responses_total | counter | 通过gRPC API的总响应数 |
| grpc_responses_fail_total | counter | 通过REST API失败的响应总数 |
| grpc_responses_avg_duration_seconds | gauge | gRPC API中的平均响应持续时间 |
| grpc_responses_min_duration_seconds | gauge | gRPC API中的最小响应持续时间 |
| grpc_responses_max_duration_seconds | gauge | gRPC API中的最大响应持续时间 |
| cluster_enabled | gauge | 是否启用了集群支持。1 - 是 |
| memory_active_bytes | gauge | 应用程序分配的活跃页面中的总字节数。参考 |
| memory_allocated_bytes | gauge | 应用程序分配的总字节数。参考 |
| memory_metadata_bytes | gauge | 分配给分配器元数据的总字节数。参考 |
| memory_resident_bytes | gauge | 映射的物理驻留数据页中的最大字节数。参考 |
| memory_retained_bytes | gauge | 虚拟内存映射中的总字节数。参考 |
| collection_hardware_metric_cpu | gauge | 集合的CPU测量 |
集群相关指标
还有一些指标仅在分布式模式下暴露。
| 名称 | 类型 | 含义 |
|---|---|---|
| cluster_peers_total | gauge | 集群对等节点的总数 |
| cluster_term | counter | 当前集群任期 |
| cluster_commit | counter | 集群节点已知的最后提交(最终化)操作的索引 |
| cluster_pending_operations_total | gauge | 集群对等节点的待处理操作总数 |
| cluster_voter | gauge | 集群节点是否为投票者或学习者。1 - 投票者 |
集群系统指标 /sys_metrics
在Qdrant Cloud中,每个Qdrant集群将暴露以下指标。此端点在使用Qdrant开源版本时不可用。
重要的基础指标
| 名称 | 类型 | 含义 |
|---|---|---|
| container_cpu_cfs_throttled_periods_total | counter | 表示您的CPU需求高于实例提供的资源 |
| kube_pod_container_resource_limits | gauge | 响应包含CPU和内存的指标列表。 |
| qdrant_collection_number_of_grpc_requests | counter | 集合上的gRPC请求总数 |
| qdrant_collection_number_of_rest_requests | counter | 集合上的REST请求总数 |
| qdrant_node_rssanon_bytes | gauge | 未使用内存映射文件分配的内存。这是内存的硬性指标,如果超过限制将导致OOM |
| kubelet_volume_stats_used_bytes | gauge | 已使用的磁盘量 |
| traefik_service_requests_total | counter | 响应包含每个Traefik服务的指标列表。 |
| traefik_service_request_duration_seconds_sum | gauge | 响应包含每个Traefik服务的指标列表。 |
附加指标
| 名称 | 类型 | 含义 |
|---|---|---|
| app_info | gauge | 关于Qdrant服务器的信息 |
| app_status_recovery_mode | gauge | 如果Qdrant当前以恢复模式启动 |
| cluster_peers_total | counter | 集群对等节点的总数 |
| cluster_pending_operations_total | counter | 集群中待处理操作的总数 |
| collections_total | counter | 集合数量 |
| collections_vector_total | counter | 所有集合中的向量总数 |
| container_cpu_usage_seconds_total | counter | 总CPU使用时间(秒) |
| container_fs_reads_bytes_total | counter | 容器文件系统(磁盘)读取的总字节数 |
| container_fs_reads_total | counter | 容器文件系统(磁盘)上的读取操作总数 |
| container_fs_writes_bytes_total | counter | 容器文件系统(磁盘)写入的总字节数 |
| container_fs_writes_total | counter | 容器文件系统(磁盘)上的写操作总数 |
| container_memory_cache | gauge | 容器中用于缓存的内存 |
| container_memory_mapped_file | gauge | 容器中用于内存映射文件的内存 |
| container_memory_rss | gauge | 常驻集大小 (RSS) - 容器使用的内存,不包括交换空间 |
| container_memory_working_set_bytes | gauge | 容器使用的总内存,包括匿名和文件支持的内存 |
| container_network_receive_bytes_total | counter | 容器网络接口接收的总字节数 |
| container_network_transmit_bytes_total | counter | 通过容器的网络接口传输的总字节数 |
| kube_pod_status_phase | gauge | Pod状态,根据不同的阶段(失败/运行中/成功/未知) |
| kube_pod_status_ready | gauge | Pod 就绪状态 (未知/假/真) |
| qdrant_collection_number_of_collections | counter | Qdrant中的集合总数 |
| qdrant_collection_pending_operations | counter | 集合上待处理操作的总数 |
遥测端点
Qdrant 还提供了一个 /telemetry 端点,该端点提供有关数据库当前状态的信息,包括向量数量、分片数量和其他有用信息。您可以在 API 参考 中找到此端点的完整文档。
Kubernetes 健康检查端点
自 v1.5.0 版本起可用
Qdrant 暴露了三个端点,即
/healthz、
/livez 和
/readyz,用于指示
Qdrant 服务器的当前状态。
这些目前提供最基本的状态响应,如果Qdrant已启动并准备就绪,则返回HTTP 200。
无论是否配置了API 密钥,端点始终可访问。
您可以阅读更多关于Kubernetes健康端点的信息 这里.
