struct Event
{
Edge edge;
+ std::string backend;
std::string label;
};
struct Event
{
std::string name;
+ std::string tid;
std::string ph; /* REQUIRED */
std::string ts; /* REQUIRED */
};
public:
DurationEventBuilder(const std::string &ts) : _ts{ts} {}
- DurationEvent build(const std::string &name, const std::string &ph) const
+ DurationEvent build(const std::string &tid, const std::string &name, const std::string &ph) const
{
DurationEvent evt;
evt.name = name;
+ evt.tid = tid;
evt.ph = ph;
evt.ts = _ts;
switch (event.edge)
{
case Edge::BEGIN:
- _rec->emit(DurationEventBuilder(ts).build(event.label, "B"));
+ _rec->emit(DurationEventBuilder(ts).build(event.backend, event.label, "B"));
break;
case Edge::END:
- _rec->emit(DurationEventBuilder(ts).build(event.label, "E"));
+ _rec->emit(DurationEventBuilder(ts).build(event.backend, event.label, "E"));
break;
}
{
content.flds.emplace_back("name", evt.name);
content.flds.emplace_back("pid", "0");
- content.flds.emplace_back("tid", "0");
+ content.flds.emplace_back("tid", evt.tid);
content.flds.emplace_back("ph", evt.ph);
content.flds.emplace_back("ts", evt.ts);
}
}
void ChromeTracingObserver::handleBegin(IExecutor *, const model::Subgraph *subgraph,
- const backend::Backend *)
+ const backend::Backend *backend)
{
- _collector.onEvent(EventCollector::Event{EventCollector::Edge::BEGIN, subgraphTag(subgraph)});
+ std::string backend_id = backend->config()->id();
+ _collector.onEvent(
+ EventCollector::Event{EventCollector::Edge::BEGIN, backend_id, subgraphTag(subgraph)});
}
void ChromeTracingObserver::handleEnd(IExecutor *, const model::Subgraph *subgraph,
- const backend::Backend *)
+ const backend::Backend *backend)
{
- _collector.onEvent(EventCollector::Event{EventCollector::Edge::END, subgraphTag(subgraph)});
+ std::string backend_id = backend->config()->id();
+ _collector.onEvent(
+ EventCollector::Event{EventCollector::Edge::END, backend_id, subgraphTag(subgraph)});
}
void ChromeTracingObserver::handleEnd(IExecutor *)