tokers commented on code in PR #7822:
URL: https://github.com/apache/apisix/pull/7822#discussion_r961484339
##########
apisix/plugins/opentelemetry.lua:
##########
@@ -273,6 +280,25 @@ local function create_tracer_obj(conf)
end
+local function inject_attributes(attributes, wanted_attributes, source)
+ for _, key in ipairs(wanted_attributes) do
+ local is_key_a_match = #key >= 2 and key:sub(-1, -1) == "*"
+ local prefix = key:sub(0, -2)
Review Comment:
We can only calculate the `prefix` only if `is_key_a_match` is `true` since
it will generate a new string object. What about re-organizing the code to:
```lua
local is_prefix_key = #key >= 2 and key:byte(-1, -1) == str_byte("*")
if is_prefix_key then
local prefix = key:sub(0, -2)
for possible_key, value in pairs(source) do
if core.string.has_prefix(possible_key, prefix) then
core.table.insert(attributes, attr.string(possible_key, value))
end
end
else
local val = source[key]
if val then
core.table.insert(attributes, attr.string(key, val))
end
end
```
Note it's just a pseudo code.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]