Merge pull request #2803 from sysown/v2.1.0-2802

Fixes #2802 and #2801: Missing entry added to prometheus map and added array init checks
pull/2828/head
René Cannaò 6 years ago committed by GitHub
commit e2ea108aa6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -11,6 +11,8 @@
using prometheus::Counter;
using prometheus::Gauge;
#define ILLFORMED_PMAP_MSG "Array element remains empty after initialization, map must be ill-formed."
/**
* @brief Initalizes an array of 'prometheus::Counter*' with the data supplied in a map.
*
@ -60,6 +62,13 @@ void init_prometheus_counter_array(
counter_array[tg_metric] =
std::addressof(metric_family->Add(metric_tags));
}
for (const auto& array_elem : counter_array) {
if (array_elem == nullptr) {
proxy_error("init_prometheus_counter_array: " ILLFORMED_PMAP_MSG);
assert(0);
}
}
}
/**
@ -111,6 +120,13 @@ void init_prometheus_gauge_array(
gauge_array[tg_metric] =
std::addressof(metric_family->Add(metric_tags));
}
for (const auto& array_elem : gauge_array) {
if (array_elem == nullptr) {
proxy_error("init_prometheus_gauge_array: " ILLFORMED_PMAP_MSG);
assert(0);
}
}
}
/**
@ -160,6 +176,13 @@ void init_prometheus_dyn_counter_array(
dyn_counter_array[tg_metric] = metric_family;
}
for (const auto& array_elem : dyn_counter_array) {
if (array_elem == nullptr) {
proxy_error("init_prometheus_dyn_counter_array: " ILLFORMED_PMAP_MSG);
assert(0);
}
}
}
/**
@ -209,6 +232,13 @@ void init_prometheus_dyn_gauge_array(
dyn_gauge_array[tg_metric] = metric_family;
}
for (const auto& array_elem : dyn_gauge_array) {
if (array_elem == nullptr) {
proxy_error("init_prometheus_dyn_gauge_array: " ILLFORMED_PMAP_MSG);
assert(0);
}
}
}
/**

@ -1237,8 +1237,14 @@ hg_metrics_map = std::make_tuple(
),
// mysql_error
std::make_tuple (
p_hg_dyn_counter::mysql_error,
p_hg_dyn_counter::proxysql_mysql_error,
"proxysql_mysql_error",
"Tracks the mysql errors generated by proxysql, identifying them by: hostgroup + hostname + port + error_code.",
metric_tags {}
),
std::make_tuple (
p_hg_dyn_counter::mysql_error,
"mysql_error",
"Tracks the mysql errors encountered, identifying them by: hostgroup + hostname + port + error_code.",
metric_tags {}
)

Loading…
Cancel
Save