Skip to content

Remove nameless collectors from the registry on unregister - #1191

Merged
csmarchbanks merged 1 commit into
prometheus:masterfrom
sean-kim05:fix/unregister-nameless-collector
Jul 24, 2026
Merged

Remove nameless collectors from the registry on unregister#1191
csmarchbanks merged 1 commit into
prometheus:masterfrom
sean-kim05:fix/unregister-nameless-collector

Conversation

@sean-kim05

Copy link
Copy Markdown
Contributor

When a collector is registered under support_collectors_without_names
with no metric names, register() appends it to _collectors_without_names
in addition to the usual bookkeeping. unregister() only cleaned up
_collector_to_names and _names_to_collectors, so the collector stayed in
_collectors_without_names and kept being collected.

A normal collect() no longer returned the collector's metrics, but
RestrictedRegistry.collect() -- which seeds its collector set from
_collectors_without_names -- still did, so an unregistered collector's
samples reappeared under restricted_registry(). unregister() now also
drops the collector from that list.

Add test_unregister_removes_no_names_collector, asserting a nameless
collector is no longer collected by a restricted registry after it has
been unregistered.

@csmarchbanks

When a collector is registered under support_collectors_without_names
with no metric names, register() appends it to _collectors_without_names
in addition to the usual bookkeeping. unregister() only cleaned up
_collector_to_names and _names_to_collectors, so the collector stayed in
_collectors_without_names and kept being collected.

A normal collect() no longer returned the collector's metrics, but
RestrictedRegistry.collect() -- which seeds its collector set from
_collectors_without_names -- still did, so an unregistered collector's
samples reappeared under restricted_registry(). unregister() now also
drops the collector from that list.

Add test_unregister_removes_no_names_collector, asserting a nameless
collector is no longer collected by a restricted registry after it has
been unregistered.

Signed-off-by: Sean Kim <skim8705@gmail.com>
@csmarchbanks
csmarchbanks merged commit 6e22fb5 into prometheus:master Jul 24, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants