refactor: fix residency and metrics to layermanager

This commit is contained in:
Joonas Koivunen
2023-08-24 19:50:25 +03:00
parent a47b7d1d4c
commit 450f79b3f5
2 changed files with 10 additions and 14 deletions

View File

@@ -12,8 +12,7 @@ use bytes::Bytes;
use fail::fail_point;
use itertools::Itertools;
use pageserver_api::models::{
DownloadRemoteLayersTaskInfo, DownloadRemoteLayersTaskSpawnRequest, LayerMapInfo,
LayerResidenceEventReason, LayerResidenceStatus, TimelineState,
DownloadRemoteLayersTaskInfo, DownloadRemoteLayersTaskSpawnRequest, LayerMapInfo, TimelineState,
};
use serde_with::serde_as;
use storage_broker::BrokerClientChannel;
@@ -2749,17 +2748,7 @@ impl Timeline {
let mut guard = self.layers.write().await;
for l in &image_layers {
// FIXME: these should be in guard
self.metrics
.resident_physical_size_gauge
.add(l.layer_desc().file_size);
l.access_stats().record_residence_event(
LayerResidenceStatus::Resident,
LayerResidenceEventReason::LayerCreate,
);
}
guard.track_new_image_layers(&image_layers);
guard.track_new_image_layers(&image_layers, &self.metrics);
drop_wlock(guard);
timer.stop_and_record();

View File

@@ -154,9 +154,16 @@ impl LayerManager {
}
/// Add image layers to the layer map, called from `create_image_layers`.
pub(crate) fn track_new_image_layers(&mut self, image_layers: &[ResidentLayer]) {
pub(crate) fn track_new_image_layers(
&mut self,
image_layers: &[ResidentLayer],
metrics: &crate::metrics::TimelineMetrics,
) {
let mut updates = self.layer_map.batch_update();
for layer in image_layers {
metrics
.resident_physical_size_gauge
.add(layer.layer_desc().file_size);
layer.access_stats().record_residence_event(
LayerResidenceStatus::Resident,
LayerResidenceEventReason::LayerCreate,