92 Family(
const std::string& name,
const std::string& help,
93 const Labels& constant_labels);
112 template <
typename... Args>
113 T&
Add(
const Labels& labels, Args&&... args) {
114 return Add(labels, detail::make_unique<T>(args...));
121 void Remove(T* metric);
126 bool Has(
const Labels& labels)
const;
131 const std::string& GetName()
const;
136 const Labels& GetConstantLabels()
const;
143 std::vector<MetricFamily> Collect()
const override;
146 std::unordered_map<Labels, std::unique_ptr<T>, detail::LabelHasher> metrics_;
148 const std::string name_;
149 const std::string help_;
150 const Labels constant_labels_;
151 mutable std::mutex mutex_;
153 ClientMetric CollectMetric(
const Labels& labels, T* metric)
const;
154 T& Add(
const Labels& labels, std::unique_ptr<T>
object);