diff --git a/pageserver/src/consumption_metrics/metrics.rs b/pageserver/src/consumption_metrics/metrics.rs index a4bfe74e30..08ab69f349 100644 --- a/pageserver/src/consumption_metrics/metrics.rs +++ b/pageserver/src/consumption_metrics/metrics.rs @@ -263,7 +263,9 @@ where while let Some((tenant_id, tenant)) = tenants.next().await { let mut tenant_resident_size = 0; - for timeline in tenant.list_timelines() { + let timelines = tenant.list_timelines(); + let timelines_len = timelines.len(); + for timeline in timelines { let timeline_id = timeline.timeline_id; match TimelineSnapshot::collect(&timeline, ctx) { @@ -289,6 +291,11 @@ where tenant_resident_size += timeline.resident_physical_size(); } + if timelines_len == 0 { + // Force set it to 1 byte to avoid not being reported -- all timelines are offloaded. + tenant_resident_size = 1; + } + let snap = TenantSnapshot::collect(&tenant, tenant_resident_size); snap.to_metrics(tenant_id, Utc::now(), cache, &mut current_metrics); }