Skip to content

Commit f451821

Browse files
authored
Send errors metrics for 5xx response for Node.js (#293)
* WIP.Send errors metrics for 5xx response for NodeJS * lint * lint * add empty line * allow optional statusCode * refactor * add .idea to .gitignore * add integration test * update * add integration test * add integration test result * add 500 integration test w/ api gateway * update_snapshot * update integration tests * add logs and return_values files * add empty line to trigger retest * Revert "add empty line to trigger retest" This reverts commit 8b72f90. * Revert "Revert "add empty line to trigger retest"" This reverts commit 95e4ee0. * Revert "Revert "Revert "add empty line to trigger retest""" This reverts commit 86c3601. * Revert "Revert "Revert "Revert "add empty line to trigger retest"""" This reverts commit 3af196f. * Revert "Revert "Revert "Revert "Revert "add empty line to trigger retest""""" This reverts commit bdb839e. * Revert "Revert "Revert "Revert "Revert "Revert "add empty line to trigger retest"""""" This reverts commit 2d362a9. * Revert "Revert "Revert "Revert "Revert "Revert "Revert "add empty line to trigger retest""""""" This reverts commit 52f477c. * address nix * change return_value from 501 to 500 * update snapshot logs * update `error` tag value to 1
1 parent 74d945f commit f451821

18 files changed

+873
-4
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ coverage
88
package-lock.json
99

1010
**/.serverless
11+
/.idea/

integration_tests/serverless.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,17 @@ functions:
7979
- { Ref: NodeLambdaLayer }
8080
environment:
8181
DD_FLUSH_TO_LOG: true
82+
83+
# status-code-500s
84+
status-code-500s_node:
85+
name: integration-tests-js-${sls:stage}-status-code-500s_${env:RUNTIME}
86+
handler: status-code-500s.handle
87+
runtime: ${env:SERVERLESS_RUNTIME}
88+
events:
89+
- http:
90+
path: test/hello
91+
method: get
92+
layers:
93+
- { Ref: NodeLambdaLayer }
94+
environment:
95+
DD_TRACE_ENABLED: true
Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,262 @@
1+
START
2+
{
3+
"e": XXXX,
4+
"m": "aws.lambda.enhanced.invocations",
5+
"t": [
6+
"region:sa-east-1",
7+
"account_id:XXXX",
8+
"functionname:integration-tests-js-XXXX-status-code-500s_node12",
9+
"resource:integration-tests-js-XXXX-status-code-500s_node12",
10+
"cold_start:true",
11+
"memorysize:1024",
12+
"datadog_lambda:vX.X.X",
13+
"runtime:nodejs12.x"
14+
],
15+
"v": 1
16+
}
17+
{
18+
"e": XXXX,
19+
"m": "aws.lambda.enhanced.errors",
20+
"t": [
21+
"region:sa-east-1",
22+
"account_id:XXXX",
23+
"functionname:integration-tests-js-XXXX-status-code-500s_node12",
24+
"resource:integration-tests-js-XXXX-status-code-500s_node12",
25+
"cold_start:true",
26+
"memorysize:1024",
27+
"datadog_lambda:vX.X.X",
28+
"runtime:nodejs12.x"
29+
],
30+
"v": 1
31+
}
32+
{
33+
"traces": [
34+
[
35+
{
36+
"trace_id":"XXXX",
37+
"span_id":"XXXX",
38+
"parent_id":"XXXX",
39+
"name": "aws.apigateway",
40+
"resource": "GET /{proxy+}",
41+
"error": 0,
42+
"meta": {
43+
"runtime-id":"XXXX",
44+
"operation_name": "aws.apigateway",
45+
"resource_names": "GET /{proxy+}",
46+
"request_id":"XXXX",
47+
"apiid":"XXXX",
48+
"_inferred_span.tag_source": "self",
49+
"_inferred_span.synchronicity": "sync",
50+
"http.method": "GET",
51+
"stage": "test",
52+
"http.status_code": "500"
53+
},
54+
"metrics": {
55+
"_dd.agent_psr": 1,
56+
"_sampling_priority_v1": 1
57+
},
58+
"start":XXXX,
59+
"duration":XXXX,
60+
"type": "http"
61+
},
62+
{
63+
"trace_id":"XXXX",
64+
"span_id":"XXXX",
65+
"parent_id":"XXXX",
66+
"name": "aws.lambda",
67+
"resource": "integration-tests-js-XXXX-status-code-500s_node12",
68+
"error": 1,
69+
"meta": {
70+
"service": "integration-tests-js-XXXX-status-code-500s_node12",
71+
"runtime-id":"XXXX",
72+
"function_arn":"XXXX_node12",
73+
"function_version": "$LATEST",
74+
"request_id":"XXXX",
75+
"resource_names": "integration-tests-js-XXXX-status-code-500s_node12",
76+
"functionname": "integration-tests-js-XXXX-status-code-500s_node12",
77+
"datadog_lambda":"XXXX",
78+
"function_trigger.event_source": "api-gateway",
79+
"function_trigger.event_source_arn": "arn:aws:apigateway:sa-east-1::/restapis/wt6mne2s9k/stages/test",
80+
"http.method": "GET",
81+
"http.status_code": "500"
82+
},
83+
"metrics": {
84+
"cold_start": 1,
85+
"_dd.measured": 1,
86+
"_sampling_priority_v1": 1
87+
},
88+
"start":XXXX,
89+
"duration":XXXX,
90+
"service": "aws.lambda",
91+
"type": "serverless"
92+
}
93+
]
94+
]
95+
}
96+
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
97+
START
98+
{
99+
"e": XXXX,
100+
"m": "aws.lambda.enhanced.invocations",
101+
"t": [
102+
"region:sa-east-1",
103+
"account_id:XXXX",
104+
"functionname:integration-tests-js-XXXX-status-code-500s_node12",
105+
"resource:integration-tests-js-XXXX-status-code-500s_node12",
106+
"cold_start:false",
107+
"memorysize:1024",
108+
"datadog_lambda:vX.X.X",
109+
"runtime:nodejs12.x"
110+
],
111+
"v": 1
112+
}
113+
{
114+
"traces": [
115+
[
116+
{
117+
"trace_id":"XXXX",
118+
"span_id":"XXXX",
119+
"parent_id":"XXXX",
120+
"name": "aws.sns",
121+
"resource": "sns-lambda",
122+
"error": 0,
123+
"meta": {
124+
"service": "sns",
125+
"runtime-id":"XXXX",
126+
"operation_name": "aws.sns",
127+
"resource_names": "sns-lambda",
128+
"request_id":"XXXX",
129+
"_inferred_span.tag_source": "self",
130+
"_inferred_span.synchronicity": "async",
131+
"type": "Notification",
132+
"subject": "TestInvoke",
133+
"message_id": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
134+
"topicname": "sns-lambda",
135+
"topic_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda",
136+
"event_subscription_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486",
137+
"language": "javascript"
138+
},
139+
"metrics": {
140+
"_dd.agent_psr": 1,
141+
"_sampling_priority_v1": 1
142+
},
143+
"start":XXXX,
144+
"duration":XXXX,
145+
"service": "integration-tests-js-XXXX-status-code-500s_node12",
146+
"type": "sns"
147+
},
148+
{
149+
"trace_id":"XXXX",
150+
"span_id":"XXXX",
151+
"parent_id":"XXXX",
152+
"name": "aws.lambda",
153+
"resource": "integration-tests-js-XXXX-status-code-500s_node12",
154+
"error": 0,
155+
"meta": {
156+
"service": "integration-tests-js-XXXX-status-code-500s_node12",
157+
"runtime-id":"XXXX",
158+
"function_arn":"XXXX_node12",
159+
"function_version": "$LATEST",
160+
"request_id":"XXXX",
161+
"resource_names": "integration-tests-js-XXXX-status-code-500s_node12",
162+
"functionname": "integration-tests-js-XXXX-status-code-500s_node12",
163+
"datadog_lambda":"XXXX",
164+
"function_trigger.event_source": "sns",
165+
"function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda"
166+
},
167+
"metrics": {
168+
"cold_start": 0,
169+
"_dd.measured": 1,
170+
"_sampling_priority_v1": 1
171+
},
172+
"start":XXXX,
173+
"duration":XXXX,
174+
"service": "aws.lambda",
175+
"type": "serverless"
176+
}
177+
]
178+
]
179+
}
180+
END Duration: XXXX ms Memory Used: XXXX MB
181+
START
182+
{
183+
"e": XXXX,
184+
"m": "aws.lambda.enhanced.invocations",
185+
"t": [
186+
"region:sa-east-1",
187+
"account_id:XXXX",
188+
"functionname:integration-tests-js-XXXX-status-code-500s_node12",
189+
"resource:integration-tests-js-XXXX-status-code-500s_node12",
190+
"cold_start:false",
191+
"memorysize:1024",
192+
"datadog_lambda:vX.X.X",
193+
"runtime:nodejs12.x"
194+
],
195+
"v": 1
196+
}
197+
{
198+
"traces": [
199+
[
200+
{
201+
"trace_id":"XXXX",
202+
"span_id":"XXXX",
203+
"parent_id":"XXXX",
204+
"name": "aws.sqs",
205+
"resource": "my-queue",
206+
"error": 0,
207+
"meta": {
208+
"service": "sqs",
209+
"runtime-id":"XXXX",
210+
"operation_name": "aws.sqs",
211+
"resource_names": "my-queue",
212+
"request_id":"XXXX",
213+
"_inferred_span.tag_source": "self",
214+
"_inferred_span.synchronicity": "async",
215+
"queuename": "my-queue",
216+
"event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue",
217+
"receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...",
218+
"sender_id": "AIDAIENQZJOLO23YVJ4VO"
219+
},
220+
"metrics": {
221+
"_dd.agent_psr": 1,
222+
"retry_count": 1,
223+
"_sampling_priority_v1": 1
224+
},
225+
"start":XXXX,
226+
"duration":XXXX,
227+
"service": "my-queue",
228+
"type": "web"
229+
},
230+
{
231+
"trace_id":"XXXX",
232+
"span_id":"XXXX",
233+
"parent_id":"XXXX",
234+
"name": "aws.lambda",
235+
"resource": "integration-tests-js-XXXX-status-code-500s_node12",
236+
"error": 0,
237+
"meta": {
238+
"service": "integration-tests-js-XXXX-status-code-500s_node12",
239+
"runtime-id":"XXXX",
240+
"function_arn":"XXXX_node12",
241+
"function_version": "$LATEST",
242+
"request_id":"XXXX",
243+
"resource_names": "integration-tests-js-XXXX-status-code-500s_node12",
244+
"functionname": "integration-tests-js-XXXX-status-code-500s_node12",
245+
"datadog_lambda":"XXXX",
246+
"function_trigger.event_source": "sqs",
247+
"function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue"
248+
},
249+
"metrics": {
250+
"cold_start": 0,
251+
"_dd.measured": 1,
252+
"_sampling_priority_v1": 1
253+
},
254+
"start":XXXX,
255+
"duration":XXXX,
256+
"service": "aws.lambda",
257+
"type": "serverless"
258+
}
259+
]
260+
]
261+
}
262+
END Duration: XXXX ms Memory Used: XXXX MB

0 commit comments

Comments
 (0)