aws / aws/aws-xray-sdk-python

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

未关闭
#331 4 条评论 0 个 reaction 已指派 1 人 已被 @srprash 认领 在 GitHub 查看
主要语言
Python
星标
338
派生
147
PR 合并指标
30 天内没有已合并 PR

描述

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.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。