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>
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