Skip to content

Commit e79e0e4

Browse files
committed
feat: New Qdrant metrics
Signed-off-by: Anush008 <[email protected]>
1 parent 3a4f109 commit e79e0e4

File tree

8 files changed

+322
-116
lines changed

8 files changed

+322
-116
lines changed

qdrant/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# CHANGELOG - Qdrant
22

3+
## 1.2.0 / 2025-12-08
4+
5+
***Added***
6+
7+
* Added support for [new metrics](https://github.com/qdrant/qdrant/releases/tag/v1.16.0#:~:text=Metrics) introduced in Qdrant v1.16.0
8+
9+
***Deprecated***
10+
11+
* Deprecated `qdrant.collection.hardware.metric.cpu` in favor of `qdrant.collection.hardware.metric.cpu.count`
12+
313
## 1.1.1 / 2025-10-17
414

515
***Added***

qdrant/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ For Agent v7.21+ / v6.21+, follow the instructions below to install the Qdrant c
2020
1. Run the following command to install the Agent integration:
2121

2222
```shell
23-
datadog-agent integration install -t qdrant==1.1.0
23+
datadog-agent integration install -t qdrant==1.2.0
2424
```
2525

2626
2. Configure your integration similar to core [integrations][4].
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '1.1.0'
1+
__version__ = '1.2.0'

qdrant/datadog_checks/qdrant/config_models/instance.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from typing import Any, Optional, Union
1010

1111
from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
12+
from typing_extensions import Literal
1213

1314
from datadog_checks.base.utils.functions import identity
1415
from datadog_checks.base.utils.models import validation
@@ -105,7 +106,7 @@ class InstanceConfig(BaseModel):
105106
ignore_connection_errors: Optional[bool] = None
106107
ignore_tags: Optional[tuple[str, ...]] = None
107108
include_labels: Optional[tuple[str, ...]] = None
108-
kerberos_auth: Optional[str] = None
109+
kerberos_auth: Optional[Literal['required', 'optional', 'disabled']] = None
109110
kerberos_cache: Optional[str] = None
110111
kerberos_delegate: Optional[bool] = None
111112
kerberos_force_initiate: Optional[bool] = None

qdrant/datadog_checks/qdrant/metrics.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,21 @@
44
"collections_vector_total": "collections.vector.total",
55
"collections_full_total": "collections.full.total",
66
"collections_aggregated_total": "collections.aggregated.total",
7+
"collection_vectors": "collection.vectors",
8+
"collection_active_replicas_min": "collection.active.replicas.min",
9+
"collection_active_replicas_max": "collection.active.replicas.max",
10+
"collection_running_optimizations": "collection.running.optimizations",
11+
"collection_points": "collection.points",
12+
"collection_dead_replicas": "collection.dead.replicas",
13+
"snapshot_creation_running": "snapshot.creation.running",
14+
"snapshot_recovery_running": "snapshot.recovery.running",
15+
"snapshot_created": "snapshot.created",
716
"rest_responses": "rest.responses",
817
"rest_responses_fail": "rest.responses.fail",
918
"rest_responses_avg_duration_seconds": "rest.responses.avg.duration.seconds",
1019
"rest_responses_min_duration_seconds": "rest.responses.min.duration.seconds",
1120
"rest_responses_max_duration_seconds": "rest.responses.max.duration.seconds",
21+
"rest_responses_duration_seconds": "rest.responses.duration.seconds",
1222
"grpc_responses": "grpc.responses",
1323
"grpc_responses_fail": "grpc.responses.fail",
1424
"grpc_responses_avg_duration_seconds": "grpc.responses.avg.duration.seconds",
@@ -26,4 +36,17 @@
2636
"memory_resident_bytes": "memory.resident.bytes",
2737
"memory_retained_bytes": "memory.retained.bytes",
2838
"collection_hardware_metric_cpu": "collection.hardware.metric.cpu",
39+
"collection_hardware_metric_payload_io_read": "collection.hardware.metric.payload.io.read",
40+
"collection_hardware_metric_payload_index_io_read": "collection.hardware.metric.payload.index.io.read",
41+
"collection_hardware_metric_payload_index_io_write": "collection.hardware.metric.payload.index.io.write",
42+
"collection_hardware_metric_payload_io_write": "collection.hardware.metric.payload.io.write",
43+
"collection_hardware_metric_vector_io_read": "collection.hardware.metric.vector.io.read",
44+
"collection_hardware_metric_vector_io_write": "collection.hardware.metric.vector.io.write",
45+
"process_threads": "process.threads",
46+
"process_open_mmaps": "process.open.mmaps",
47+
"system_max_mmaps": "system.max.mmaps",
48+
"process_open_fds": "process.open.fds",
49+
"process_max_fds": "process.max.fds",
50+
"process_minor_page_faults": "process.minor.page.faults",
51+
"process_major_page_faults": "process.major.page.faults",
2952
}

