}
void add_to_reports(
- const std::map<OSDPerfMetricQuery, OSDPerfMetricLimits> & limits,
+ const std::map<OSDPerfMetricQuery, OSDPerfMetricLimits> &limits,
std::map<OSDPerfMetricQuery, OSDPerfMetricReport> *reports) {
for (auto &it : data) {
auto &query = it.first;
+ auto limit_it = limits.find(query);
+ if (limit_it == limits.end()) {
+ continue;
+ }
+ auto &query_limits = limit_it->second;
auto &counters = it.second;
auto &report = (*reports)[query];
auto &descriptors = report.performance_counter_descriptors;
ceph_assert(descriptors.size() > 0);
- if (!is_limited(limits.at(query), counters.size())) {
+ if (!is_limited(query_limits, counters.size())) {
for (auto &it_counters : counters) {
auto &bl = report.group_packed_performance_counters[it_counters.first];
query.pack_counters(it_counters.second, &bl);
continue;
}
- for (auto &limit : limits.at(query)) {
+ for (auto &limit : query_limits) {
size_t index = 0;
for (; index < descriptors.size(); index++) {
if (descriptors[index] == limit.order_by) {