static TracesData boilerPlate(std::string&& service, std::string&& req, std::vector<Span>&& spans)
{
- spans.at(0).attributes.push_back({"value", {std::move(req)}});
+ spans.at(0).attributes.push_back({"arg", {std::move(req)}});
return TracesData{
.resource_spans = {pdns::trace::ResourceSpans{.resource = {.attributes = {{"service.name", {{std::move(service)}}}}}, .scope_spans = {{.spans = std::move(spans)}}}}};
}
using namespace pdns::trace;
-static void addValue(const RecEventTrace::Entry& event, Span& work)
+static void addValue(const RecEventTrace::Entry& event, Span& work, bool start)
{
if (std::holds_alternative<std::nullopt_t>(event.d_value)) {
return;
}
+ const string key = start ? "arg" : "result";
if (std::holds_alternative<bool>(event.d_value)) {
- work.attributes.emplace_back(KeyValue{"value", {std::get<bool>(event.d_value)}});
+ work.attributes.emplace_back(KeyValue{key, {std::get<bool>(event.d_value)}});
}
else if (std::holds_alternative<int64_t>(event.d_value)) {
- work.attributes.emplace_back(KeyValue{"value", {std::get<int64_t>(event.d_value)}});
+ work.attributes.emplace_back(KeyValue{key, {std::get<int64_t>(event.d_value)}});
}
else if (std::holds_alternative<std::string>(event.d_value)) {
- work.attributes.emplace_back(KeyValue{"value", {std::get<std::string>(event.d_value)}});
+ work.attributes.emplace_back(KeyValue{key, {std::get<std::string>(event.d_value)}});
}
else {
- work.attributes.emplace_back(KeyValue{"value", {RecEventTrace::toString(event.d_value)}});
+ work.attributes.emplace_back(KeyValue{key, {RecEventTrace::toString(event.d_value)}});
}
}
}
// Assign a span id.
random(work.span_id);
- addValue(event, work);
+ addValue(event, work, true);
spanIDs.emplace_back(work.span_id);
ret.emplace_back(work);
ids[index] = ret.size() - 1;
// It's a close event
if (ids.find(event.d_matching) != ids.end()) {
auto& work = ret.at(ids.at(event.d_matching));
- addValue(event, work);
+ addValue(event, work, false);
work.end_time_unix_nano = static_cast<uint64_t>(event.d_ts + diff);
spanIDs.emplace_back(work.span_id);
}