maybe_kick_recovery(soid);
waiting_for_unreadable_object[soid].push_back(op);
op->mark_delayed("waiting for missing object");
+ osd->logger->inc(l_osd_op_delayed_unreadable);
}
bool PrimaryLogPG::is_degraded_or_backfilling_object(const hobject_t& soid)
maybe_kick_recovery(soid);
waiting_for_degraded_object[soid].push_back(op);
op->mark_delayed("waiting for degraded object");
+ osd->logger->inc(l_osd_op_delayed_degraded);
}
void PrimaryLogPG::block_write_on_full_cache(
l_osd_op_prepare_lat, "op_prepare_latency",
"Latency of client operations (excluding queue time and wait for finished)");
+ osd_plb.add_u64_counter(
+ l_osd_op_delayed_unreadable, "op_delayed_unreadable",
+ "Count of ops delayed due to target object being unreadable");
+ osd_plb.add_u64_counter(
+ l_osd_op_delayed_degraded, "op_delayed_degraded",
+ "Count of ops delayed due to target object being degraded");
+
osd_plb.add_u64_counter(
l_osd_op_r, "op_r", "Client read operations");
osd_plb.add_u64_counter(
l_osd_op_rw_process_lat,
l_osd_op_rw_prepare_lat,
+ l_osd_op_delayed_unreadable,
+ l_osd_op_delayed_degraded,
+
l_osd_op_before_queue_op_lat,
l_osd_op_before_dequeue_op_lat,