You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2020/10/29 06:14:05 UTC
[GitHub] [apisix] membphis commented on a change in pull request #2389: feat: upgrade skywalking plugin to support skywalking 8.0 .
membphis commented on a change in pull request #2389:
URL: https://github.com/apache/apisix/pull/2389#discussion_r514005987
##########
File path: apisix/plugins/skywalking.lua
##########
@@ -55,26 +76,74 @@ end
function _M.rewrite(conf, ctx)
core.log.debug("rewrite phase of skywalking plugin")
ctx.skywalking_sample = false
- if conf.sample_ratio == 1 or math.random() < conf.sample_ratio then
+ if conf.sample_ratio == 1 or math.random() <= conf.sample_ratio then
ctx.skywalking_sample = true
- sw_client.heartbeat(conf)
- -- Currently, we can not have the upstream real network address
- sw_tracer.start(ctx, conf.endpoint, "upstream service")
+ sw_tracer:start("upstream service")
+ core.log.info("tracer start")
+ return
end
+
+ core.log.info("miss sampling, ignore")
end
function _M.body_filter(conf, ctx)
if ctx.skywalking_sample and ngx.arg[2] then
- sw_tracer.finish(ctx)
+ sw_tracer:finish()
+ core.log.info("tracer finish")
end
end
function _M.log(conf, ctx)
if ctx.skywalking_sample then
- sw_tracer.prepareForReport(ctx, conf.endpoint)
+ sw_tracer:prepareForReport()
+ core.log.info("tracer prepare for report")
end
end
+
+local function try_read_attr(t, ...)
+ local count = select('#', ...)
+ for i = 1, count do
+ local attr = select(i, ...)
+ if type(t) ~= "table" then
+ return nil
+ end
+ t = t[attr]
+ end
+
+ return t
+end
+
+
+function _M.init()
+ if process.type() ~= "worker" and process.type() ~= "single" then
+ return
+ end
+
+ local local_conf = core.config.local_conf()
+ local local_plugin_info = try_read_attr(local_conf, "plugin_attr",
+ plugin_name) or {}
+ local_plugin_info = core.table.clone(local_plugin_info)
Review comment:
This code may be changes the table.
https://github.com/apache/apisix/pull/2389/files/1d2c965beb680ce9c48df286b55104005a1d6ea6#diff-8ae4d69a56407342d1196c01486b54a5d5021c70d955d9ab7793ff870e206063R129
eg: it will set the default value.
##########
File path: apisix/plugins/skywalking.lua
##########
@@ -55,26 +76,74 @@ end
function _M.rewrite(conf, ctx)
core.log.debug("rewrite phase of skywalking plugin")
ctx.skywalking_sample = false
- if conf.sample_ratio == 1 or math.random() < conf.sample_ratio then
+ if conf.sample_ratio == 1 or math.random() <= conf.sample_ratio then
ctx.skywalking_sample = true
- sw_client.heartbeat(conf)
- -- Currently, we can not have the upstream real network address
- sw_tracer.start(ctx, conf.endpoint, "upstream service")
+ sw_tracer:start("upstream service")
+ core.log.info("tracer start")
+ return
end
+
+ core.log.info("miss sampling, ignore")
end
function _M.body_filter(conf, ctx)
if ctx.skywalking_sample and ngx.arg[2] then
- sw_tracer.finish(ctx)
+ sw_tracer:finish()
+ core.log.info("tracer finish")
end
end
function _M.log(conf, ctx)
if ctx.skywalking_sample then
- sw_tracer.prepareForReport(ctx, conf.endpoint)
+ sw_tracer:prepareForReport()
+ core.log.info("tracer prepare for report")
end
end
+
+local function try_read_attr(t, ...)
Review comment:
we can do this in a new separate PR.
##########
File path: apisix/plugins/skywalking.lua
##########
@@ -55,26 +76,74 @@ end
function _M.rewrite(conf, ctx)
core.log.debug("rewrite phase of skywalking plugin")
ctx.skywalking_sample = false
- if conf.sample_ratio == 1 or math.random() < conf.sample_ratio then
+ if conf.sample_ratio == 1 or math.random() <= conf.sample_ratio then
ctx.skywalking_sample = true
- sw_client.heartbeat(conf)
- -- Currently, we can not have the upstream real network address
- sw_tracer.start(ctx, conf.endpoint, "upstream service")
+ sw_tracer:start("upstream service")
+ core.log.info("tracer start")
+ return
end
+
+ core.log.info("miss sampling, ignore")
end
function _M.body_filter(conf, ctx)
if ctx.skywalking_sample and ngx.arg[2] then
- sw_tracer.finish(ctx)
+ sw_tracer:finish()
+ core.log.info("tracer finish")
end
end
function _M.log(conf, ctx)
if ctx.skywalking_sample then
- sw_tracer.prepareForReport(ctx, conf.endpoint)
+ sw_tracer:prepareForReport()
+ core.log.info("tracer prepare for report")
end
end
+
+local function try_read_attr(t, ...)
Review comment:
related issue: https://github.com/apache/apisix/issues/2557
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org