@@ -409,7 +409,11 @@ public final class PrometheusCollectorRegistry: Sendable {
409409 let labelsKey = LabelsKey ( counter. labels)
410410 guard dimensions [ labelsKey] === counter else { return }
411411 dimensions. removeValue ( forKey: labelsKey)
412- store [ counter. name] = . counterWithLabels( labelNames, dimensions)
412+ if dimensions. isEmpty {
413+ store. removeValue ( forKey: counter. name)
414+ } else {
415+ store [ counter. name] = . counterWithLabels( labelNames, dimensions)
416+ }
413417 default :
414418 return
415419 }
@@ -431,7 +435,11 @@ public final class PrometheusCollectorRegistry: Sendable {
431435 let dimensionsKey = LabelsKey ( gauge. labels)
432436 guard dimensions [ dimensionsKey] === gauge else { return }
433437 dimensions. removeValue ( forKey: dimensionsKey)
434- store [ gauge. name] = . gaugeWithLabels( labelNames, dimensions)
438+ if dimensions. isEmpty {
439+ store. removeValue ( forKey: gauge. name)
440+ } else {
441+ store [ gauge. name] = . gaugeWithLabels( labelNames, dimensions)
442+ }
435443 default :
436444 return
437445 }
@@ -453,7 +461,11 @@ public final class PrometheusCollectorRegistry: Sendable {
453461 let dimensionsKey = LabelsKey ( histogram. labels)
454462 guard dimensions [ dimensionsKey] === histogram else { return }
455463 dimensions. removeValue ( forKey: dimensionsKey)
456- store [ histogram. name] = . durationHistogramWithLabels( labelNames, dimensions, buckets)
464+ if dimensions. isEmpty {
465+ store. removeValue ( forKey: histogram. name)
466+ } else {
467+ store [ histogram. name] = . durationHistogramWithLabels( labelNames, dimensions, buckets)
468+ }
457469 default :
458470 return
459471 }
@@ -475,7 +487,11 @@ public final class PrometheusCollectorRegistry: Sendable {
475487 let dimensionsKey = LabelsKey ( histogram. labels)
476488 guard dimensions [ dimensionsKey] === histogram else { return }
477489 dimensions. removeValue ( forKey: dimensionsKey)
478- store [ histogram. name] = . valueHistogramWithLabels( labelNames, dimensions, buckets)
490+ if dimensions. isEmpty {
491+ store. removeValue ( forKey: histogram. name)
492+ } else {
493+ store [ histogram. name] = . valueHistogramWithLabels( labelNames, dimensions, buckets)
494+ }
479495 default :
480496 return
481497 }
0 commit comments