Skip to content

Commit 64f81da

Browse files
authored
fix: http.url tag to include protocol (#603)
* update `http.url` in inferred spans * update `http.url` in trigger tags * fix `resource_names` update * update integration test
1 parent 676446c commit 64f81da

17 files changed

+108
-104
lines changed

datadog_lambda/tracing.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -850,13 +850,14 @@ def create_inferred_span_from_lambda_function_url_event(event, context):
850850
http = request_context.get("http")
851851
method = http.get("method") if http else None
852852
path = http.get("path") if http else None
853+
http_url = f"https://{domain}{path}"
853854
resource = f"{method} {path}"
854855
tags = {
855856
"operation_name": "aws.lambda.url",
856-
"http.url": domain + path,
857+
"http.url": http_url,
857858
"endpoint": path,
858859
"http.method": method,
859-
"resource_names": domain + path,
860+
"resource_names": resource,
860861
"request_id": context.aws_request_id,
861862
}
862863
request_time_epoch = request_context.get("timeEpoch")
@@ -948,14 +949,15 @@ def create_inferred_span_from_api_gateway_websocket_event(
948949
request_context = event.get("requestContext")
949950
domain = request_context.get("domainName")
950951
endpoint = request_context.get("routeKey")
952+
http_url = f"https://{domain}{endpoint}"
951953
api_id = request_context.get("apiId")
952954

953955
service_name = determine_service_name(
954956
service_mapping, api_id, "lambda_api_gateway", domain
955957
)
956958
tags = {
957959
"operation_name": "aws.apigateway.websocket",
958-
"http.url": domain + endpoint,
960+
"http.url": http_url,
959961
"endpoint": endpoint,
960962
"resource_names": endpoint,
961963
"apiid": api_id,
@@ -1007,11 +1009,12 @@ def create_inferred_span_from_api_gateway_event(
10071009
)
10081010
method = event.get("httpMethod")
10091011
path = event.get("path")
1012+
http_url = f"https://{domain}{path}"
10101013
resource_path = _get_resource_path(event, request_context)
10111014
resource = f"{method} {resource_path}"
10121015
tags = {
10131016
"operation_name": "aws.apigateway.rest",
1014-
"http.url": domain + path,
1017+
"http.url": http_url,
10151018
"endpoint": path,
10161019
"http.method": method,
10171020
"resource_names": resource,
@@ -1073,12 +1076,13 @@ def create_inferred_span_from_http_api_event(
10731076
http = request_context.get("http") or {}
10741077
method = http.get("method")
10751078
path = event.get("rawPath")
1079+
http_url = f"https://{domain}{path}"
10761080
resource_path = _get_resource_path(event, request_context)
10771081
resource = f"{method} {resource_path}"
10781082
tags = {
10791083
"operation_name": "aws.httpapi",
10801084
"endpoint": path,
1081-
"http.url": domain + path,
1085+
"http.url": http_url,
10821086
"http.method": http.get("method"),
10831087
"http.protocol": http.get("protocol"),
10841088
"http.source_ip": http.get("sourceIp"),

datadog_lambda/trigger.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ def extract_http_tags(event):
301301
if request_context and request_context.get("stage"):
302302
domain_name = request_context.get("domainName")
303303
if domain_name:
304-
http_tags["http.url"] = domain_name
304+
http_tags["http.url"] = f"https://{domain_name}"
305305

306306
path = request_context.get("path")
307307
method = request_context.get("httpMethod")

tests/integration/snapshots/logs/async-metrics_python310.log

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
5555
"runtime-id": "XXXX",
5656
"_dd.origin": "lambda",
5757
"operation_name": "aws.apigateway.rest",
58-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com/",
58+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/",
5959
"endpoint": "/",
6060
"http.method": "GET",
6161
"resource_names": "GET /",
@@ -103,7 +103,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
103103
"span.name": "aws.lambda",
104104
"function_trigger.event_source": "api-gateway",
105105
"function_trigger.event_source_arn": "XXXX",
106-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com",
106+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com",
107107
"http.url_details.path": "/Prod/",
108108
"http.method": "GET",
109109
"http.route": "/",
@@ -594,7 +594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
594594
"_dd.origin": "lambda",
595595
"operation_name": "aws.httpapi",
596596
"endpoint": "/httpapi/get",
597-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
597+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
598598
"http.method": "GET",
599599
"http.protocol": "HTTP/1.1",
600600
"http.source_ip": "XXXX",
@@ -644,7 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
644644
"span.name": "aws.lambda",
645645
"function_trigger.event_source": "api-gateway",
646646
"function_trigger.event_source_arn": "XXXX$default",
647-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
647+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
648648
"http.url_details.path": "/httpapi/get",
649649
"http.method": "GET",
650650
"http.route": "/httpapi/get",
@@ -1436,7 +1436,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14361436
"runtime-id": "XXXX",
14371437
"_dd.origin": "lambda",
14381438
"operation_name": "aws.apigateway.websocket",
1439-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com$default",
1439+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default",
14401440
"endpoint": "$default",
14411441
"resource_names": "$default",
14421442
"apiid": "XXXX",
@@ -1486,7 +1486,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14861486
"span.name": "aws.lambda",
14871487
"function_trigger.event_source": "api-gateway",
14881488
"function_trigger.event_source_arn": "XXXX",
1489-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
1489+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
14901490
"http.status_code": "200",
14911491
"_dd.base_service": "integration-tests-python"
14921492
},

tests/integration/snapshots/logs/async-metrics_python311.log

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
5555
"runtime-id": "XXXX",
5656
"_dd.origin": "lambda",
5757
"operation_name": "aws.apigateway.rest",
58-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com/",
58+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/",
5959
"endpoint": "/",
6060
"http.method": "GET",
6161
"resource_names": "GET /",
@@ -103,7 +103,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
103103
"span.name": "aws.lambda",
104104
"function_trigger.event_source": "api-gateway",
105105
"function_trigger.event_source_arn": "XXXX",
106-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com",
106+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com",
107107
"http.url_details.path": "/Prod/",
108108
"http.method": "GET",
109109
"http.route": "/",
@@ -594,7 +594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
594594
"_dd.origin": "lambda",
595595
"operation_name": "aws.httpapi",
596596
"endpoint": "/httpapi/get",
597-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
597+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
598598
"http.method": "GET",
599599
"http.protocol": "HTTP/1.1",
600600
"http.source_ip": "XXXX",
@@ -644,7 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
644644
"span.name": "aws.lambda",
645645
"function_trigger.event_source": "api-gateway",
646646
"function_trigger.event_source_arn": "XXXX$default",
647-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
647+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
648648
"http.url_details.path": "/httpapi/get",
649649
"http.method": "GET",
650650
"http.route": "/httpapi/get",
@@ -1436,7 +1436,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14361436
"runtime-id": "XXXX",
14371437
"_dd.origin": "lambda",
14381438
"operation_name": "aws.apigateway.websocket",
1439-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com$default",
1439+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default",
14401440
"endpoint": "$default",
14411441
"resource_names": "$default",
14421442
"apiid": "XXXX",
@@ -1486,7 +1486,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14861486
"span.name": "aws.lambda",
14871487
"function_trigger.event_source": "api-gateway",
14881488
"function_trigger.event_source_arn": "XXXX",
1489-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
1489+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
14901490
"http.status_code": "200",
14911491
"_dd.base_service": "integration-tests-python"
14921492
},

tests/integration/snapshots/logs/async-metrics_python312.log

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
5555
"runtime-id": "XXXX",
5656
"_dd.origin": "lambda",
5757
"operation_name": "aws.apigateway.rest",
58-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com/",
58+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/",
5959
"endpoint": "/",
6060
"http.method": "GET",
6161
"resource_names": "GET /",
@@ -103,7 +103,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
103103
"span.name": "aws.lambda",
104104
"function_trigger.event_source": "api-gateway",
105105
"function_trigger.event_source_arn": "XXXX",
106-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com",
106+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com",
107107
"http.url_details.path": "/Prod/",
108108
"http.method": "GET",
109109
"http.route": "/",
@@ -594,7 +594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
594594
"_dd.origin": "lambda",
595595
"operation_name": "aws.httpapi",
596596
"endpoint": "/httpapi/get",
597-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
597+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
598598
"http.method": "GET",
599599
"http.protocol": "HTTP/1.1",
600600
"http.source_ip": "XXXX",
@@ -644,7 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
644644
"span.name": "aws.lambda",
645645
"function_trigger.event_source": "api-gateway",
646646
"function_trigger.event_source_arn": "XXXX$default",
647-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
647+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
648648
"http.url_details.path": "/httpapi/get",
649649
"http.method": "GET",
650650
"http.route": "/httpapi/get",
@@ -1436,7 +1436,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14361436
"runtime-id": "XXXX",
14371437
"_dd.origin": "lambda",
14381438
"operation_name": "aws.apigateway.websocket",
1439-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com$default",
1439+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default",
14401440
"endpoint": "$default",
14411441
"resource_names": "$default",
14421442
"apiid": "XXXX",
@@ -1486,7 +1486,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14861486
"span.name": "aws.lambda",
14871487
"function_trigger.event_source": "api-gateway",
14881488
"function_trigger.event_source_arn": "XXXX",
1489-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
1489+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
14901490
"http.status_code": "200",
14911491
"_dd.base_service": "integration-tests-python"
14921492
},

tests/integration/snapshots/logs/async-metrics_python313.log

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
5555
"runtime-id": "XXXX",
5656
"_dd.origin": "lambda",
5757
"operation_name": "aws.apigateway.rest",
58-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com/",
58+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/",
5959
"endpoint": "/",
6060
"http.method": "GET",
6161
"resource_names": "GET /",
@@ -103,7 +103,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
103103
"span.name": "aws.lambda",
104104
"function_trigger.event_source": "api-gateway",
105105
"function_trigger.event_source_arn": "XXXX",
106-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com",
106+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com",
107107
"http.url_details.path": "/Prod/",
108108
"http.method": "GET",
109109
"http.route": "/",
@@ -594,7 +594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
594594
"_dd.origin": "lambda",
595595
"operation_name": "aws.httpapi",
596596
"endpoint": "/httpapi/get",
597-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
597+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
598598
"http.method": "GET",
599599
"http.protocol": "HTTP/1.1",
600600
"http.source_ip": "XXXX",
@@ -644,7 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
644644
"span.name": "aws.lambda",
645645
"function_trigger.event_source": "api-gateway",
646646
"function_trigger.event_source_arn": "XXXX$default",
647-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
647+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
648648
"http.url_details.path": "/httpapi/get",
649649
"http.method": "GET",
650650
"http.route": "/httpapi/get",
@@ -1436,7 +1436,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14361436
"runtime-id": "XXXX",
14371437
"_dd.origin": "lambda",
14381438
"operation_name": "aws.apigateway.websocket",
1439-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com$default",
1439+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default",
14401440
"endpoint": "$default",
14411441
"resource_names": "$default",
14421442
"apiid": "XXXX",
@@ -1486,7 +1486,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14861486
"span.name": "aws.lambda",
14871487
"function_trigger.event_source": "api-gateway",
14881488
"function_trigger.event_source_arn": "XXXX",
1489-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
1489+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
14901490
"http.status_code": "200",
14911491
"_dd.base_service": "integration-tests-python"
14921492
},

tests/integration/snapshots/logs/async-metrics_python38.log

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
5555
"runtime-id": "XXXX",
5656
"_dd.origin": "lambda",
5757
"operation_name": "aws.apigateway.rest",
58-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com/",
58+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com/",
5959
"endpoint": "/",
6060
"http.method": "GET",
6161
"resource_names": "GET /",
@@ -103,7 +103,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
103103
"span.name": "aws.lambda",
104104
"function_trigger.event_source": "api-gateway",
105105
"function_trigger.event_source_arn": "XXXX",
106-
"http.url": "XXXX.execute-api.us-east-2.amazonaws.com",
106+
"http.url": "https://XXXX.execute-api.us-east-2.amazonaws.com",
107107
"http.url_details.path": "/Prod/",
108108
"http.method": "GET",
109109
"http.route": "/",
@@ -594,7 +594,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
594594
"_dd.origin": "lambda",
595595
"operation_name": "aws.httpapi",
596596
"endpoint": "/httpapi/get",
597-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
597+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com/httpapi/get",
598598
"http.method": "GET",
599599
"http.protocol": "HTTP/1.1",
600600
"http.source_ip": "XXXX",
@@ -644,7 +644,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
644644
"span.name": "aws.lambda",
645645
"function_trigger.event_source": "api-gateway",
646646
"function_trigger.event_source_arn": "XXXX$default",
647-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
647+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
648648
"http.url_details.path": "/httpapi/get",
649649
"http.method": "GET",
650650
"http.route": "/httpapi/get",
@@ -1436,7 +1436,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14361436
"runtime-id": "XXXX",
14371437
"_dd.origin": "lambda",
14381438
"operation_name": "aws.apigateway.websocket",
1439-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com$default",
1439+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com$default",
14401440
"endpoint": "$default",
14411441
"resource_names": "$default",
14421442
"apiid": "XXXX",
@@ -1486,7 +1486,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14861486
"span.name": "aws.lambda",
14871487
"function_trigger.event_source": "api-gateway",
14881488
"function_trigger.event_source_arn": "XXXX",
1489-
"http.url": "XXXX.execute-api.eu-west-1.amazonaws.com",
1489+
"http.url": "https://XXXX.execute-api.eu-west-1.amazonaws.com",
14901490
"http.status_code": "200",
14911491
"_dd.base_service": "integration-tests-python"
14921492
},

0 commit comments

Comments
 (0)