diff --git a/src/core/metrics.cc b/src/core/metrics.cc index c70c214ed27..fad19cc6749 100644 --- a/src/core/metrics.cc +++ b/src/core/metrics.cc @@ -436,9 +436,6 @@ void impl::add_registration(const metric_id& id, const metric_type& type, metric throw std::runtime_error("registering metrics " + name + " registered with different type."); } metric[rm->info().id.labels()] = rm; - for (auto&& i : rm->info().id.labels()) { - _labels.insert(i.first); - } } else { _value_map[name].info().type = type.base_type; _value_map[name].info().d = d; @@ -447,6 +444,9 @@ void impl::add_registration(const metric_id& id, const metric_type& type, metric _value_map[name].info().aggregate_labels = aggregate_labels; _value_map[name][rm->info().id.labels()] = rm; } + for (auto&& i : rm->info().id.labels()) { + _labels.insert(i.first); + } dirty(); } @@ -488,7 +488,9 @@ future impl::set_relabel_configs(const std::vectorinfo().id.labels()["err"] = id; } - + for (auto&& i : rm->info().id.labels()) { + _labels.insert(i.first); + } family.second[lb] = rm; } }