aws / aws/aws-xray-sdk-python

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

オープン
#331 コメント 4 件 リアクション 0 件 担当者 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 を短くまとめたダイジェスト。