qdrant/metadata.csv

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,30 @@ qdrant.memory.allocated.bytes,gauge,,,,Total number of bytes allocated by the ap
2525
qdrant.memory.metadata.bytes,gauge,,,,Total number of bytes dedicated to metadata,0,qdrant,qdrant memory metadata bytes,
2626
qdrant.memory.resident.bytes,gauge,,,,Maximum number of bytes in physically resident data pages mapped,0,qdrant,qdrant memory resident bytes,
2727
qdrant.memory.retained.bytes,gauge,,,,Total number of bytes in virtual memory mappings,0,qdrant,qdrant memory retained bytes,
28-
qdrant.collection.hardware.metric.cpu,gauge,,,,CPU measurements of a collection,0,qdrant,qdrant collection hardware metric cpu,
28+
qdrant.collection.hardware.metric.cpu,gauge,,,,[Deprecated] CPU measurements of a collection. Use qdrant.collection.hardware.metric.cpu.count instead.,0,qdrant,qdrant collection hardware metric cpu,
29+
qdrant.collection.hardware.metric.cpu.count,count,,,,CPU measurements of a collection,0,qdrant,qdrant collection hardware metric cpu count,
30+
qdrant.collection.vectors,gauge,,,,Number of vectors grouped by vector name,0,qdrant,qdrant collection vectors,
31+
qdrant.collection.active.replicas.min,gauge,,,,Minimum number of active replicas across all shards,0,qdrant,qdrant collection active replicas min,
32+
qdrant.collection.active.replicas.max,gauge,,,,Maximum number of active replicas across all shards,0,qdrant,qdrant collection active replicas max,
33+
qdrant.collection.running.optimizations,gauge,,,,Number of currently running optimization tasks per collection,0,qdrant,qdrant collection running optimizations,
34+
qdrant.collection.points,gauge,,,,Approximate number of points per collection,0,qdrant,qdrant collection points,
35+
qdrant.collection.dead.replicas,gauge,,,,Total number of shard replicas in non-active state,0,qdrant,qdrant collection dead replicas,
36+
qdrant.snapshot.creation.running,gauge,,,,Number of snapshot creations that are currently running,0,qdrant,qdrant snapshot creation running,
37+
qdrant.snapshot.recovery.running,gauge,,,,Number of snapshot recovery operations currently running,0,qdrant,qdrant snapshot recovery running,
38+
qdrant.snapshot.created.count,count,,,,Total number of snapshots created,0,qdrant,qdrant snapshot created count,
39+
qdrant.rest.responses.duration.seconds.count,count,,,,Total count of responses for histogram buckets,0,qdrant,qdrant rest responses duration seconds count,
40+
qdrant.rest.responses.duration.seconds.sum,count,,second,,Total sum of response durations in seconds,0,qdrant,qdrant rest responses duration seconds sum,
41+
qdrant.rest.responses.duration.seconds.bucket,count,,,,Response duration histogram buckets,0,qdrant,qdrant rest responses duration seconds bucket,
42+
qdrant.collection.hardware.metric.payload.io.read.count,count,,,,Total IO payload read metrics of a collection,0,qdrant,qdrant collection hardware metric payload io read count,
43+
qdrant.collection.hardware.metric.payload.index.io.read.count,count,,,,Total IO payload index read metrics of a collection,0,qdrant,qdrant collection hardware metric payload index io read count,
44+
qdrant.collection.hardware.metric.payload.index.io.write.count,count,,,,Total IO payload index write metrics of a collection,0,qdrant,qdrant collection hardware metric payload index io write count,
45+
qdrant.collection.hardware.metric.payload.io.write.count,count,,,,Total IO payload write metrics of a collection,0,qdrant,qdrant collection hardware metric payload io write count,
46+
qdrant.collection.hardware.metric.vector.io.read.count,count,,,,Total IO vector read metrics of a collection,0,qdrant,qdrant collection hardware metric vector io read count,
47+
qdrant.collection.hardware.metric.vector.io.write.count,count,,,,Total IO vector write metrics of a collection,0,qdrant,qdrant collection hardware metric vector io write count,
48+
qdrant.process.threads,gauge,,,,Count of active threads,0,qdrant,qdrant process threads,
49+
qdrant.process.open.mmaps,gauge,,,,Count of open memory-mapped files,0,qdrant,qdrant process open mmaps,
50+
qdrant.system.max.mmaps,gauge,,,,System-wide limit of open memory-mapped files,0,qdrant,qdrant system max mmaps,
51+
qdrant.process.open.fds,gauge,,,,Count of currently open file descriptors,0,qdrant,qdrant process open fds,
52+
qdrant.process.max.fds,gauge,,,,Limit for open file descriptors,0,qdrant,qdrant process max fds,
53+
qdrant.process.minor.page.faults.count,count,,,,Count of minor page faults which didn't cause a disk access,0,qdrant,qdrant process minor page faults,
54+
qdrant.process.major.page.faults.count,count,,,,Count of disk accesses caused by a memory-mapped page fault,0,qdrant,qdrant process major page faults,

