8000 fix: `http.url` tag to include protocol (#656) · DataDog/datadog-lambda-js@47fc07a · GitHub
[go: up one dir, main page]

Skip to content

Commit 47fc07a

Browse files
authored
fix: http.url tag to include protocol (#656)
* update `http.url` in span inferrer * update `http.url` in trigger tags * update integration tests
1 parent 7f10320 commit 47fc07a

10 files changed

+33
-31
lines changed

integration_tests/snapshots/logs/process-input-traced_node18.log

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ START
4040
"service": "remappedApiGatewayServiceName",
4141
"runtime-id":"XXXX",
4242
"operation_name": "aws.apigateway",
43-
"http.url": "undefined",
43+
"http.url": "https://undefined",
4444
"resource_names": "GET /{proxy+}",
4545
"request_id":"XXXX",
4646
"apiid":"XXXX",

integration_tests/snapshots/logs/process-input-traced_node20.log

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ START
4040
"service": "remappedApiGatewayServiceName",
4141
"runtime-id":"XXXX",
4242
"operation_name": "aws.apigateway",
43-
"http.url": "undefined",
43+
"http.url": "https://undefined",
4444
"resource_names": "GET /{proxy+}",
4545
"request_id":"XXXX",
4646
"apiid":"XXXX",

integration_tests/snapshots/logs/process-input-traced_node22.log

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ START
4040
"service": "remappedApiGatewayServiceName",
4141
"runtime-id":"XXXX",
4242
"operation_name": "aws.apigateway",
43-
"http.url": "undefined",
43+
"http.url": "https://undefined",
4444
"resource_names": "GET /{proxy+}",
4545
"request_id":"XXXX",
4646
"apiid":"XXXX",

integration_tests/snapshots/logs/status-code-500s_node18.log

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ START
4646
"service": "remappedApiGatewayServiceName",
4747
"runtime-id":"XXXX",
4848
"operation_name": "aws.apigateway",
49-
"http.url": "undefined",
49+
"http.url": "https://undefined",
5050
"resource_names": "GET /{proxy+}",
5151
"request_id":"XXXX",
5252
"apiid":"XXXX",

integration_tests/snapshots/logs/status-code-500s_node20.log

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ START
4646
"service": "remappedApiGatewayServiceName",
4747
"runtime-id":"XXXX",
4848
"operation_name": "aws.apigateway",
49-
"http.url": "undefined",
49+
"http.url": "https://undefined",
5050
"resource_names": "GET /{proxy+}",
5151
"request_id":"XXXX",
5252
"apiid":"XXXX",

integration_tests/snapshots/logs/status-code-500s_node22.log

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ START
4646
"service": "remappedApiGatewayServiceName",
4747
"runtime-id":"XXXX",
4848
"operation_name": "aws.apigateway",
49-
"http.url": "undefined",
49+
"http.url": "https://undefined",
5050
"resource_names": "GET /{proxy+}",
5151
"request_id":"XXXX",
5252
"apiid":"XXXX",

src/trace/span-inferrer.spec.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,7 @@ describe("SpanInferrer", () => {
647647
connection_id: "MM0qReAFGjQCE-w=",
648648
endpoint: "$connect",
649649
event_type: "CONNECT",
650-
"http.url": "08se3mvh28.execute-api.eu-west-1.amazonaws.com$connect",
650+
"http.url": "https://08se3mvh28.execute-api.eu-west-1.amazonaws.com$connect",
651651
message_direction: "IN",
652652
operation_name: "aws.apigateway",
653653
"peer.service": "mock-lambda-service",
@@ -672,7 +672,7 @@ describe("SpanInferrer", () => {
672672
_inferred_span: { synchronicity: "sync", tag_source: "self" },
673673
apiid: "id",
674674
endpoint: "/my/path",
675-
"http.url": "id.execute-api.us-east-1.amazonaws.com/my/path",
675+
"http.url": "https://id.execute-api.us-east-1.amazonaws.com/my/path",
676676
domain_name: "id.execute-api.us-east-1.amazonaws.com",
677677
operation_name: "aws.apigateway",
678678
"peer.service": "mock-lambda-service",
@@ -699,7 +699,7 @@ describe("SpanInferrer", () => {
699699
_inferred_span: { synchronicity: "sync", tag_source: "self" },
700700
apiid: "r3pmxmplak",
701701
endpoint: "/default/nodejs-apig-function-1G3XMPLZXVXYI",
702-
"http.url": "r3pmxmplak.execute-api.us-east-2.amazonaws.com/default/nodejs-apig-function-1G3XMPLZXVXYI",
702+
"http.url": "https://r3pmxmplak.execute-api.us-east-2.amazonaws.com/default/nodejs-apig-function-1G3XMPLZXVXYI",
703703
domain_name: "r3pmxmplak.execute-api.us-east-2.amazonaws.com",
704704
operation_name: "aws.apigateway",
705705
"peer.service": "mock-lambda-service",
@@ -726,7 +726,7 @@ describe("SpanInferrer", () => {
726726
_inferred_span: { synchronicity: "sync", tag_source: "self" },
727727
apiid: "mcwkra0ya4",
728728
endpoint: "/dev/user/42",
729-
"http.url": "mcwkra0ya4.execute-api.sa-east-1.amazonaws.com/dev/user/42",
729+
"http.url": "https://mcwkra0ya4.execute-api.sa-east-1.amazonaws.com/dev/user/42",
730730
domain_name: "mcwkra0ya4.execute-api.sa-east-1.amazonaws.com",
731731
operation_name: "aws.apigateway",
732732
"peer.service": "mock-lambda-service",
@@ -753,7 +753,7 @@ describe("SpanInferrer", () => {
753753
_inferred_span: { synchronicity: "sync", tag_source: "self" },
754754
apiid: "9vj54we5ih",
755755
endpoint: "/user/42",
756-
"http.url": "9vj54we5ih.execute-api.sa-east-1.amazonaws.com/user/42",
756+
"http.url": "https://9vj54we5ih.execute-api.sa-east-1.amazonaws.com/user/42",
757757
domain_name: "9vj54we5ih.execute-api.sa-east-1.amazonaws.com",
758758
operation_name: "aws.apigateway",
759759
"peer.service": "mock-lambda-service",
@@ -783,7 +783,7 @@ describe("SpanInferrer", () => {
783783
},
784784
endpoint: "/",
785785
"http.method": "GET",
786-
"http.url": "a8hyhsshac.lambda-url.eu-south-1.amazonaws.com/",
786+
"http.url": "https://a8hyhsshac.lambda-url.eu-south-1.amazonaws.com/",
787787
operation_name: "aws.lambda.url",
788788
"peer.service": "mock-lambda-service",
789789
request_id: undefined,
@@ -868,7 +868,7 @@ describe("Authorizer Spans", () => {
868868
domain_name: "3gsxz7lha4.execute-api.eu-west-1.amazonaws.com",
869869
endpoint: "/dev/hello",
870870
"http.method": "POST",
871-
"http.url": "3gsxz7lha4.execute-api.eu-west-1.amazonaws.com/dev/hello",
871+
"http.url": "https://3gsxz7lha4.execute-api.eu-west-1.amazonaws.com/dev/hello",
872872
operation_name: "aws.apigateway",
873873
"peer.service": "mock-lambda-service",
874874
request_id: undefined,
@@ -892,7 +892,7 @@ describe("Authorizer Spans", () => {
892892
domain_name: "3gsxz7lha4.execute-api.eu-west-1.amazonaws.com",
893893
endpoint: "/dev/hello",
894894
"http.method": "POST",
895-
"http.url": "3gsxz7lha4.execute-api.eu-west-1.amazonaws.com/dev/hello",
895+
"http.url": "https://3gsxz7lha4.execute-api.eu-west-1.amazonaws.com/dev/hello",
896896
operation_name: "aws.apigateway",
897897
"peer.service": "mock-lambda-service",
898898
request_id: undefined,
@@ -921,7 +921,7 @@ describe("Authorizer Spans", () => {
921921
domain_name: "3gsxz7lha4.execute-api.eu-west-1.amazonaws.com",
922922
endpoint: "/dev/hello",
923923
"http.method": "POST",
924-
"http.url": "3gsxz7lha4.execute-api.eu-west-1.amazonaws.com/dev/hello",
924+
"http.url": "https://3gsxz7lha4.execute-api.eu-west-1.amazonaws.com/dev/hello",
925925
operation_name: "aws.apigateway",
926926
"peer.service": "mock-lambda-service",
927927
request_id: undefined,
@@ -950,7 +950,7 @@ describe("Authorizer Spans", () => {
950950
domain_name: "4dyr9xqip7.execute-api.eu-west-1.amazonaws.com",
951951
endpoint: "/dev/hi",
952952
"http.method": "GET",
953-
"http.url": "4dyr9xqip7.execute-api.eu-west-1.amazonaws.com/dev/hi",
953+
"http.url": "https://4dyr9xqip7.execute-api.eu-west-1.amazonaws.com/dev/hi",
954954
operation_name: "aws.apigateway",
955955
"peer.service": "mock-lambda-service",
956956
request_id: undefined,
@@ -974,7 +974,7 @@ describe("Authorizer Spans", () => {
974974
domain_name: "4dyr9xqip7.execute-api.eu-west-1.amazonaws.com",
975975
endpoint: "/dev/hi",
976976
"http.method": "GET",
977-
"http.url": "4dyr9xqip7.execute-api.eu-west-1.amazonaws.com/dev/hi",
977+
"http.url": "https://4dyr9xqip7.execute-api.eu-west-1.amazonaws.com/dev/hi",
978978
operation_name: "aws.apigateway",
979979
"peer.service": "mock-lambda-service",
980980
request_id: undefined,
@@ -1003,7 +1003,7 @@ describe("Authorizer Spans", () => {
10031003
domain_name: "4dyr9xqip7.execute-api.eu-west-1.amazonaws.com",
10041004
endpoint: "/dev/hi",
10051005
"http.method": "GET",
1006-
"http.url": "4dyr9xqip7.execute-api.eu-west-1.amazonaws.com/dev/hi",
1006+
"http.url": "https://4dyr9xqip7.execute-api.eu-west-1.amazonaws.com/dev/hi",
10071007
operation_name: "aws.apigateway",
10081008
"peer.service": "mock-lambda-service",
10091009
request_id: undefined,
@@ -1032,7 +1032,7 @@ describe("Authorizer Spans", () => {
10321032
domain_name: "l9flvsey83.execute-api.eu-west-1.amazonaws.com",
10331033
endpoint: "/hello",
10341034
"http.method": "GET",
1035-
"http.url": "l9flvsey83.execute-api.eu-west-1.amazonaws.com/hello",
1035+
"http.url": "https://l9flvsey83.execute-api.eu-west-1.amazonaws.com/hello",
10361036
operation_name: "aws.httpapi",
10371037
"peer.service": "mock-lambda-service",
10381038
request_id: undefined,
@@ -1061,7 +1061,7 @@ describe("Authorizer Spans", () => {
10611061
domain_name: "l9flvsey83.execute-api.eu-west-1.amazonaws.com",
10621062
endpoint: "/hello",
10631063
"http.method": "GET",
1064-
"http.url": "l9flvsey83.execute-api.eu-west-1.amazonaws.com/hello",
1064+
"http.url": "https://l9flvsey83.execute-api.eu-west-1.amazonaws.com/hello",
10651065
operation_name: "aws.apigateway",
10661066
"peer.service": "mock-lambda-service",
10671067
request_id: undefined,
@@ -1090,7 +1090,7 @@ describe("Authorizer Spans", () => {
10901090
connection_id: "ahVWscZqmjQCI1w=",
10911091
endpoint: "$connect",
10921092
event_type: "CONNECT",
1093-
"http.url": "85fj5nw29d.execute-api.eu-west-1.amazonaws.com$connect",
1093+
"http.url": "https://85fj5nw29d.execute-api.eu-west-1.amazonaws.com$connect",
10941094
message_direction: "IN",
10951095
operation_name: "aws.apigateway",
10961096
"peer.service": "mock-lambda-service",
@@ -1114,7 +1114,7 @@ describe("Authorizer Spans", () => {
11141114
connection_id: "ahVWscZqmjQCI1w=",
11151115
endpoint: "$connect",
11161116
event_type: "CONNECT",
1117-
"http.url": "85fj5nw29d.execute-api.eu-west-1.amazonaws.com$connect",
1117+
"http.url": "https://85fj5nw29d.execute-api.eu-west-1.amazonaws.com$connect",
11181118
message_direction: "IN",
11191119
operation_name: "aws.apigateway",
11201120
"peer.service": "mock-lambda-service",
@@ -1143,7 +1143,7 @@ describe("Authorizer Spans", () => {
11431143
connection_id: "ahVWscZqmjQCI1w=",
11441144
endpoint: "hello",
11451145
event_type: "MESSAGE",
1146-
"http.url": "85fj5nw29d.execute-api.eu-west-1.amazonaws.comhello",
1146+
"http.url": "https://85fj5nw29d.execute-api.eu-west-1.amazonaws.comhello",
11471147
message_direction: "IN",
11481148
operation_name: "aws.apigateway",
11491149
"peer.service": "mock-lambda-service",

src/trace/span-inferrer.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ export class SpanInferrer {
9494
const options: SpanOptions = {};
9595
const domain = event.requestContext.domainName || "";
9696
const path = event.rawPath || event.requestContext.path || event.requestContext.routeKey;
97+
const httpUrl = `https://${domain}${path}`;
9798
const resourcePath = this.getResourcePath(event);
9899

99100
let method;
@@ -108,7 +109,7 @@ export class SpanInferrer {
108109

109110
options.tags = {
110111
operation_name: "aws.apigateway",
111-
"http.url": domain + path,
112+
"http.url": httpUrl,
112113
endpoint: path,
113114
resource_names: resourceName,
114115
request_id: context?.awsRequestId,
@@ -193,6 +194,7 @@ export class SpanInferrer {
193194
const options: SpanOptions = {};
194195
const domain: string = event.requestContext.domainName || "";
195196
const path = event.rawPath;
197+
const httpUrl = `https://${domain}${path}`;
196198
let method;
197199
if (event.requestContext.httpMethod) {
198200
method = event.requestContext.httpMethod;
@@ -205,7 +207,7 @@ export class SpanInferrer {
205207

206208
options.tags = {
207209
operation_name: "aws.lambda.url",
208-
"http.url": domain + path,
210+
"http.url": httpUrl,
209211
endpoint: path,
210212
"http.method": event.requestContext.http.method,
211213
resource_names: resourceName,

src/trace/trigger.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe("parseEventSource", () => {
1414
result: {
1515
"function_trigger.event_source": "api-gateway",
1616
"function_trigger.event_source_arn": "arn:aws:apigateway:us-east-1::/restapis/id/stages/$default",
17-
"http.url": "id.execute-api.us-east-1.amazonaws.com",
17+
"http.url": "https://id.execute-api.us-east-1.amazonaws.com",
1818
"http.url_details.path": "/my/path",
1919
"http.method": "GET",
2020
"http.route": "/my/path",
@@ -25,7 +25,7 @@ describe("parseEventSource", () => {
2525
result: {
2626
"function_trigger.event_source": "api-gateway",
2727
"function_trigger.event_source_arn": "arn:aws:apigateway:us-east-1::/restapis/r3pmxmplak/stages/default",
28-
"http.url": "r3pmxmplak.execute-api.us-east-2.amazonaws.com",
28+
"http.url": "https://r3pmxmplak.execute-api.us-east-2.amazonaws.com",
2929
"http.url_details.path": "/default/nodejs-apig-function-1G3XMPLZXVXYI",
3030
"http.method": "GET",
3131
"http.route": "/nodejs-apig-function-1G3XMPLZXVXYI",
@@ -35,7 +35,7 @@ describe("parseEventSource", () => {
3535
{
3636
result: {
3737
"function_trigger.event_source": "lambda-function-url",
38-
"http.url": "a8hyhsshac.lambda-url.eu-south-1.amazonaws.com",
38+
"http.url": "https://a8hyhsshac.lambda-url.eu-south-1.amazona 10984 ws.com",
3939
"http.url_details.path": "/",
4040
"http.method": "GET",
4141
},

src/trace/trigger.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ function extractHTTPTags(event: APIGatewayEvent | APIGatewayProxyEventV2 | ALBEv
289289
if (eventType.isAPIGatewayEvent(event)) {
290290
const requestContext = event.requestContext;
291291
if (requestContext.domainName) {
292-
httpTags["http.url"] = requestContext.domainName;
292+
httpTags["http.url"] = `https://${requestContext.domainName}`;
293293
}
294294
httpTags["http.url_details.path"] = requestContext.path;
295295
httpTags["http.method"] = requestContext.httpMethod;
@@ -304,7 +304,7 @@ function extractHTTPTags(event: APIGatewayEvent | APIGatewayProxyEventV2 | ALBEv
304304

305305
if (eventType.isAPIGatewayEventV2(event)) {
306306
const requestContext = event.requestContext;
307-
httpTags["http.url"] = requestContext.domainName;
307+
httpTags["http.url"] = `https://${requestContext.domainName}`;
308308
httpTags["http.url_details.path"] = requestContext.http.path;
309309
httpTags["http.method"] = requestContext.http.method;
310310
if (event.headers?.Referer) {
@@ -330,7 +330,7 @@ function extractHTTPTags(event: APIGatewayEvent | APIGatewayProxyEventV2 | ALBEv
330330
if (eventType.isLambdaUrlEvent(event)) {
331331
const requestContext = event.requestContext;
332332
if (requestContext.domainName) {
333-
httpTags["http.url"] = requestContext.domainName;
333+
httpTags["http.url"] = `https://${requestContext.domainName}`;
334334
}
335335
httpTags["http.url_details.path"] = requestContext.http.path;
336336
httpTags["http.method"] = requestContext.http.method;

0 commit comments

Comments
 (0)
0