Skip to content

test(aws-serverless): Add Bedrock integration tests (Converse and InvokeModel)#22144

Closed
andreiborza wants to merge 3 commits into
ab/aws-sdk-serverlessfrom
ab/aws-sdk-bedrock-tests
Closed

test(aws-serverless): Add Bedrock integration tests (Converse and InvokeModel)#22144
andreiborza wants to merge 3 commits into
ab/aws-sdk-serverlessfrom
ab/aws-sdk-bedrock-tests

Conversation

@andreiborza

Copy link
Copy Markdown
Member

Before submitting a pull request, please take a look at our
Contributing guidelines and verify:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).
  • Link an issue if there is one related to your pull request. If no issue is linked, one will be auto-generated and linked.

Closes #issue_link_here

andreiborza and others added 3 commits July 9, 2026 15:10
Adds an OTel-free, orchestrion diagnostics-channel implementation of the aws-sdk
(v3) instrumentation to `@sentry/server-utils`.

The integration subscribes to the `orchestrion:<smithy-pkg>:send` channels the
transform injects into the smithy `Client.prototype.send`
(`@smithy/core`, `@smithy/smithy-client`, `@aws-sdk/smithy-client`) and emits the
same spans as the OTel `@opentelemetry/instrumentation-aws-sdk` integration for
every service (S3, DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager,
StepFunctions, Bedrock), with a distinct `auto.aws.orchestrion.aws-sdk` origin.
SQS/SNS/Lambda trace propagation uses Sentry-native `sentry-trace`/`baggage`
headers instead of OTel `propagation.inject`.

Registered in `channelIntegrations`, so it is reachable via `@sentry/node`'s
`experimentalUseDiagnosticsChannelInjection()`. No default behavior changes yet;
the `@sentry/aws-serverless` swap follows in the next PR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ostics-channel opt-in

Wires the orchestrion aws-sdk channel integration into `@sentry/aws-serverless`,
where the OTel `Aws` integration ships as a default today.

`@sentry/node` exposes a reusable `applyDiagnosticsChannelInjectionIntegrations`
helper (extracted from its `getDefaultIntegrations`), and `@sentry/aws-serverless`
uses it to swap the OTel `Aws` integration for the channel version when the app
opts in via `experimentalUseDiagnosticsChannelInjection()` (now re-exported from
the aws-serverless SDK). No change when the opt-in isn't used.

The existing `aws-integration` node-integration-tests assert the swapped origin
via `isOrchestrionEnabled()`, so both the OTel and diagnostics-channel paths are
covered by the same suites across both smithy stacks and ESM/CJS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…okeModel)

Covers the Bedrock gen_ai spans emitted by the aws-sdk integration for the
non-streaming `Converse` and `InvokeModel` commands (request params, token
usage, finish reasons), nock-mocked and asserted against both the OTel and
diagnostics-channel paths via `isOrchestrionEnabled()`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 27.59 kB - -
@sentry/browser - with treeshaking flags 26.03 kB - -
@sentry/browser (incl. Tracing) 46.34 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 48.13 kB - -
@sentry/browser (incl. Tracing, Profiling) 51.12 kB - -
@sentry/browser (incl. Tracing, Replay) 85.62 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 75.26 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 90.32 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 102.97 kB - -
@sentry/browser (incl. Feedback) 44.76 kB - -
@sentry/browser (incl. sendFeedback) 32.38 kB - -
@sentry/browser (incl. FeedbackAsync) 37.51 kB - -
@sentry/browser (incl. Metrics) 28.67 kB - -
@sentry/browser (incl. Logs) 28.91 kB - -
@sentry/browser (incl. Metrics & Logs) 29.59 kB - -
@sentry/react 29.38 kB - -
@sentry/react (incl. Tracing) 48.61 kB - -
@sentry/vue 33.03 kB - -
@sentry/vue (incl. Tracing) 48.24 kB -0.12% -57 B 🔽
@sentry/svelte 27.61 kB - -
CDN Bundle 30 kB - -
CDN Bundle (incl. Tracing) 48.32 kB - -
CDN Bundle (incl. Logs, Metrics) 31.57 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 49.64 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 70.81 kB - -
CDN Bundle (incl. Tracing, Replay) 85.84 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 87.14 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 91.64 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 92.92 kB - -
CDN Bundle - uncompressed 89.35 kB - -
CDN Bundle (incl. Tracing) - uncompressed 146.1 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 94.05 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 150.07 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 218.78 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 265.3 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 269.26 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 279 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 282.95 kB - -
@sentry/nextjs (client) 51.16 kB - -
@sentry/sveltekit (client) 46.78 kB - -
@sentry/core/server 78.42 kB - -
@sentry/core/browser 64.74 kB - -
@sentry/node-core 62.72 kB - -
@sentry/node 125.37 kB - -
⛔️ @sentry/node (incl. diagnostics channel injection) (max: 140 kB) 141.06 kB +1.82% +2.52 kB 🔺
@sentry/node/import (ESM hook with diagnostics-channel injection) 69.95 kB - -
@sentry/node/light 50.72 kB - -
@sentry/node - without tracing 74.06 kB - -
@sentry/aws-serverless 85.5 kB +0.01% +1 B 🔺
@sentry/cloudflare (withSentry) - minified 181.71 kB - -
@sentry/cloudflare (withSentry) 449.16 kB - -

View base workflow run

@andreiborza andreiborza force-pushed the ab/aws-sdk-serverless branch from 62bb424 to bdc838e Compare July 9, 2026 21:22
@andreiborza andreiborza closed this Jul 9, 2026
@andreiborza andreiborza deleted the ab/aws-sdk-bedrock-tests branch July 9, 2026 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant