From d9245857585a78f9b8f697d2242a54f8161d5d2f Mon Sep 17 00:00:00 2001 From: Zeping Bai Date: Sun, 16 Jun 2024 13:47:12 +0800 Subject: [PATCH 1/2] fix: datadog error on consumer related route --- apisix/plugins/datadog.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apisix/plugins/datadog.lua b/apisix/plugins/datadog.lua index 7f0ed8ab9ca0..972c0a2c7b9e 100644 --- a/apisix/plugins/datadog.lua +++ b/apisix/plugins/datadog.lua @@ -88,8 +88,8 @@ local function generate_tag(entry, const_tags) core.table.insert(tags, "service_name:" .. entry.service_id) end - if entry.consumer and entry.consumer ~= "" then - core.table.insert(tags, "consumer:" .. entry.consumer) + if entry.consumer and entry.consumer.username then + core.table.insert(tags, "consumer:" .. entry.consumer.username) end if entry.balancer_ip ~= "" then core.table.insert(tags, "balancer_ip:" .. entry.balancer_ip) From 1b13e00853feb60fd4ee2ab668fe800fddbcade6 Mon Sep 17 00:00:00 2001 From: Zeping Bai Date: Sun, 16 Jun 2024 14:31:44 +0800 Subject: [PATCH 2/2] test: add consumer case --- t/plugin/datadog.t | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/t/plugin/datadog.t b/t/plugin/datadog.t index 8dade74a6a72..506abcc0fe41 100644 --- a/t/plugin/datadog.t +++ b/t/plugin/datadog.t @@ -498,3 +498,40 @@ message received: apisix\.apisix\.latency:[\d.]+\|h\|#source:apisix,new_tag:must message received: apisix\.ingress\.size:[\d]+\|ms\|#source:apisix,new_tag:must,route_name:1,service_name:1,balancer_ip:[\d.]+,response_status:200,scheme:http message received: apisix\.egress\.size:[\d]+\|ms\|#source:apisix,new_tag:must,route_name:1,service_name:1,balancer_ip:[\d.]+,response_status:200,scheme:http / + + + +=== TEST 10: testing behaviour with consumer +--- apisix_yaml +consumers: + - username: user0 + plugins: + key-auth: + key: user0 +routes: + - uri: /opentracing + name: datadog + upstream: + nodes: + "127.0.0.1:1982": 1 + plugins: + datadog: + batch_max_size: 1 + max_retry_count: 0 + key-auth: {} +#END +--- request +GET /opentracing?apikey=user0 +--- response_body +opentracing +--- wait: 0.5 +--- grep_error_log eval +qr/message received: apisix(.+?(?=, ))/ +--- grep_error_log_out eval +qr/message received: apisix\.request\.counter:1\|c\|#source:apisix,route_name:datadog,consumer:user0,balancer_ip:[\d.]+,response_status:200,scheme:http +message received: apisix\.request\.latency:[\d.]+\|h\|#source:apisix,route_name:datadog,consumer:user0,balancer_ip:[\d.]+,response_status:200,scheme:http +message received: apisix\.upstream\.latency:[\d.]+\|h\|#source:apisix,route_name:datadog,consumer:user0,balancer_ip:[\d.]+,response_status:200,scheme:http +message received: apisix\.apisix\.latency:[\d.]+\|h\|#source:apisix,route_name:datadog,consumer:user0,balancer_ip:[\d.]+,response_status:200,scheme:http +message received: apisix\.ingress\.size:[\d]+\|ms\|#source:apisix,route_name:datadog,consumer:user0,balancer_ip:[\d.]+,response_status:200,scheme:http +message received: apisix\.egress\.size:[\d]+\|ms\|#source:apisix,route_name:datadog,consumer:user0,balancer_ip:[\d.]+,response_status:200,scheme:http +/