Skip to content

Commit d7acd94

Browse files
Fix tracing so handler errors are tracked (#125)
* Fix tracing so handler errors are tracked * Add integration test for error trace
1 parent 19f948c commit d7acd94

15 files changed

+165
-17
lines changed

integration_tests/serverless-plugin.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,24 @@ functions:
8686
environment:
8787
WITH_PLUGIN: true
8888
DD_FLUSH_TO_LOG: true
89+
# throw-error-traced
90+
throw-error-traced_node10_with_plugin:
91+
handler: throw-error-traced.handle
92+
runtime: nodejs10.x
93+
layers:
94+
- { Ref: Node10LambdaLayer }
95+
environment:
96+
WITH_PLUGIN: true
97+
DD_FLUSH_TO_LOG: true
98+
99+
throw-error-traced_node12_with_plugin:
100+
handler: throw-error-traced.handle
101+
runtime: nodejs12.x
102+
layers:
103+
- { Ref: Node12LambdaLayer }
104+
environment:
105+
WITH_PLUGIN: true
106+
DD_FLUSH_TO_LOG: true
89107

90108
plugins:
91109
- serverless-plugin-datadog

integration_tests/serverless.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,19 @@ functions:
7777
- { Ref: Node12LambdaLayer }
7878
environment:
7979
DD_FLUSH_TO_LOG: true
80+
# throw-error-traced
81+
throw-error-traced_node10:
82+
handler: throw-error-traced.handle
83+
runtime: nodejs10.x
84+
layers:
85+
- { Ref: Node10LambdaLayer }
86+
environment:
87+
DD_FLUSH_TO_LOG: true
88+
89+
throw-error-traced_node12:
90+
handler: throw-error-traced.handle
91+
runtime: nodejs12.x
92+
layers:
93+
- { Ref: Node12LambdaLayer }
94+
environment:
95+
DD_FLUSH_TO_LOG: true
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
START RequestId: XXXX Version: $LATEST
2+
HTTP GET http://127.0.0.1:8124/lambda/hello Headers: ["content-type:application/json","x-datadog-parent-id:XXXX","x-datadog-sampling-priority:2","x-datadog-trace-id:XXXX"]
3+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node10","resource:integration-dev-throw-error-traced_node10","cold_start:true","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
4+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node10","resource:integration-dev-throw-error-traced_node10","cold_start:true","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
5+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at /var/task/node_modules/datadog-lambda-js/dist/index.js:156:62"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"," at process._tickCallback (internal/process/next_tick.js:68:7)"]}
6+
END RequestId: XXXX
7+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
8+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
9+
10+
START RequestId: XXXX Version: $LATEST
11+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node10","resource:integration-dev-throw-error-traced_node10","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
12+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node10","resource:integration-dev-throw-error-traced_node10","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
13+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at /var/task/node_modules/datadog-lambda-js/dist/index.js:156:62"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"]}
14+
END RequestId: XXXX
15+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
16+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
17+
18+
START RequestId: XXXX Version: $LATEST
19+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node10","resource:integration-dev-throw-error-traced_node10","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
20+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node10","resource:integration-dev-throw-error-traced_node10","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
21+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at /var/task/node_modules/datadog-lambda-js/dist/index.js:156:62"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"]}
22+
END RequestId: XXXX
23+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
24+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
START RequestId: XXXX Version: $LATEST
2+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-plugin-dev-throw-error-traced_node10_with_plugin","resource:integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start:true","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
3+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-plugin-dev-throw-error-traced_node10_with_plugin","resource:integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start:true","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
4+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-plugin-dev-throw-error-traced_node10_with_plugin","error":1,"meta":{"_dd.origin":"lambda","service":"integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start":"true","function_arn":"XXXX_node10_with_plugin","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-plugin-dev-throw-error-traced_node10_with_plugin","datadog_lambda":"XXXX","dd_trace":"XXXX","_dd.parent_source":"xray","error.type":"Error","error.msg":"Hello","error.stack":"Error: Hello\n at handle (/var/task/throw-error-traced.js:4:11)\n at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25\n at Object.<anonymous> (/var/task/node_modules/datadog-lambda-js/dist/index.js:156:62)\n at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)\n at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)\n at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)\n at process._tickCallback (internal/process/next_tick.js:68:7)"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":2},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
5+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at Object.<anonymous> (/var/task/node_modules/datadog-lambda-js/dist/index.js:156:62)"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"," at process._tickCallback (internal/process/next_tick.js:68:7)"]}
6+
END RequestId: XXXX
7+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
8+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
9+
10+
START RequestId: XXXX Version: $LATEST
11+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-plugin-dev-throw-error-traced_node10_with_plugin","resource:integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
12+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-plugin-dev-throw-error-traced_node10_with_plugin","resource:integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
13+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-plugin-dev-throw-error-traced_node10_with_plugin","error":1,"meta":{"_dd.origin":"lambda","service":"integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start":"false","function_arn":"XXXX_node10_with_plugin","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-plugin-dev-throw-error-traced_node10_with_plugin","datadog_lambda":"XXXX","dd_trace":"XXXX","_dd.parent_source":"xray","error.type":"Error","error.msg":"Hello","error.stack":"Error: Hello\n at handle (/var/task/throw-error-traced.js:4:11)\n at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25\n at Object.<anonymous> (/var/task/node_modules/datadog-lambda-js/dist/index.js:156:62)\n at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)\n at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)\n at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":2},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
14+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at Object.<anonymous> (/var/task/node_modules/datadog-lambda-js/dist/index.js:156:62)"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"]}
15+
END RequestId: XXXX
16+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
17+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
18+
19+
START RequestId: XXXX Version: $LATEST
20+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-plugin-dev-throw-error-traced_node10_with_plugin","resource:integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
21+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-plugin-dev-throw-error-traced_node10_with_plugin","resource:integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs10.x"],"v":1}
22+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-plugin-dev-throw-error-traced_node10_with_plugin","error":1,"meta":{"_dd.origin":"lambda","service":"integration-plugin-dev-throw-error-traced_node10_with_plugin","cold_start":"false","function_arn":"XXXX_node10_with_plugin","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-plugin-dev-throw-error-traced_node10_with_plugin","datadog_lambda":"XXXX","dd_trace":"XXXX","_dd.parent_source":"xray","error.type":"Error","error.msg":"Hello","error.stack":"Error: Hello\n at handle (/var/task/throw-error-traced.js:4:11)\n at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25\n at Object.<anonymous> (/var/task/node_modules/datadog-lambda-js/dist/index.js:156:62)\n at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)\n at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)\n at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":2},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
23+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at Object.<anonymous> (/var/task/node_modules/datadog-lambda-js/dist/index.js:156:62)"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"]}
24+
END RequestId: XXXX
25+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
26+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
START RequestId: XXXX Version: $LATEST
2+
HTTP GET http://127.0.0.1:8124/lambda/hello Headers: ["content-type:application/json","x-datadog-parent-id:XXXX","x-datadog-sampling-priority:2","x-datadog-trace-id:XXXX"]
3+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node12","resource:integration-dev-throw-error-traced_node12","cold_start:true","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs12.x"],"v":1}
4+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node12","resource:integration-dev-throw-error-traced_node12","cold_start:true","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs12.x"],"v":1}
5+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR [dd.trace_id=XXXX dd.span_id=XXXX] Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at /var/task/node_modules/datadog-lambda-js/dist/index.js:156:62"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"," at processTicksAndRejections (internal/process/task_queues.js:97:5)"]}
6+
END RequestId: XXXX
7+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
8+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
9+
10+
START RequestId: XXXX Version: $LATEST
11+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node12","resource:integration-dev-throw-error-traced_node12","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs12.x"],"v":1}
12+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node12","resource:integration-dev-throw-error-traced_node12","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs12.x"],"v":1}
13+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR [dd.trace_id=XXXX dd.span_id=XXXX] Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at /var/task/node_modules/datadog-lambda-js/dist/index.js:156:62"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"]}
14+
END RequestId: XXXX
15+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
16+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
17+
18+
START RequestId: XXXX Version: $LATEST
19+
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node12","resource:integration-dev-throw-error-traced_node12","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs12.x"],"v":1}
20+
{"e":XXXX,"m":"aws.lambda.enhanced.errors","t":["region:us-east-1","account_id:XXXX","functionname:integration-dev-throw-error-traced_node12","resource:integration-dev-throw-error-traced_node12","cold_start:false","memorysize:1024","datadog_lambda:vX.X.X","runtime:nodejs12.x"],"v":1}
21+
XXXX-XX-XX XX:XX:XX.XXX XXXX-XXXX-XXXX-XXXX-XXXX ERROR [dd.trace_id=XXXX dd.span_id=XXXX] Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:4:11)"," at /var/task/node_modules/datadog-lambda-js/dist/utils/handler.js:150:25"," at /var/task/node_modules/datadog-lambda-js/dist/index.js:156:62"," at step (/var/task/node_modules/datadog-lambda-js/dist/index.js:44:23)"," at Object.next (/var/task/node_modules/datadog-lambda-js/dist/index.js:25:53)"," at fulfilled (/var/task/node_modules/datadog-lambda-js/dist/index.js:16:58)"]}
22+
END RequestId: XXXX
23+
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
24+
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true

0 commit comments

Comments
 (0)