This PR implements per-collection metrics for Prometheus as requested in #3322.
Extended telemetry data structures (src/common/telemetry_ops/requests_telemetry.rs):
collection_responses field to WebApiTelemetry and GrpcTelemetryREST API collection extraction (src/actix/actix_telemetry.rs):
extract_collection_name() helper to parse URLs like /collections/{name}/points/searchgRPC support (src/tonic/tonic_telemetry.rs):
Metrics output (src/common/metrics.rs):
WebApiTelemetry::add_metrics() to output per-collection metrics with collection labelGrpcTelemetry::add_metrics() similarly# Global metrics (existing behavior preserved)
rest_responses_total{method="POST",endpoint="/collections/{name}/points",status="200"} 100
rest_responses_avg_duration_seconds{method="POST",endpoint="/collections/{name}/points",status="200"} 0.001
# Per-collection metrics (new)
rest_collection_responses_total{method="POST",endpoint="/collections/{name}/points",status="200",collection="my-collection"} 50
rest_collection_responses_avg_duration_seconds{method="POST",endpoint="/collections/{name}/points",status="200",collection="my-collection"} 0.0009
cargo check passescargo test metrics passes (test_endpoint_whitelists_sorted)cargo +nightly fmtFixes #3322
/claim #3322
tianlin-magi
@tele-he-gmail-com
Qdrant
@Qdrant