test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation - #21543

Closed
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage
Closed

test(aws-serverless): Add integration coverage for aws-sdk service instrumentation#21543
mydea wants to merge 2 commits into
developfrom
test/aws-sdk-instrumentation-coverage

Conversation

@mydea

Copy link
Copy Markdown
Member

Summary

The vendored @opentelemetry/instrumentation-aws-sdk had almost no test coverage — only S3 PutObject was exercised, leaving DynamoDB, SQS, SNS, Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service-extension code) completely untested.

This adds nock-based integration tests (mirroring the existing S3 test) that lock in the current span output (name, op, origin, and service-specific attributes) for every service the SDK instruments:

  • S3 — expanded to PutObject, GetObject, and an errored GetObject (status: internal_error)
  • DynamoDB — PutItem + Query (op: db, db.* + aws.dynamodb.*)
  • SQS — SendMessage + ReceiveMessage (messaging.*, PRODUCER/CONSUMER, message id, batch count)
  • SNS — Publish (messaging.*, topic ARN)
  • Lambda — Invoke (faas.*)
  • Kinesis — PutRecord (stream name)
  • SecretsManager — GetSecretValue (secret ARN)
  • StepFunctions — StartExecution (state machine ARN)

This is step 1 of streamlining the vendored aws-sdk instrumentation — establishing a safety net so the subsequent unused-code cleanup, lint fixes, and Sentry-API migration (steps 2–4) can be done with confidence.

Notes for reviewers

  • The new @aws-sdk/client-* packages are pinned to 3.1041.0 (matching the existing S3 dep). Newer clients route their middleware through @smithy/core, which the current instrumentation does not patch, so they aren't instrumented at all — see the follow-up issue for details. Pinning keeps the tests exercising the code paths the instrumentation actually supports today.
  • The Kinesis client is forced onto the HTTP/1 request handler (NodeHttpHandler) because it defaults to HTTP/2, which nock cannot intercept (it was otherwise silently reaching real AWS).

Addresses step 1 of #20944

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 4dfe534. Configure here.

…strumentation
The vendored `@opentelemetry/instrumentation-aws-sdk` had almost no test
coverage - only S3 `PutObject` was exercised, leaving DynamoDB, SQS, SNS,
Lambda, Kinesis, SecretsManager and StepFunctions (~97% of the service
extension code) completely untested.
This adds `nock`-based integration tests (mirroring the existing S3 test)
covering the span name, op, origin and service-specific attributes for each
service the SDK instruments:
* S3 - expanded to PutObject, GetObject and an errored GetObject
* DynamoDB - PutItem + Query (db.* attributes, op `db`)
* SQS - SendMessage + ReceiveMessage (messaging.* attributes, PRODUCER/CONSUMER)
* SNS - Publish (messaging.* attributes, topic ARN)
* Lambda - Invoke (faas.* attributes)
* Kinesis - PutRecord (stream name)
* SecretsManager - GetSecretValue (secret ARN)
* StepFunctions - StartExecution (state machine ARN)
This is step 1 of streamlining the vendored aws-sdk instrumentation - the
tests lock in current behavior so the upcoming cleanup and Sentry-API
migration can be done safely.
Notes:
* The new `@aws-sdk/client-*` packages are pinned to `3.1041.0` (matching the
existing S3 dep) because newer clients route through `@smithy/core`, which
the current instrumentation does not patch.
* The Kinesis client is forced onto the HTTP/1 request handler because it
defaults to HTTP/2, which `nock` cannot intercept.
Addresses step 1 of #20944
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mydea
mydeaforce-pushed the test/aws-sdk-instrumentation-coverage branch from 4dfe534 to 4e7eb9aCompareJune 15, 2026 12:56
@mydea
mydea marked this pull request as ready for review June 15, 2026 13:03
@mydea
mydea requested a review from a team as a code ownerJune 15, 2026 13:03
@mydea
mydea requested review from JPeer264 and andreiborza and removed request for a teamJune 15, 2026 13:03
@mydea

Copy link
Copy Markdown
MemberAuthor

Replaced by #21548

@mydeamydea closed this Jun 15, 2026
@JPeer264
JPeer264 deleted the test/aws-sdk-instrumentation-coverage branch June 15, 2026 16:09
Sign up for freeto 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

@mydea