mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-01 09:48:20 +00:00
perf(ecstore): gate GET metadata timing when metrics off (#6879)
Co-authored-by: heihutu <heihutu@gmail.com>
This commit is contained in:
@@ -1675,7 +1675,7 @@ impl crate::storage_api_contracts::object::ObjectIO for SetDisks {
|
|||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
let metadata_stage_start = Instant::now();
|
let metadata_stage_start = stage_metrics_enabled.then(Instant::now);
|
||||||
let (snapshot, prepared_object_info) = if let Some(prepared) = take_prepared_get_object_metadata() {
|
let (snapshot, prepared_object_info) = if let Some(prepared) = take_prepared_get_object_metadata() {
|
||||||
(prepared.snapshot, prepared.object_info)
|
(prepared.snapshot, prepared.object_info)
|
||||||
} else {
|
} else {
|
||||||
@@ -1691,7 +1691,11 @@ impl crate::storage_api_contracts::object::ObjectIO for SetDisks {
|
|||||||
{
|
{
|
||||||
Ok(snapshot) => (snapshot, None),
|
Ok(snapshot) => (snapshot, None),
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
rustfs_io_metrics::record_get_object_metadata_phase_duration(metadata_stage_start.elapsed().as_secs_f64());
|
if let Some(metadata_stage_start) = metadata_stage_start {
|
||||||
|
rustfs_io_metrics::record_get_object_metadata_phase_duration(
|
||||||
|
metadata_stage_start.elapsed().as_secs_f64(),
|
||||||
|
);
|
||||||
|
}
|
||||||
let failure_path = if is_meta_bucketname(bucket) {
|
let failure_path = if is_meta_bucketname(bucket) {
|
||||||
GET_OBJECT_PATH_INTERNAL_META
|
GET_OBJECT_PATH_INTERNAL_META
|
||||||
} else {
|
} else {
|
||||||
@@ -1716,15 +1720,17 @@ impl crate::storage_api_contracts::object::ObjectIO for SetDisks {
|
|||||||
};
|
};
|
||||||
let size_bucket = rustfs_io_metrics::get_object_size_bucket(metrics_size);
|
let size_bucket = rustfs_io_metrics::get_object_size_bucket(metrics_size);
|
||||||
record_get_stage_duration_if_enabled(GET_OBJECT_PATH_SET_DISK, GET_STAGE_OBJECT_INFO, object_info_stage_start);
|
record_get_stage_duration_if_enabled(GET_OBJECT_PATH_SET_DISK, GET_STAGE_OBJECT_INFO, object_info_stage_start);
|
||||||
let metadata_elapsed = metadata_stage_start.elapsed().as_secs_f64();
|
if let Some(metadata_stage_start) = metadata_stage_start {
|
||||||
rustfs_io_metrics::record_get_object_metadata_phase_duration(metadata_elapsed);
|
let metadata_elapsed = metadata_stage_start.elapsed().as_secs_f64();
|
||||||
rustfs_io_metrics::record_get_object_stage_duration_by_size(
|
rustfs_io_metrics::record_get_object_metadata_phase_duration(metadata_elapsed);
|
||||||
GET_OBJECT_PATH_SET_DISK,
|
rustfs_io_metrics::record_get_object_stage_duration_by_size(
|
||||||
GET_STAGE_METADATA,
|
GET_OBJECT_PATH_SET_DISK,
|
||||||
object_class.as_str(),
|
GET_STAGE_METADATA,
|
||||||
size_bucket,
|
object_class.as_str(),
|
||||||
metadata_elapsed,
|
size_bucket,
|
||||||
);
|
metadata_elapsed,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if object_info.delete_marker {
|
if object_info.delete_marker {
|
||||||
if opts.version_id.is_none() {
|
if opts.version_id.is_none() {
|
||||||
|
|||||||
Reference in New Issue
Block a user