Skip to content

Commit d992b41

Browse files
committed
Instrument response streaming in aiobotocore converse
1 parent b8488a3 commit d992b41

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

newrelic/hooks/external_aiobotocore.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,17 @@ async def wrap_client__make_api_call(wrapped, instance, args, kwargs):
149149
bedrock_attrs = extract_bedrock_converse_attrs(
150150
args[1], response, response_headers, model, span_id, trace_id
151151
)
152+
153+
if response_streaming:
154+
# Wrap EventStream object here to intercept __iter__ method instead of instrumenting class.
155+
# This class is used in numerous other services in botocore, and would cause conflicts.
156+
response["stream"] = stream = AsyncEventStreamWrapper(response["stream"])
157+
stream._nr_ft = ft or None
158+
stream._nr_bedrock_attrs = bedrock_attrs or {}
159+
stream._nr_model_extractor = stream_extractor or None
160+
stream._nr_is_converse = True
161+
return response
162+
152163
else:
153164
bedrock_attrs = {
154165
"request_id": response_headers.get("x-amzn-requestid"),

0 commit comments

Comments
 (0)