From 730710ceb8d75cbec793e5ff813bf73164901516 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Mon, 2 Mar 2026 18:24:32 +1100 Subject: [PATCH 1/2] bug fixes 1. update metrics call for listing queries 2. fix delete on retention --- src/catalog/mod.rs | 7 +++++-- src/storage/metrics_layer.rs | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/catalog/mod.rs b/src/catalog/mod.rs index 48c4ff9ea..11ea747c5 100644 --- a/src/catalog/mod.rs +++ b/src/catalog/mod.rs @@ -537,7 +537,9 @@ pub async fn remove_manifest_from_snapshot( let stream_name_clone = stream_name.to_string(); let dates_clone = dates.clone(); - for_each_live_node(tenant_id, move |ingestor| { + // only ingestors' snapshots contain the manifest paths, so we need to send the retention cleanup request to all ingestors + // querier does not have /retention/cleanup endpoint, but it does not need to receive the request since it does not have the manifest paths in its snapshot + let _ = for_each_live_node(tenant_id, move |ingestor| { let stream_name = stream_name_clone.clone(); let dates = dates_clone.clone(); async move { @@ -552,7 +554,8 @@ pub async fn remove_manifest_from_snapshot( Ok::<(), ObjectStorageError>(()) } }) - .await?; + .await + .map_err(|e| tracing::error!("{e}")); } Ok(()) diff --git a/src/storage/metrics_layer.rs b/src/storage/metrics_layer.rs index cb356fd6c..45aabcc5f 100644 --- a/src/storage/metrics_layer.rs +++ b/src/storage/metrics_layer.rs @@ -293,7 +293,9 @@ impl ObjectStore for MetricLayer { let inner = self.inner.list(prefix); let res = StreamMetricWrapper { time, - labels: ["LIST", "200"], + provider: self.provider.clone(), + method: "LIST", + status: "200", inner, }; Box::pin(res) @@ -308,7 +310,9 @@ impl ObjectStore for MetricLayer { let inner = self.inner.list_with_offset(prefix, offset); let res = StreamMetricWrapper { time, - labels: ["LIST_OFFSET", "200"], + provider: self.provider.clone(), + method: "LIST_OFFSET", + status: "200", inner, }; @@ -396,13 +400,15 @@ impl ObjectStore for MetricLayer { } } -struct StreamMetricWrapper<'a, const N: usize, T> { +struct StreamMetricWrapper<'a, T> { time: time::Instant, - labels: [&'static str; N], + provider: String, + method: &'static str, + status: &'static str, inner: BoxStream<'a, T>, } -impl Stream for StreamMetricWrapper<'_, N, T> { +impl Stream for StreamMetricWrapper<'_, T> { type Item = T; fn poll_next( @@ -412,7 +418,7 @@ impl Stream for StreamMetricWrapper<'_, N, T> { match self.inner.poll_next_unpin(cx) { t @ Poll::Ready(None) => { STORAGE_REQUEST_RESPONSE_TIME - .with_label_values(&self.labels) + .with_label_values(&[&self.provider, self.method, self.status]) .observe(self.time.elapsed().as_secs_f64()); t } From f3965a72a7b95839086bd98fefcb72a3263ac07a Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Mon, 2 Mar 2026 19:51:14 +1100 Subject: [PATCH 2/2] update sha for ui --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index a4baac03f..dfe6a9ea5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -184,7 +184,7 @@ temp-dir = "0.1.14" [package.metadata.parseable_ui] assets-url = "https://parseable-prism-build.s3.us-east-2.amazonaws.com/v2.5.14/build.zip" -assets-sha1 = "de42d79d38c4a7327d20be542950344800d426a8" +assets-sha1 = "7b3d1a6bea288585183cbc8233af4da91d768853" [features] debug = []