Closed
Description
Xray PR to fix this: aws/aws-xray-sdk-python#284
Proof of concept code:
import json
from aws_lambda_powertools import Tracer
import boto3
tracer = Tracer()
@tracer.capture_method
def my_method():
sts = boto3.client("sts")
sts.get_caller_identity()
raise RuntimeError("Error happens!")
@tracer.capture_lambda_handler
def lambda_handler(event, context):
my_method()
return {"statusCode": 200, "body": json.dumps({"hello": "world"})}
Logs
[ERROR] 2021-04-05T05:33:00.732Z 8a4d5027-4faa-4f4f-8d08-df63b7ea72ed Failed to serialize ## lambda_handler
Traceback (most recent call last):
File "/var/task/aws_lambda_powertools/tracing/tracer.py", line 313, in decorate
response = lambda_handler(event, context, **kwargs)
File "/var/task/app.py", line 17, in lambda_handler
my_method()
File "/var/task/aws_lambda_powertools/tracing/tracer.py", line 612, in decorate
response = method(*args, **kwargs)
File "/var/task/app.py", line 12, in my_method
raise RuntimeError("Error happens!")
RuntimeError: Error happens!
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/var/task/aws_xray_sdk/core/models/entity.py", line 263, in serialize
return json.dumps(self.to_dict(), default=str)
File "/var/task/aws_xray_sdk/core/models/subsegment.py", line 157, in to_dict
subsegment_dict = super(Subsegment, self).to_dict()
File "/var/task/aws_xray_sdk/core/models/entity.py", line 284, in to_dict
entity_dict[key]['working_directory'] = self.cause['working_directory']
TypeError: string indices must be integers
Xray screenshot:
Xray screenshot without @tracer.capture_method
:
Metadata
Metadata
Assignees
Type
Projects
Status
Triage