Remove tags/logs in report JSON, if there is no tag or log
diff --git a/lib/skywalking/segment.lua b/lib/skywalking/segment.lua
index 02b6cfc..346842d 100644
--- a/lib/skywalking/segment.lua
+++ b/lib/skywalking/segment.lua
@@ -67,9 +67,12 @@
segmentBuilder.serviceInstanceId = self.service_inst_id
segmentBuilder.spans = {}
- for i, span in ipairs(self.spans)
- do
- segmentBuilder.spans[#segmentBuilder.spans + 1] = span:transform()
+
+ if self.spans ~= nil and #self.spans > 0 then
+ for i, span in ipairs(self.spans)
+ do
+ segmentBuilder.spans[#segmentBuilder.spans + 1] = span:transform()
+ end
end
return segmentBuilder
diff --git a/lib/skywalking/span.lua b/lib/skywalking/span.lua
index 6f8f3e1..6c5d06a 100644
--- a/lib/skywalking/span.lua
+++ b/lib/skywalking/span.lua
@@ -171,8 +171,6 @@
-- o.start_time = Util.timestamp()
o.refs = {}
o.owner = context
- o.tags = {}
- o.logs = {}
return o
end
@@ -265,6 +263,10 @@
return self
end
+ if self.tags == nil then
+ self.tags = {}
+ end
+
local tag = {key = tagKey, value = tagValue}
self.tags[#self.tags + 1] = tag
@@ -277,6 +279,10 @@
return self
end
+ if self.logs == nil then
+ self.logs = {}
+ end
+
local logEntity = {time = timestamp, data = keyValuePairs}
self.logs[#self.logs + 1] = logEntity
diff --git a/lib/skywalking/tracing_context.lua b/lib/skywalking/tracing_context.lua
index 78976b7..47fcfe6 100644
--- a/lib/skywalking/tracing_context.lua
+++ b/lib/skywalking/tracing_context.lua
@@ -110,6 +110,8 @@
if self.internal.active_count ~= 0 then
return false, nil
+ elseif #self.internal.finished_spans == 0 then
+ return false, nil
else
local segment = Segment:new()
segment.trace_id = self.trace_id