diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 05972cf..e0ff8c0 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -48,7 +48,7 @@
       - name: 'Install Dependencies'
         run: |
           sudo luarocks install luaunit
-          sudo luarocks install lua-cjson 2.1.0-1
+          sudo luarocks install lua-cjson
       - name: 'Run Tests'
         run: |
           cd lib/skywalking
diff --git a/lib/skywalking/segment.lua b/lib/skywalking/segment.lua
index 3249c24..ea870e4 100644
--- a/lib/skywalking/segment.lua
+++ b/lib/skywalking/segment.lua
@@ -17,8 +17,7 @@
 
 -- Segment represents a finished tracing context
 -- Including all information to send to the SkyWalking OAP server.
-
-local cjson = require("cjson")
+local Util = require('util')
 
 local Segment = {
     trace_id,
@@ -33,6 +32,8 @@
 -- Following SkyWalking official trace protocol v2
 -- https://github.com/apache/skywalking-data-collect-protocol/blob/master/language-agent-v2/trace.proto
 local SegmentProtocol = {
+    globalTraceIds,
+    traceSegmentId,
     serviceId,
     serviceInstanceId,
     spans,
@@ -46,9 +47,32 @@
     return o
 end
 
--- Transform the segment object to the 
+function SegmentProtocol:new()
+    local o = {}
+    setmetatable(o, self)
+    self.__index = self
+
+    o.globalTraceIds = {}
+
+    return o
+end
+
+-- Return SegmentProtocol
 function Segment:transform()
-    return cjson.encode(self)
+    local segmentBuilder = SegmentProtocol:new()
+    segmentBuilder.serviceId = self.service_id
+    segmentBuilder.globalTraceIds[1] = Util:id2String(self.trace_id)
+    segmentBuilder.traceSegmentId = Util:id2String(self.segment_id)
+    segmentBuilder.serviceId = self.service_id
+    segmentBuilder.serviceInstanceId = self.service_inst_id
+
+    segmentBuilder.spans = {}
+    for i, span in ipairs(self.spans)
+    do 
+        segmentBuilder.spans[#segmentBuilder.spans + 1] = span:transform()
+    end
+
+    return segmentBuilder
 end
 
 return Segment
\ No newline at end of file
diff --git a/lib/skywalking/span_test.lua b/lib/skywalking/span_test.lua
index 5ed2ffa..a2265e0 100644
--- a/lib/skywalking/span_test.lua
+++ b/lib/skywalking/span_test.lua
@@ -19,7 +19,6 @@
 local TC = require('tracing_context')
 local Span = require('span')
 local SpanLayer = require("span_layer")
-local cjson = require("cjson")
 
 TestSpan = {}
     function TestSpan:testNewEntry()
@@ -142,10 +141,6 @@
         lu.assertEquals(#spanBuilder.logs, 1)
         lu.assertEquals(spanBuilder.logs[1].data["logkey"], "logvalue")
         lu.assertEquals(spanBuilder.logs[1].data["logkey1"], "logvalue2")
-
-        local inJSON = cjson.encode(spanBuilder)
-        lu.assertTrue(string.len(inJSON) > 0)
-        -- print(inJSON)
     end
 -- end TestSpan
 
diff --git a/lib/skywalking/tracing_context_test.lua b/lib/skywalking/tracing_context_test.lua
index 63b47ad..d0c0dd1 100644
--- a/lib/skywalking/tracing_context_test.lua
+++ b/lib/skywalking/tracing_context_test.lua
@@ -69,6 +69,8 @@
         local isSegmentFinished, segment = context:drainAfterFinished()
         lu.assertEquals(span2, segment.spans[1])
         lu.assertEquals(span1, segment.spans[2])
+
+        local segmentBuilder = segment:transform()
     end
 
     function TestTracingContext:testNewNoOP()
