Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
qicosmos committed Aug 9, 2024
1 parent 2a54663 commit fb85012
Showing 1 changed file with 14 additions and 21 deletions.
35 changes: 14 additions & 21 deletions include/ylt/metric/metric_manager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,37 +104,32 @@ class manager_helper {
}

std::vector<std::shared_ptr<metric_t>> filtered_metrics;
std::vector<size_t> indexs;
size_t index = 0;
for (auto& m : metrics) {
if (options.name_regex &&
!options.label_regex) { // only check metric name
if (std::regex_match(std::string(m->name()), *options.name_regex)) {
if (options.is_white) {
filtered_metrics.push_back(m);
}
else {
indexs.push_back(index);
}
filtered_metrics.push_back(m);
}
}
else if (options.label_regex &&
!options.name_regex) { // only check label name
filter_by_label_name(filtered_metrics, m, options, indexs, index);
filter_by_label_name(filtered_metrics, m, options);
}
else {
if (std::regex_match(
std::string(m->name()),
*options.name_regex)) { // check label name and label value
filter_by_label_name(filtered_metrics, m, options, indexs, index);
filter_by_label_name(filtered_metrics, m, options);
}
}
index++;
}

if (!options.is_white) {
for (size_t i : indexs) {
metrics.erase(std::next(metrics.begin(), i));
auto it = metrics.begin();
for (auto& m : filtered_metrics) {
std::erase_if(metrics, [&](auto t) {
return t == m;
});
}
return metrics;
}
Expand All @@ -144,17 +139,11 @@ class manager_helper {

static void filter_by_label_name(
std::vector<std::shared_ptr<metric_t>>& filtered_metrics,
std::shared_ptr<metric_t> m, const metric_filter_options& options,
std::vector<size_t>& indexs, size_t index) {
std::shared_ptr<metric_t> m, const metric_filter_options& options) {
const auto& labels_name = m->labels_name();
for (auto& label_name : labels_name) {
if (std::regex_match(label_name, *options.label_regex)) {
if (options.is_white) {
filtered_metrics.push_back(m);
}
else {
indexs.push_back(index);
}
filtered_metrics.push_back(m);
}
}
}
Expand Down Expand Up @@ -530,6 +519,10 @@ struct metric_collector_t {
}
#endif

static std::string serialize(std::vector<std::shared_ptr<metric_t>> metrics) {
return manager_helper::serialize(metrics);
}

static std::vector<std::shared_ptr<metric_t>> get_all_metrics() {
std::vector<std::shared_ptr<metric_t>> vec;
(append_vector<Args>(vec), ...);
Expand Down

0 comments on commit fb85012

Please sign in to comment.