qdrant/tests/common.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,46 @@ def read_file(file_path, is_json=False):
1010
"qdrant.app.status.recovery.mode",
1111
"qdrant.collections.total",
1212
"qdrant.collections.vector.total",
13+
"qdrant.collection.vectors",
14+
"qdrant.collection.active.replicas.min",
15+
"qdrant.collection.active.replicas.max",
16+
"qdrant.collection.running.optimizations",
17+
"qdrant.collection.points",
18+
"qdrant.collection.dead.replicas",
19+
"qdrant.snapshot.creation.running",
20+
"qdrant.snapshot.recovery.running",
21+
"qdrant.snapshot.created.count",
1322
"qdrant.rest.responses.avg.duration.seconds",
1423
"qdrant.rest.responses.min.duration.seconds",
1524
"qdrant.rest.responses.max.duration.seconds",
16-
"qdrant.grpc.responses.avg.duration.seconds",
17-
"qdrant.grpc.responses.min.duration.seconds",
18-
"qdrant.grpc.responses.max.duration.seconds",
25+
"qdrant.rest.responses.duration.seconds.count",
26+
"qdrant.rest.responses.duration.seconds.sum",
27+
"qdrant.rest.responses.duration.seconds.bucket",
1928
"qdrant.cluster.enabled",
2029
"qdrant.cluster.peers.total",
2130
"qdrant.cluster.term.count",
2231
"qdrant.cluster.commit.count",
2332
"qdrant.cluster.pending.operations.total",
2433
"qdrant.cluster.voter",
25-
"qdrant.grpc.responses.count",
26-
"qdrant.grpc.responses.fail.count",
2734
"qdrant.rest.responses.count",
2835
"qdrant.rest.responses.fail.count",
29-
"qdrant.collection.hardware.metric.cpu",
36+
"qdrant.collection.hardware.metric.cpu.count",
37+
"qdrant.collection.hardware.metric.payload.io.read.count",
38+
"qdrant.collection.hardware.metric.payload.index.io.read.count",
39+
"qdrant.collection.hardware.metric.payload.index.io.write.count",
40+
"qdrant.collection.hardware.metric.payload.io.write.count",
41+
"qdrant.collection.hardware.metric.vector.io.read.count",
42+
"qdrant.collection.hardware.metric.vector.io.write.count",
3043
"qdrant.memory.active.bytes",
3144
"qdrant.memory.metadata.bytes",
3245
"qdrant.memory.resident.bytes",
3346
"qdrant.memory.retained.bytes",
3447
"qdrant.memory.allocated.bytes",
48+
"qdrant.process.threads",
49+
"qdrant.process.open.mmaps",
50+
"qdrant.system.max.mmaps",
51+
"qdrant.process.open.fds",
52+
"qdrant.process.max.fds",
53+
"qdrant.process.minor.page.faults.count",
54+
"qdrant.process.major.page.faults.count",
3555
]

0 commit comments

Comments
 (0)