diff options
author | Greg Farnum <greg@inktank.com> | 2013-03-26 15:15:00 -0700 |
---|---|---|
committer | Greg Farnum <greg@inktank.com> | 2013-09-19 18:15:00 -0700 |
commit | d99b61ac14abf2ed72c44ba9805df825d319390f (patch) | |
tree | 06c7031ee7ff04b7ee51bd7d30a97c276e99fbfe /src | |
parent | 9e0b5eae57d8bfb3b59e1673dc631a113993f0a2 (diff) | |
download | ceph-wip-optracker.tar.gz |
OpTracker: give TrackedOp a default dump() functionwip-optracker
Signed-off-by: Greg Farnum <greg@inktank.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/common/TrackedOp.cc | 32 | ||||
-rw-r--r-- | src/common/TrackedOp.h | 2 |
2 files changed, 33 insertions, 1 deletions
diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc index 4ed9f20d1fc..019a31ce407 100644 --- a/src/common/TrackedOp.cc +++ b/src/common/TrackedOp.cc @@ -247,3 +247,35 @@ void TrackedOp::mark_event(const string &event) } tracker->mark_event(this, event); } + +void TrackedOp::dump(utime_t now, Formatter *f) const +{ + Message *m = request; + stringstream name; + m->print(name); + f->dump_string("description", name.str().c_str()); // this OpRequest + f->dump_stream("received_at") << get_arrived(); + f->dump_float("age", now - get_arrived()); + f->dump_float("duration", get_duration()); + f->dump_string("current_state", state_string()); + if (m->get_orig_source().is_client()) { + f->open_object_section("client_info"); + stringstream client_name; + client_name << m->get_orig_source(); + f->dump_string("client", client_name.str()); + f->dump_int("tid", m->get_tid()); + f->close_section(); // client_info + } + { + f->open_array_section("events"); + for (list<pair<utime_t, string> >::const_iterator i = events.begin(); + i != events.end(); + ++i) { + f->open_object_section("event"); + f->dump_stream("time") << i->first; + f->dump_string("event", i->second); + f->close_section(); + } + f->close_section(); + } +} diff --git a/src/common/TrackedOp.h b/src/common/TrackedOp.h index 9007a4d5bd2..3344301c7c8 100644 --- a/src/common/TrackedOp.h +++ b/src/common/TrackedOp.h @@ -155,7 +155,7 @@ public: virtual const char *state_string() const { return events.rbegin()->second.c_str(); } - virtual void dump(utime_t now, Formatter *f) const = 0; + virtual void dump(utime_t now, Formatter *f) const; }; #endif |