Skip to content

Commit 0b061a3

Browse files
committed
Refactor: move HardwareUsage to the Usage map
1 parent 5f74d43 commit 0b061a3

7 files changed

Lines changed: 49 additions & 14 deletions

File tree

docs/redoc/master/openapi.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15225,6 +15225,22 @@
1522515225
"type": "boolean"
1522615226
}
1522715227
]
15228+
},
15229+
"Usage": {
15230+
"description": "Usage of the hardware resources, spent to process the request",
15231+
"type": "object",
15232+
"properties": {
15233+
"hardware": {
15234+
"anyOf": [
15235+
{
15236+
"$ref": "#/components/schemas/HardwareUsage"
15237+
},
15238+
{
15239+
"nullable": true
15240+
}
15241+
]
15242+
}
15243+
}
1522815244
}
1522915245
}
1523015246
}

lib/api/src/grpc/proto/points_internal_service.proto

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ message UpdateBatchInternal {
123123
message PointsOperationResponseInternal {
124124
UpdateResultInternal result = 1;
125125
double time = 2; // Time spent to process
126-
optional HardwareUsage usage = 3;
126+
optional Usage usage = 3;
127127
}
128128

129129
// Has to be backward compatible with `UpdateResult`!
@@ -314,7 +314,7 @@ message QueryResultInternal {
314314
message QueryBatchResponseInternal {
315315
repeated QueryResultInternal results = 1;
316316
double time = 2; // Time spent to process
317-
optional HardwareUsage usage = 5;
317+
optional Usage usage = 5;
318318
}
319319

320320
message FacetCountsInternal {
@@ -344,5 +344,5 @@ message FacetHitInternal {
344344
message FacetResponseInternal {
345345
repeated FacetHitInternal hits = 1;
346346
double time = 2; // Time spent to process
347-
optional HardwareUsage usage = 3;
347+
optional Usage usage = 3;
348348
}

lib/api/src/grpc/qdrant.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9887,7 +9887,7 @@ pub struct QueryBatchResponseInternal {
98879887
#[prost(double, tag = "2")]
98889888
pub time: f64,
98899889
#[prost(message, optional, tag = "5")]
9890-
pub usage: ::core::option::Option<HardwareUsage>,
9890+
pub usage: ::core::option::Option<Usage>,
98919891
}
98929892
#[derive(serde::Serialize)]
98939893
#[derive(validator::Validate)]
@@ -9953,7 +9953,7 @@ pub struct FacetResponseInternal {
99539953
#[prost(double, tag = "2")]
99549954
pub time: f64,
99559955
#[prost(message, optional, tag = "3")]
9956-
pub usage: ::core::option::Option<HardwareUsage>,
9956+
pub usage: ::core::option::Option<Usage>,
99579957
}
99589958
/// Generated client implementations.
99599959
pub mod points_internal_client {

lib/api/src/rest/models.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,16 @@ pub struct ApiResponse<D> {
4545
pub status: ApiStatus,
4646
pub time: f64,
4747
#[serde(skip_serializing_if = "Option::is_none")]
48-
pub usage: Option<HardwareUsage>,
48+
pub usage: Option<Usage>,
49+
}
50+
51+
/// Usage of the hardware resources, spent to process the request
52+
#[derive(Debug, Serialize, JsonSchema, Anonymize, Clone)]
53+
#[serde(rename_all = "snake_case")]
54+
#[anonymize(false)]
55+
pub struct Usage {
56+
#[serde(skip_serializing_if = "Option::is_none")]
57+
pub hardware: Option<HardwareUsage>,
4958
}
5059

5160
/// Usage of the hardware resources, spent to process the request

lib/collection/src/shards/remote_shard.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,7 +1201,9 @@ impl ShardOperation for RemoteShard {
12011201
} = batch_response;
12021202

12031203
if let Some(hw_usage) = usage {
1204-
hw_measurement_acc.accumulate_request(hw_usage);
1204+
if let Some(hardware) = hw_usage.hardware {
1205+
hw_measurement_acc.accumulate_request(hardware);
1206+
}
12051207
}
12061208

12071209
let result = results
@@ -1271,7 +1273,9 @@ impl ShardOperation for RemoteShard {
12711273
.into_inner();
12721274

12731275
if let Some(hw_usage) = response.usage {
1274-
hw_measurement_acc.accumulate_request(hw_usage);
1276+
if let Some(hardware) = hw_usage.hardware {
1277+
hw_measurement_acc.accumulate_request(hardware);
1278+
}
12751279
}
12761280

12771281
let hits = response

src/actix/helpers.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use actix_web::http::header;
55
use actix_web::http::header::HeaderMap;
66
use actix_web::rt::time::Instant;
77
use actix_web::{HttpResponse, ResponseError, http};
8-
use api::rest::models::{ApiResponse, ApiStatus, HardwareUsage};
8+
use api::rest::models::{ApiResponse, ApiStatus, HardwareUsage, Usage};
99
use collection::operations::types::CollectionError;
1010
use common::counter::hardware_accumulator::HwMeasurementAcc;
1111
use serde::Serialize;
@@ -33,7 +33,9 @@ pub fn accepted_response(timing: Instant, hardware_usage: Option<HardwareUsage>)
3333
result: None,
3434
status: ApiStatus::Accepted,
3535
time: timing.elapsed().as_secs_f64(),
36-
usage: hardware_usage,
36+
usage: Option::from(Usage {
37+
hardware: hardware_usage,
38+
}),
3739
})
3840
}
3941

@@ -50,7 +52,9 @@ where
5052
result: Some(res),
5153
status: ApiStatus::Ok,
5254
time: timing.elapsed().as_secs_f64(),
53-
usage: hardware_usage,
55+
usage: Option::from(Usage {
56+
hardware: hardware_usage,
57+
}),
5458
}),
5559
Err(err) => process_response_error(err, timing, hardware_usage),
5660
}
@@ -70,7 +74,9 @@ pub fn process_response_error(
7074
result: None,
7175
status: ApiStatus::Error(error.to_string()),
7276
time: timing.elapsed().as_secs_f64(),
73-
usage: hardware_usage,
77+
usage: Option::from(Usage {
78+
hardware: hardware_usage,
79+
}),
7480
};
7581

7682
let mut response_builder = HttpResponse::build(http_code);

src/schema_generator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![allow(dead_code)]
22

3-
use api::rest::models::{CollectionsResponse, HardwareUsage, VersionInfo};
3+
use api::rest::models::{CollectionsResponse, Usage, VersionInfo};
44
use api::rest::schema::PointInsertOperations;
55
use api::rest::{
66
FacetRequest, FacetResponse, QueryGroupsRequest, QueryRequest, QueryRequestBatch,
@@ -97,7 +97,7 @@ struct AllDefinitions {
9797
bk: SearchMatrixPairsResponse,
9898
bl: FacetRequest,
9999
bm: FacetResponse,
100-
bn: HardwareUsage,
100+
bn: Usage,
101101
}
102102

103103
fn save_schema<T: JsonSchema>() {

0 commit comments

Comments
 (0)