22#include <glog/logging.h>
35std::map<MetricName, std::pair<TableName, std::string>>
metric_names = {
50 prometheus::detail::make_unique<prometheus::Exposer>(server_address);
52 registry_ = std::make_shared<prometheus::Registry>();
53 exposer_->RegisterCollectable(registry_);
60 exposer_->RemoveCollectable(registry_);
71 metric_pair.second.second);
76 gbuilder* gauge = &prometheus::BuildGauge()
78 .Help(name +
" metrics")
79 .Register(*registry_);
84 const std::string& metric_name) {
85 if (gauge_.find(table_name) == gauge_.end()) {
88 gmetric* metric = &gauge_[table_name]->Add({{
"metrics", metric_name}});
89 metric_[metric_name] = metric;
94 if (metric_.find(metric_name_str) == metric_.end()) {
97 metric_[metric_name_str]->Set(value);
101 std::string metric_name_str =
metric_names[name].second;
102 if (metric_.find(metric_name_str) == metric_.end()) {
105 metric_[metric_name_str]->Increment(value);
void Inc(MetricName name, double value)
PrometheusHandler(const std::string &server_address)
void RegisterMetric(const std::string &table_name, const std::string &metric_name)
void Set(MetricName name, double value)
void RegisterTable(const std::string &name)
std::map< MetricName, std::pair< TableName, std::string > > metric_names
std::map< TableName, std::string > table_names