From 78255edb9682cde6c8189c10233b69c506c7c3ff Mon Sep 17 00:00:00 2001 From: kwasniew Date: Wed, 24 Sep 2025 16:56:04 +0200 Subject: [PATCH] feat: using histogram metrics --- src/lib/features/metrics/impact/batch-histogram.ts | 1 + src/lib/features/metrics/impact/metrics-translator.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/lib/features/metrics/impact/batch-histogram.ts b/src/lib/features/metrics/impact/batch-histogram.ts index 8f43bca710..afabcbef10 100644 --- a/src/lib/features/metrics/impact/batch-histogram.ts +++ b/src/lib/features/metrics/impact/batch-histogram.ts @@ -75,6 +75,7 @@ export class BatchHistogram { reset(): void { this.store.clear(); + this.bucketBoundaries.clear(); } get() { diff --git a/src/lib/features/metrics/impact/metrics-translator.ts b/src/lib/features/metrics/impact/metrics-translator.ts index 1bb26e8d3c..7de06b440a 100644 --- a/src/lib/features/metrics/impact/metrics-translator.ts +++ b/src/lib/features/metrics/impact/metrics-translator.ts @@ -59,6 +59,10 @@ export class MetricsTranslator { ): boolean { const existingBoundaries = existingHistogram.bucketBoundaries; + if (existingBoundaries.size !== newBuckets.length) { + return true; + } + for (const bucket of newBuckets) { if (!existingBoundaries.has(bucket.le)) { return true; @@ -184,6 +188,7 @@ export class MetricsTranslator { if (existingMetric && existingMetric instanceof BatchHistogram) { const firstSample = metric.samples[0]; // all samples should have same buckets const needsRecreation = + !firstSample?.buckets || this.hasNewLabels(existingMetric, labelNames) || this.hasNewBuckets(existingMetric, firstSample.buckets);