aws / aws/aws-xray-sdk-python

Warning 'No subsegment to end' written to logs when X-Ray SDK is disabled.

Open
#331 4 comments 0 reactions 1 assignee Claimed by @srprash View on GitHub
Dominant language
Python
Stars
338
Forks
147
PR merge metrics
No merged PRs in 30d

Description

When running locally, I don't want X-Ray to be enabled. Out of the box, the `sam local start-lambda` logs warnings about the X-Ray SDK, but I'm trying to disable the SDK entirely.

I'm disabling the SDK by checking the environment variable `AWS_SAM_LOCAL`. If it's present and it's value is `'true'`, then the global SDK config is disabled. Then when I patch the desired libraries, nothing happens and there are no `[INFO]` logs. That's good.

```python
from aws_xray_sdk import global_sdk_config as global_xray_sdk_config
from aws_xray_sdk.core import patch, xray_recorder

if environ.get('AWS_SAM_LOCAL', 'false') == 'true':
global_xray_sdk_config.set_sdk_enabled(False)

patch(['boto3', 'requests'])
```

However, I have a function that adds a subsegment, and this is emitting logs even with the X-Ray SDK disabled.

```python
def add_xray_subsegment(name: str, annotations: dict, e: Exception = None) -> None:
with xray_recorder.capture(name) as subsegment:
a = {k: v for k, v in annotations.items() if v is not None}
for k, v in a.items():
subsegment.put_annotation(k, v)
if e:
limit = xray_recorder._max_trace_back
stack = traceback.extract_stack(limit=limit)
subsegment.add_exception(e, stack)
```

> [WARNING] {date} {request-id} No subsegment to end.

While the function still works locally, it's causing delay because people don't expect to see these warnings in the logs and are wasting their time investigating.

I'm guessing this isn't expected behaviour with the SDK disabled; so is this a bug, or is there some other configuration that I can add to remove the warnings?

Thanks.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.