Skip to content
Merged
4 changes: 4 additions & 0 deletions sentry_sdk/integrations/boto3/_services/bedrock.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@ def sentry_patched_iter(
yield event
continue

if "messageStop" in event:
finish_reasons: "list[str]" = [event["messageStop"]["stopReason"]]
set_on_span(SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS, finish_reasons)

client = sentry_sdk.get_client()
if (
not has_data_collection_enabled(client.options)
Expand Down
4 changes: 4 additions & 0 deletions tests/integrations/boto3/test_bedrock.py
Original file line number Diff line number Diff line change
Expand Up @@ -992,6 +992,9 @@ def test_converse_stream(
assert span["attributes"][SPANDATA.GEN_AI_REQUEST_MAX_TOKENS] == 1024
assert span["attributes"][SPANDATA.GEN_AI_REQUEST_TEMPERATURE] == 0.7
assert span["attributes"][SPANDATA.GEN_AI_REQUEST_TOP_P] == 0.9
assert span["attributes"][SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS] == [
"end_turn"
]

assert span["attributes"][SPANDATA.GEN_AI_USAGE_OUTPUT_TOKENS] == 20
assert span["attributes"][SPANDATA.GEN_AI_USAGE_TOTAL_TOKENS] == 30
Expand Down Expand Up @@ -1031,6 +1034,7 @@ def test_converse_stream(
assert span["data"][SPANDATA.GEN_AI_REQUEST_MAX_TOKENS] == 1024
assert span["data"][SPANDATA.GEN_AI_REQUEST_TEMPERATURE] == 0.7
assert span["data"][SPANDATA.GEN_AI_REQUEST_TOP_P] == 0.9
assert span["data"][SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS] == ["end_turn"]

assert span["data"][SPANDATA.GEN_AI_USAGE_OUTPUT_TOKENS] == 20
assert span["data"][SPANDATA.GEN_AI_USAGE_TOTAL_TOKENS] == 30
Expand Down
Loading