Add Gauge for # of layers

This commit is contained in:
Heikki Linnakangas
2021-08-16 17:26:34 +03:00
parent a389c2ed7f
commit 11ebcb531f

View File

@@ -13,14 +13,26 @@ use crate::layered_repository::storage_layer::{Layer, SegmentTag};
use crate::layered_repository::{InMemoryLayer, SnapshotLayer};
use crate::relish::*;
use anyhow::Result;
use lazy_static::lazy_static;
use log::*;
use std::collections::HashSet;
use std::collections::{BinaryHeap, BTreeMap, HashMap};
use std::ops::Bound::Included;
use std::cmp::Ordering;
use std::sync::Arc;
use zenith_metrics::{register_int_gauge, IntGauge};
use zenith_utils::lsn::Lsn;
lazy_static! {
static ref NUM_INMEMORY_LAYERS: IntGauge =
register_int_gauge!("pageserver_inmemory_layers", "Number of layers in memory")
.expect("failed to define a metric");
static ref NUM_ONDISK_LAYERS: IntGauge =
register_int_gauge!("pageserver_ondisk_layers", "Number of layers on-disk")
.expect("failed to define a metric");
}
///
/// LayerMap tracks what layers exist on a timeline. The last layer that is
/// open for writes is always an InMemoryLayer, and is tracked separately
@@ -131,6 +143,8 @@ impl LayerMap {
layer: layer,
};
self.open_segs.push(opensegentry);
NUM_INMEMORY_LAYERS.inc();
}
// replace given open layer with other layers.
@@ -140,6 +154,7 @@ impl LayerMap {
let mut segentry = self.segs.get_mut(&segtag).unwrap();
segentry.open = None;
NUM_INMEMORY_LAYERS.dec();
}
///
@@ -161,6 +176,7 @@ impl LayerMap {
};
self.segs.insert(tag, segentry);
}
NUM_ONDISK_LAYERS.inc();
}
///
@@ -175,6 +191,7 @@ impl LayerMap {
if let Some(segentry) = self.segs.get_mut(&tag) {
segentry.historic.remove(&start_lsn);
}
NUM_ONDISK_LAYERS.dec();
}
pub fn list_rels(&self, spcnode: u32, dbnode: u32) -> Result<HashSet<RelTag>> {