bugfix: `require` other libraries, missing `skywalking` parent folder. (#44)
* bugfix: `require` other libraries, missing `skywalking` parent folder.
* bugfix: fixed Lua load path.
* test: print more information when failed.
* bugfix: fixed the wrong load Lua path for E2E testing.
* chore: move the "resty" folder out of "skywalking" , they should be same level .
* bugfix: added prefix `skywalking` .
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 75f6969..52cd487 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -68,12 +68,12 @@
git clone https://github.com/iresty/test-nginx.git test-nginx
- name: 'Run Lua Tests'
run: |
- cd lib/skywalking
- lua util_test.lua
- lua span_test.lua
- lua tracing_context_test.lua
- lua segment_ref_test.lua
- lua correlation_context_test.lua
+ cd lib
+ lua skywalking/util_test.lua
+ lua skywalking/span_test.lua
+ lua skywalking/tracing_context_test.lua
+ lua skywalking/segment_ref_test.lua
+ lua skywalking/correlation_context_test.lua
cd ..
- name: 'Run Nginx Lua Tests'
run: |
diff --git a/README.md b/README.md
index 37dc5f6..a0a8977 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
```nginx
http {
- lua_package_path "/Path/to/.../skywalking-nginx-lua/lib/skywalking/?.lua;;";
+ lua_package_path "/Path/to/.../skywalking-nginx-lua/lib/?.lua;;";
# Buffer represents the register inform and the queue of the finished segment
lua_shared_dict tracing_buffer 100m;
@@ -49,9 +49,9 @@
--
-- Currently, we can not have the upstream real network address
------------------------------------------------------
- require("tracer"):start("upstream service")
+ require("skywalking.tracer"):start("upstream service")
-- If you want correlation custom data to the downstream service
- -- require("tracer"):start("upstream service", {custom = "custom_value"})
+ -- require("skywalking.tracer"):start("upstream service", {custom = "custom_value"})
}
-- Target upstream service
@@ -59,12 +59,12 @@
body_filter_by_lua_block {
if ngx.arg[2] then
- require("tracer"):finish()
+ require("skywalking.tracer"):finish()
end
}
log_by_lua_block {
- require("tracer"):prepareForReport()
+ require("skywalking.tracer"):prepareForReport()
}
}
}
diff --git a/examples/nginx.conf b/examples/nginx.conf
index f403f72..7c61b00 100644
--- a/examples/nginx.conf
+++ b/examples/nginx.conf
@@ -25,10 +25,10 @@
worker_connections 1024;
}
http {
- lua_package_path "/Users/wusheng/Documents/GitHub/skywalking-nginx-lua/lib/skywalking/?.lua;;";
- # Buffer represents the register inform and the queue of the finished segment
+ lua_package_path "/Users/wusheng/Documents/GitHub/skywalking-nginx-lua/lib/?.lua;;";
+ # Buffer represents the register inform and the queue of the finished segment
lua_shared_dict tracing_buffer 100m;
-
+
# Init is the timer setter and keeper
# Setup an infinite loop timer to do register and trace report.
init_worker_by_lua_block {
@@ -58,21 +58,21 @@
--
-- Currently, we can not have the upstream real network address
------------------------------------------------------
- require("tracer"):start("upstream service")
+ require("skywalking.tracer"):start("upstream service")
-- If you want correlation custom data to the downstream service
- -- require("tracer"):start("upstream service", {custom = "custom_value"})
+ -- require("skywalking.tracer"):start("upstream service", {custom = "custom_value"})
}
proxy_pass http://127.0.0.1:8080/tier2/lb;
body_filter_by_lua_block {
if ngx.arg[2] then
- require("tracer"):finish()
+ require("skywalking.tracer"):finish()
end
}
log_by_lua_block {
- require("tracer"):prepareForReport()
+ require("skywalking.tracer"):prepareForReport()
}
}
@@ -80,19 +80,19 @@
default_type text/html;
rewrite_by_lua_block {
- require("tracer"):start("backend service")
+ require("skywalking.tracer"):start("backend service")
}
proxy_pass http://127.0.0.1:8080/backend;
body_filter_by_lua_block {
if ngx.arg[2] then
- require("tracer"):finish()
+ require("skywalking.tracer"):finish()
end
}
log_by_lua_block {
- require("tracer"):prepareForReport()
+ require("skywalking.tracer"):prepareForReport()
}
}
diff --git a/lib/skywalking/resty/http.lua b/lib/resty/http.lua
similarity index 100%
rename from lib/skywalking/resty/http.lua
rename to lib/resty/http.lua
diff --git a/lib/skywalking/resty/http_headers.lua b/lib/resty/http_headers.lua
similarity index 100%
rename from lib/skywalking/resty/http_headers.lua
rename to lib/resty/http_headers.lua
diff --git a/lib/skywalking/resty/jit-uuid.lua b/lib/resty/jit-uuid.lua
similarity index 100%
rename from lib/skywalking/resty/jit-uuid.lua
rename to lib/resty/jit-uuid.lua
diff --git a/lib/skywalking/client.lua b/lib/skywalking/client.lua
index b00a59a..dccc9de 100644
--- a/lib/skywalking/client.lua
+++ b/lib/skywalking/client.lua
@@ -31,7 +31,7 @@
local log = ngx.log
local DEBUG = ngx.DEBUG
- local ERR = ngx.ERR
+ local ERR = ngx.ERR
check = function(premature)
if not premature then
@@ -71,7 +71,7 @@
local serviceInstanceName = metadata_buffer:get('serviceInstanceName')
local cjson = require('cjson')
- local reportInstance = require("management").newReportInstanceProperties(serviceName, serviceInstanceName)
+ local reportInstance = require("skywalking.management").newReportInstanceProperties(serviceName, serviceInstanceName)
local reportInstanceParam, err = cjson.encode(reportInstance)
if err then
log(ERR, "Request to report instance fails, ", err)
@@ -108,7 +108,7 @@
local serviceInstanceName = metadata_buffer:get('serviceInstanceName')
local cjson = require('cjson')
- local pingPkg = require("management").newServiceInstancePingPkg(serviceName, serviceInstanceName)
+ local pingPkg = require("skywalking.management").newServiceInstancePingPkg(serviceName, serviceInstanceName)
local pingPkgParam, err = cjson.encode(pingPkg)
if err then
log(ERR, "Agent ping fails, ", err)
diff --git a/lib/skywalking/correlation_context.lua b/lib/skywalking/correlation_context.lua
index fad7bd6..353ad02 100644
--- a/lib/skywalking/correlation_context.lua
+++ b/lib/skywalking/correlation_context.lua
@@ -19,8 +19,8 @@
local ELEMENT_MAX_NUMBER = 3
local VALUE_MAX_LENGTH = 128
-local Util = require('util')
-local Base64 = require('dependencies/base64')
+local Util = require('skywalking.util')
+local Base64 = require('skywalking.dependencies.base64')
local encode_base64 = Base64.encode
local decode_base64 = Base64.decode
@@ -118,4 +118,4 @@
context[key] = value
end
-return _M
\ No newline at end of file
+return _M
diff --git a/lib/skywalking/correlation_context_test.lua b/lib/skywalking/correlation_context_test.lua
index e0dd243..a959f9a 100644
--- a/lib/skywalking/correlation_context_test.lua
+++ b/lib/skywalking/correlation_context_test.lua
@@ -16,8 +16,8 @@
--
local lu = require('luaunit')
-local correlationContext = require('correlation_context')
-local TC = require('tracing_context')
+local correlationContext = require('skywalking.correlation_context')
+local TC = require('skywalking.tracing_context')
TestCorelationContext = {}
function TestCorelationContext:testFromSW8Value()
diff --git a/lib/skywalking/segment.lua b/lib/skywalking/segment.lua
index 5127b52..77ccea6 100644
--- a/lib/skywalking/segment.lua
+++ b/lib/skywalking/segment.lua
@@ -17,7 +17,7 @@
-- Segment represents a finished tracing context
-- Including all information to send to the SkyWalking OAP server.
-local Span = require('span')
+local Span = require('skywalking.span')
local _M = {}
-- local Segment = {
diff --git a/lib/skywalking/segment_ref.lua b/lib/skywalking/segment_ref.lua
index c680da3..61feea6 100644
--- a/lib/skywalking/segment_ref.lua
+++ b/lib/skywalking/segment_ref.lua
@@ -14,8 +14,8 @@
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
-local Util = require('util')
-local Base64 = require('dependencies/base64')
+local Util = require('skywalking.util')
+local Base64 = require('skywalking.dependencies.base64')
local encode_base64 = Base64.encode
local decode_base64 = Base64.decode
diff --git a/lib/skywalking/segment_ref_test.lua b/lib/skywalking/segment_ref_test.lua
index 11266cc..308da5e 100644
--- a/lib/skywalking/segment_ref_test.lua
+++ b/lib/skywalking/segment_ref_test.lua
@@ -17,7 +17,7 @@
local lu = require('luaunit')
-local SegmentRef = require('segment_ref')
+local SegmentRef = require('skywalking.segment_ref')
local cjson = require("cjson")
TestSegmentRef = {}
diff --git a/lib/skywalking/span.lua b/lib/skywalking/span.lua
index 64bb758..3882d6c 100644
--- a/lib/skywalking/span.lua
+++ b/lib/skywalking/span.lua
@@ -15,9 +15,9 @@
-- limitations under the License.
--
-local spanLayer = require("span_layer")
-local Util = require('util')
-local SegmentRef = require("segment_ref")
+local spanLayer = require("skywalking.span_layer")
+local Util = require('skywalking.util')
+local SegmentRef = require("skywalking.segment_ref")
local CONTEXT_CARRIER_KEY = 'sw8'
diff --git a/lib/skywalking/span_test.lua b/lib/skywalking/span_test.lua
index 01863d4..c544441 100644
--- a/lib/skywalking/span_test.lua
+++ b/lib/skywalking/span_test.lua
@@ -16,9 +16,9 @@
--
local lu = require('luaunit')
-local TC = require('tracing_context')
-local Span = require('span')
-local SpanLayer = require("span_layer")
+local TC = require('skywalking.tracing_context')
+local Span = require('skywalking.span')
+local SpanLayer = require("skywalking.span_layer")
TestSpan = {}
function TestSpan:testNewEntry()
diff --git a/lib/skywalking/tracer.lua b/lib/skywalking/tracer.lua
index b71db28..c8de70a 100644
--- a/lib/skywalking/tracer.lua
+++ b/lib/skywalking/tracer.lua
@@ -14,14 +14,14 @@
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
-local Span = require('span')
+local Span = require('skywalking.span')
local Tracer = {}
function Tracer:start(upstream_name, correlation)
local metadata_buffer = ngx.shared.tracing_buffer
- local TC = require('tracing_context')
- local Layer = require('span_layer')
+ local TC = require('skywalking.tracing_context')
+ local Layer = require('skywalking.span_layer')
local tracingContext
local serviceName = metadata_buffer:get("serviceName")
@@ -78,8 +78,8 @@
end
function Tracer:prepareForReport()
- local TC = require('tracing_context')
- local Segment = require('segment')
+ local TC = require('skywalking.tracing_context')
+ local Segment = require('skywalking.segment')
if ngx.ctx.entrySpan ~= nil then
local ngxstatus = ngx.var.status
Span.tag(ngx.ctx.entrySpan, 'http.status', ngxstatus)
diff --git a/lib/skywalking/tracing_context.lua b/lib/skywalking/tracing_context.lua
index c9db5c8..3da161a 100644
--- a/lib/skywalking/tracing_context.lua
+++ b/lib/skywalking/tracing_context.lua
@@ -15,9 +15,9 @@
-- limitations under the License.
--
-local Util = require('util')
-local Span = require('span')
-local CorrelationContext = require('correlation_context')
+local Util = require('skywalking.util')
+local Span = require('skywalking.span')
+local CorrelationContext = require('skywalking.correlation_context')
local CONTEXT_CORRELATION_KEY = 'sw8-correlation'
diff --git a/lib/skywalking/tracing_context_test.lua b/lib/skywalking/tracing_context_test.lua
index 3c22a48..7711258 100644
--- a/lib/skywalking/tracing_context_test.lua
+++ b/lib/skywalking/tracing_context_test.lua
@@ -16,9 +16,9 @@
--
local lu = require('luaunit')
-local TC = require('tracing_context')
-local Segment = require('segment')
-local Span = require('span')
+local TC = require('skywalking.tracing_context')
+local Segment = require('skywalking.segment')
+local Span = require('skywalking.span')
TestTracingContext = {}
function TestTracingContext:testNew()
diff --git a/lib/skywalking/util.lua b/lib/skywalking/util.lua
index b16ecf2..fe0548c 100644
--- a/lib/skywalking/util.lua
+++ b/lib/skywalking/util.lua
@@ -93,7 +93,8 @@
end
else
newID = function()
- return timestamp() .. '.' .. math.random(0, MAX_ID_PART2) .. '.' .. math.random(0, MAX_ID_PART3)
+ return timestamp() .. '.' .. math.random(0, MAX_ID_PART2) .. '.'
+ .. math.random(0, MAX_ID_PART3)
end
end
diff --git a/lib/skywalking/util_test.lua b/lib/skywalking/util_test.lua
index 2089fe9..4201bdc 100644
--- a/lib/skywalking/util_test.lua
+++ b/lib/skywalking/util_test.lua
@@ -16,7 +16,7 @@
--
local lu = require('luaunit')
-local Util = require('util')
+local Util = require('skywalking.util')
TestUtil = {}
function TestUtil.testNewID()
diff --git a/t/segment_ref.t b/t/segment_ref.t
index 34b3eab..307b751 100644
--- a/t/segment_ref.t
+++ b/t/segment_ref.t
@@ -10,7 +10,7 @@
log_level('info');
our $HttpConfig = qq{
- lua_package_path "$pwd/lib/skywalking/?.lua;;";
+ lua_package_path "$pwd/lib/?.lua;;";
error_log logs/error.log debug;
resolver 114.114.114.114 8.8.8.8 ipv6=off;
lua_shared_dict tracing_buffer 100m;
@@ -25,7 +25,7 @@
--- config
location /t {
content_by_lua_block {
- local SegmentRef = require('segment_ref')
+ local SegmentRef = require('skywalking.segment_ref')
local ref = SegmentRef.fromSW8Value('1-My40LjU=-MS4yLjM=-4-c2VydmljZQ==-aW5zdGFuY2U=-L2FwcA==-MTI3LjAuMC4xOjgwODA=')
ngx.say(ref.trace_id)
ngx.say(ref.segment_id)
@@ -56,7 +56,7 @@
--- config
location /t {
content_by_lua_block {
- local SegmentRef = require('segment_ref')
+ local SegmentRef = require('skywalking.segment_ref')
local ref = SegmentRef.new()
ref.trace_id = "3.4.5"
ref.segment_id = "1.2.3"
@@ -82,7 +82,7 @@
--- config
location /t {
content_by_lua_block {
- local SegmentRef = require('segment_ref')
+ local SegmentRef = require('skywalking.segment_ref')
local cjson = require("cjson")
local ref = SegmentRef.new()
diff --git a/t/util.t b/t/util.t
index 13208d4..fe80bf2 100644
--- a/t/util.t
+++ b/t/util.t
@@ -10,7 +10,7 @@
log_level('info');
our $HttpConfig = qq{
- lua_package_path "$pwd/lib/skywalking/?.lua;;";
+ lua_package_path "$pwd/lib/?.lua;;";
error_log logs/error.log debug;
resolver 114.114.114.114 8.8.8.8 ipv6=off;
lua_shared_dict tracing_buffer 100m;
@@ -25,21 +25,21 @@
--- config
location /t {
content_by_lua_block {
- local util = require('util')
+ local util = require('skywalking.util')
local timestamp = util.timestamp()
local regex = [[^\d+$]]
local m = ngx.re.match(timestamp, regex)
if m and tonumber(m[0]) == timestamp then
- ngx.say(true)
+ ngx.say("done")
else
- ngx.say(false)
+ ngx.say("failed to generate timestamp: ", timestamp)
end
}
}
--- request
GET /t
--- response_body
-true
+done
--- no_error_log
[error]
@@ -50,18 +50,27 @@
--- config
location /t {
content_by_lua_block {
- local util = require('util')
+ local util = require('skywalking.util')
local id = util.newID()
local regex = [[^[0-9a-f]+\-[0-9a-f]+\-[0-9a-f]+\-[0-9a-f]+\-[0-9a-f]+$]]
local m = ngx.re.match(id, regex)
if m then
- ngx.say(true)
+ ngx.say("done")
+ return
+ end
+
+ regex = [[^\d+.\d+.\d+$]]
+ m = ngx.re.match(id, regex)
+ if m then
+ ngx.say("done")
+ else
+ ngx.say("failed to generate id: ", id)
end
}
}
--- request
GET /t
--- response_body
-true
+done
--- no_error_log
[error]
diff --git a/test/e2e/e2e-with-mock-collector/docker/conf.d/nginx.conf b/test/e2e/e2e-with-mock-collector/docker/conf.d/nginx.conf
index 16b4427..d7ef21f 100644
--- a/test/e2e/e2e-with-mock-collector/docker/conf.d/nginx.conf
+++ b/test/e2e/e2e-with-mock-collector/docker/conf.d/nginx.conf
@@ -25,7 +25,7 @@
worker_connections 1024;
}
http {
- lua_package_path "/usr/local/skywalking-nginx-lua/lib/skywalking/?.lua;;";
+ lua_package_path "/usr/local/skywalking-nginx-lua/lib/?.lua;;";
# Buffer represents the register inform and the queue of the finished segment
lua_shared_dict tracing_buffer 100m;
@@ -38,7 +38,7 @@
-- Instance means the number of Nginx deployment, does not mean the worker instances
metadata_buffer:set('serviceInstanceName', 'e2e-test-with-mock-collector-instanceA')
- require("client"):startBackendTimer("http://${collector}:12800")
+ require("skywalking.client"):startBackendTimer("http://${collector}:12800")
}
server {
@@ -48,17 +48,17 @@
default_type text/html;
rewrite_by_lua_block {
- require("tracer"):start("e2e-test-with-mock-collector:upstream_ip:port")
+ require("skywalking.tracer"):start("e2e-test-with-mock-collector:upstream_ip:port")
}
proxy_pass http://127.0.0.1:8080/tier2/lb;
body_filter_by_lua_block {
- require("tracer"):finish()
+ require("skywalking.tracer"):finish()
}
log_by_lua_block {
- require("tracer"):prepareForReport()
+ require("skywalking.tracer"):prepareForReport()
}
}
@@ -66,17 +66,17 @@
default_type text/html;
rewrite_by_lua_block {
- require("tracer"):start("e2e-test-with-mock-collector:upstream_ip2:port2")
+ require("skywalking.tracer"):start("e2e-test-with-mock-collector:upstream_ip2:port2")
}
proxy_pass http://127.0.0.1:8080/backend;
body_filter_by_lua_block {
- require("tracer"):finish()
+ require("skywalking.tracer"):finish()
}
log_by_lua_block {
- require("tracer"):prepareForReport()
+ require("skywalking.tracer"):prepareForReport()
}
}