From f54cb63eb4b68eaac3550a5f2b234ddeaff62b49 Mon Sep 17 00:00:00 2001 From: John Spray Date: Sun, 5 Nov 2023 18:07:49 +0000 Subject: [PATCH] pageserver: omit consumption metrics from shard != 0 --- pageserver/src/consumption_metrics/metrics.rs | 6 ++++++ pageserver/src/tenant.rs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/pageserver/src/consumption_metrics/metrics.rs b/pageserver/src/consumption_metrics/metrics.rs index 2989e15e8e..0e1f7e9dda 100644 --- a/pageserver/src/consumption_metrics/metrics.rs +++ b/pageserver/src/consumption_metrics/metrics.rs @@ -3,6 +3,7 @@ use anyhow::Context; use chrono::{DateTime, Utc}; use consumption_metrics::EventType; use futures::stream::StreamExt; +use pageserver_api::shard::ShardNumber; use std::{sync::Arc, time::SystemTime}; use utils::{ id::{TenantId, TimelineId}, @@ -229,6 +230,11 @@ where while let Some((tenant_id, tenant)) = tenants.next().await { let mut tenant_resident_size = 0; + // Sharded tenants report all consumption metrics from shard zero + if tenant.get_shard().number == ShardNumber(0) { + continue; + } + for timeline in tenant.list_timelines() { let timeline_id = timeline.timeline_id; diff --git a/pageserver/src/tenant.rs b/pageserver/src/tenant.rs index ea36973e15..7c1bf5780c 100644 --- a/pageserver/src/tenant.rs +++ b/pageserver/src/tenant.rs @@ -2128,6 +2128,11 @@ impl Tenant { pub fn get_tenant_id(&self) -> TenantId { self.tenant_id } + + pub(crate) fn get_shard(&self) -> ShardIdentity { + self.tenant_conf.read().unwrap().shard.clone() + } + pub fn tenant_specific_overrides(&self) -> TenantConfOpt { self.tenant_conf.read().unwrap().tenant_conf }