osd_plb.add_u64_counter(l_osd_object_ctx_cache_total, "object_ctx_cache_total", "Object context cache lookups");
osd_plb.add_u64_counter(l_osd_op_cache_hit, "op_cache_hit");
+ osd_plb.add_time_avg(l_osd_tier_flush_lat, "osd_tier_flush_lat", "Object flush latency");
+ osd_plb.add_time_avg(l_osd_tier_promote_lat, "osd_tier_promote_lat", "Object promote latency");
+ osd_plb.add_time_avg(l_osd_tier_r_lat, "osd_tier_r_lat", "Object proxy read latency");
logger = osd_plb.create_perf_counters();
cct->get_perfcounters_collection()->add(logger);
epoch_t last_peering_reset;
ceph_tid_t tid;
ReplicatedPG::ProxyReadOpRef prdop;
+ utime_t start;
C_ProxyRead(ReplicatedPG *p, hobject_t o, epoch_t lpr,
const ReplicatedPG::ProxyReadOpRef& prd)
: pg(p), oid(o), last_peering_reset(lpr),
- tid(0), prdop(prd)
+ tid(0), prdop(prd), start(ceph_clock_now(NULL))
{}
void finish(int r) {
if (prdop->canceled)
}
if (last_peering_reset == pg->get_last_peering_reset()) {
pg->finish_proxy_read(oid, tid, r);
+ pg->osd->logger->tinc(l_osd_tier_r_lat, ceph_clock_now(NULL) - start);
}
pg->unlock();
}
class PromoteCallback: public ReplicatedPG::CopyCallback {
ObjectContextRef obc;
ReplicatedPG *pg;
+ utime_t start;
public:
PromoteCallback(ObjectContextRef obc_, ReplicatedPG *pg_)
: obc(obc_),
- pg(pg_) {}
+ pg(pg_),
+ start(ceph_clock_now(NULL)) {}
virtual void finish(ReplicatedPG::CopyCallbackResults results) {
ReplicatedPG::CopyResults *results_data = results.get<1>();
int r = results.get<0>();
pg->finish_promote(r, results_data, obc);
+ pg->osd->logger->tinc(l_osd_tier_promote_lat, ceph_clock_now(NULL) - start);
}
};
hobject_t oid;
epoch_t last_peering_reset;
ceph_tid_t tid;
+ utime_t start;
C_Flush(ReplicatedPG *p, hobject_t o, epoch_t lpr)
: pg(p), oid(o), last_peering_reset(lpr),
- tid(0)
+ tid(0), start(ceph_clock_now(NULL))
{}
void finish(int r) {
if (r == -ECANCELED)
pg->lock();
if (last_peering_reset == pg->get_last_peering_reset()) {
pg->finish_flush(oid, tid, r);
+ pg->osd->logger->tinc(l_osd_tier_flush_lat, ceph_clock_now(NULL) - start);
}
pg->unlock();
}