3#include <unordered_map>
19 void inc_counter(
const std::string& name,
const std::string& labels =
"",
double value = 1.0);
20 void set_gauge(
const std::string& name,
const std::string& labels,
double value);
21 void inc_gauge(
const std::string& name,
const std::string& labels =
"",
double value = 1.0);
22 void dec_gauge(
const std::string& name,
const std::string& labels =
"",
double value = 1.0);
23 void observe_histogram(
const std::string& name,
const std::string& labels,
double value);
26 std::string
expose()
const;
37 std::vector<uint64_t> buckets;
40 mutable std::mutex mutex_;
43 std::unordered_map<std::string, std::unordered_map<std::string, Metric>> counters_;
44 std::unordered_map<std::string, std::unordered_map<std::string, Metric>> gauges_;
45 std::unordered_map<std::string, std::unordered_map<std::string, Metric>> histograms_;
48 std::unordered_map<std::string, std::string> help_text_;
49 std::unordered_map<std::string, std::string> type_text_;
55 : name_(name), labels_(labels), start_(
std::chrono::high_resolution_clock::now()) {}
58 auto end = std::chrono::high_resolution_clock::now();
59 std::chrono::duration<double> duration = end - start_;
66 std::chrono::time_point<std::chrono::high_resolution_clock> start_;
Definition PrometheusRegistry.hpp:52
~MetricsTimer()
Definition PrometheusRegistry.hpp:57
MetricsTimer(const std::string &name, const std::string &labels)
Definition PrometheusRegistry.hpp:54
Definition PrometheusRegistry.hpp:11
static PrometheusRegistry & get_instance()
Definition PrometheusRegistry.hpp:13
void dec_gauge(const std::string &name, const std::string &labels="", double value=1.0)
Definition PrometheusRegistry.cpp:30
void inc_counter(const std::string &name, const std::string &labels="", double value=1.0)
Definition PrometheusRegistry.cpp:6
std::string expose() const
Definition PrometheusRegistry.cpp:45
void inc_gauge(const std::string &name, const std::string &labels="", double value=1.0)
Definition PrometheusRegistry.cpp:22
void set_gauge(const std::string &name, const std::string &labels, double value)
Definition PrometheusRegistry.cpp:14
void observe_histogram(const std::string &name, const std::string &labels, double value)
Definition PrometheusRegistry.cpp:35
Definition CaseInsensitive.hpp:7