{"_id":"@coralogix/instrumentation-aws-sdk","_rev":"6-cf249fc043908004102c1bac08dd7ea4","name":"@coralogix/instrumentation-aws-sdk","dist-tags":{"latest":"0.75.0"},"versions":{"0.64.0":{"name":"@coralogix/instrumentation-aws-sdk","version":"0.64.0","keywords":["aws","aws-sdk","nodejs","opentelemetry"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation-aws-sdk@0.64.0","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-aws-sdk#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-contrib/issues"},"dist":{"shasum":"011e3271ec6ba18e8f0223e36dcb079dd2ea7e59","tarball":"https://registry.npmjs.org/@coralogix/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.64.0.tgz","fileCount":6,"integrity":"sha512-ld8F6LEKVGRW6GwBTLOumu4M18cFbJFjMaq/uo/z0oY9QHRu5V7Mt7YCnzL4uNfIFZkAK8A2+J894vjzGN3++w==","signatures":[{"sig":"MEQCIEO893g/M//Sc9VohCbCAv1MMtNuq4uI+JEamzVkePOLAiAY8YKmmHTzvCl/ZKyz/geDSL7Uw0bJivq+owQaoSiySA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35767},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"b34b62b38f8a9e1439954dc1c2166437aabb863f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","test":"nyc --no-clean mocha --require '@opentelemetry/contrib-test-utils' 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"tsc -p .","lint:readme":"node ../../scripts/lint-readme.js","prepublishOnly":"npm run compile","version:update":"node ../../scripts/version-update.js","test-all-versions":"tav","compile:with-dependencies":"nx run-many -t compile -p @opentelemetry/instrumentation-aws-sdk"},"_npmUser":{"name":"coralogixnpm","email":"npm@coralogix.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-contrib.git","type":"git","directory":"packages/instrumentation-aws-sdk"},"_npmVersion":"10.8.2","description":"OpenTelemetry instrumentation for `aws-sdk` and `@aws-sdk/client-*` clients for various AWS services","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"npm:@coralogix/instrumentation@^0.208.0","@opentelemetry/semantic-conventions":"^1.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@aws-sdk/types":"^3.370.0","@aws-sdk/client-s3":"^3.85.0","@opentelemetry/api":"^1.3.0","@aws-sdk/client-sfn":"^3.85.0","@aws-sdk/client-sns":"^3.85.0","@aws-sdk/client-sqs":"^3.85.0","@aws-sdk/client-lambda":"^3.85.0","@aws-sdk/client-kinesis":"^3.85.0","@aws-sdk/client-dynamodb":"^3.85.0","@smithy/node-http-handler":"4.4.5","@opentelemetry/sdk-trace-base":"^2.0.0","@aws-sdk/client-bedrock-runtime":"^3.587.0","@aws-sdk/client-secrets-manager":"^3.85.0","@opentelemetry/contrib-test-utils":"^0.55.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation-aws-sdk_0.64.0_1769019828290_0.34071053866977974","host":"s3://npm-registry-packages-npm-production"}},"0.64.1":{"name":"@coralogix/instrumentation-aws-sdk","version":"0.64.1","keywords":["aws","aws-sdk","nodejs","opentelemetry"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation-aws-sdk@0.64.1","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-aws-sdk#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-contrib/issues"},"dist":{"shasum":"ecd29bb4c971ca02d57a667d9059f96e85884832","tarball":"https://registry.npmjs.org/@coralogix/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.64.1.tgz","fileCount":78,"integrity":"sha512-sZoJG3y8MInFeO8vyB+isNsaSS3DHo2hocGqpd+Fzd4m2M2y6Db2yQcvn4Y3JBOSyLKMFMTu2tNhX170aQboog==","signatures":[{"sig":"MEQCIAyU77kz8VIVCLttJMl1T51hzelTdY0ErJpNuq3X1+PcAiAsULSb8QP9WxU3DyPCthN5lGUYwfCl/Pv2dbnlWtqtAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":406713},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"3c61bdf9c30ecf4419d5c995c7f24ef9107c936f","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","test":"nyc --no-clean mocha --require '@opentelemetry/contrib-test-utils' 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"tsc -p .","lint:readme":"node ../../scripts/lint-readme.js","prepublishOnly":"npm run compile","version:update":"node ../../scripts/version-update.js","test-all-versions":"tav","compile:with-dependencies":"nx run-many -t compile -p @opentelemetry/instrumentation-aws-sdk"},"_npmUser":{"name":"coralogixnpm","email":"npm@coralogix.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-contrib.git","type":"git","directory":"packages/instrumentation-aws-sdk"},"_npmVersion":"10.8.2","description":"OpenTelemetry instrumentation for `aws-sdk` and `@aws-sdk/client-*` clients for various AWS services","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"npm:@coralogix/instrumentation@^0.208.0","@opentelemetry/semantic-conventions":"^1.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@aws-sdk/types":"^3.370.0","@aws-sdk/client-s3":"^3.85.0","@opentelemetry/api":"^1.3.0","@aws-sdk/client-sfn":"^3.85.0","@aws-sdk/client-sns":"^3.85.0","@aws-sdk/client-sqs":"^3.85.0","@aws-sdk/client-lambda":"^3.85.0","@aws-sdk/client-kinesis":"^3.85.0","@aws-sdk/client-dynamodb":"^3.85.0","@smithy/node-http-handler":"4.4.5","@opentelemetry/sdk-trace-base":"^2.0.0","@aws-sdk/client-bedrock-runtime":"^3.587.0","@aws-sdk/client-secrets-manager":"^3.85.0","@opentelemetry/contrib-test-utils":"^0.55.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation-aws-sdk_0.64.1_1769088383836_0.029063029736768886","host":"s3://npm-registry-packages-npm-production"}},"0.68.0":{"name":"@coralogix/instrumentation-aws-sdk","version":"0.68.0","keywords":["aws","aws-sdk","nodejs","opentelemetry"],"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","_id":"@coralogix/instrumentation-aws-sdk@0.68.0","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"}],"homepage":"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-aws-sdk#readme","bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-contrib/issues"},"dist":{"shasum":"8744c35a9ffde892d78c3f2a4222b13fc21fddf4","tarball":"https://registry.npmjs.org/@coralogix/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.68.0.tgz","fileCount":78,"integrity":"sha512-YkjqdXEVpvGuehtvnM2aB/T5qlgbWWxSAttVeOqLV6ub1xXBrg1ozNBeM/RsSrNQMmXor08uiYHGpU4aRxGRHg==","signatures":[{"sig":"MEYCIQDQZq0O+jbaOeZkEzBOkpImjbW9z8TZc/BWoag2mq2TfgIhANMDtMX640Qg+3+2JiQEc7e2QC6trmsof2lcL1To34x6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":413771},"main":"build/src/index.js","types":"build/src/index.d.ts","engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"3a9691a699ddd06c3644eec70bf4b50cc4217ba3","scripts":{"tdd":"npm run test -- --watch-extensions ts --watch","test":"nyc --no-clean mocha --require '@opentelemetry/contrib-test-utils' 'test/**/*.test.ts'","clean":"rimraf build/*","watch":"tsc -w","compile":"tsc -p .","lint:readme":"node ../../scripts/lint-readme.js","prepublishOnly":"npm run compile","version:update":"node ../../scripts/version-update.js","test-all-versions":"tav","compile:with-dependencies":"nx run-many -t compile -p @opentelemetry/instrumentation-aws-sdk"},"_npmUser":{"name":"coralogixnpm","email":"npm@coralogix.com"},"repository":{"url":"git+https://github.com/open-telemetry/opentelemetry-js-contrib.git","type":"git","directory":"packages/instrumentation-aws-sdk"},"_npmVersion":"10.8.2","description":"OpenTelemetry instrumentation for `aws-sdk` and `@aws-sdk/client-*` clients for various AWS services","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"npm:@coralogix/instrumentation@^0.213.0","@opentelemetry/semantic-conventions":"^1.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@aws-sdk/types":"^3.370.0","@aws-sdk/client-s3":"^3.85.0","@opentelemetry/api":"^1.3.0","@aws-sdk/client-sfn":"^3.85.0","@aws-sdk/client-sns":"^3.85.0","@aws-sdk/client-sqs":"^3.85.0","@aws-sdk/client-lambda":"^3.85.0","@aws-sdk/client-kinesis":"^3.85.0","@aws-sdk/client-dynamodb":"^3.85.0","@smithy/node-http-handler":"4.4.12","@opentelemetry/sdk-trace-base":"^2.0.0","@aws-sdk/client-bedrock-runtime":"^3.587.0","@aws-sdk/client-secrets-manager":"^3.85.0","@opentelemetry/contrib-test-utils":"^0.60.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/instrumentation-aws-sdk_0.68.0_1773311989122_0.06463545843342411","host":"s3://npm-registry-packages-npm-production"}},"0.75.0":{"name":"@coralogix/instrumentation-aws-sdk","version":"0.75.0","description":"OpenTelemetry instrumentation for `aws-sdk` and `@aws-sdk/client-*` clients for various AWS services","keywords":["aws","aws-sdk","nodejs","opentelemetry"],"homepage":"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-aws-sdk#readme","license":"Apache-2.0","author":{"name":"OpenTelemetry Authors"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-contrib/issues"},"main":"build/src/index.js","types":"build/src/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/coralogix/opentelemetry-js-contrib.git","directory":"packages/instrumentation-aws-sdk"},"scripts":{"clean":"rimraf build/*","compile:with-dependencies":"nx run-many -t compile -p @opentelemetry/instrumentation-aws-sdk","compile":"tsc -p .","lint:readme":"node ../../scripts/lint-readme.js","prepublishOnly":"npm run compile","tdd":"npm run test -- --watch-extensions ts --watch","test":"nyc --no-clean mocha --require '@opentelemetry/contrib-test-utils' 'test/**/*.test.ts'","test-all-versions":"tav","version:update":"node ../../scripts/version-update.js","watch":"tsc -w"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"},"dependencies":{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"npm:@coralogix/instrumentation@^0.220.0","@opentelemetry/semantic-conventions":"^1.34.0"},"devDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.587.0","@aws-sdk/client-dynamodb":"^3.85.0","@aws-sdk/client-kinesis":"^3.85.0","@aws-sdk/client-lambda":"^3.85.0","@aws-sdk/client-s3":"^3.85.0","@aws-sdk/client-secrets-manager":"^3.85.0","@aws-sdk/client-sfn":"^3.85.0","@aws-sdk/client-sns":"^3.85.0","@aws-sdk/client-sqs":"^3.85.0","@aws-sdk/types":"^3.370.0","@opentelemetry/api":"^1.3.0","@opentelemetry/contrib-test-utils":"^0.67.0","@opentelemetry/sdk-trace-base":"^2.0.0","@smithy/node-http-handler":"4.4.14"},"engines":{"node":"^18.19.0 || >=20.6.0"},"gitHead":"0bba7e6f2845a99b751108ac423460014dc844f4","_id":"@coralogix/instrumentation-aws-sdk@0.75.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-ABeONVXeARrR3NFrbKTZPKv2FKFMAPZVKr6QuZkX5sPt3KgMydPh2Y+nvhfLoOPndzkr5pD7EeVyuYf/8TP9Cg==","shasum":"f64bdc8273bb9f8573b4188288ba24908e38a1d8","tarball":"https://registry.npmjs.org/@coralogix/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.75.0.tgz","fileCount":78,"unpackedSize":393304,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@coralogix%2finstrumentation-aws-sdk@0.75.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHgUg4VXl9cdAhabuTczqZXL+6J76dEOj3MIfNR3ovGmAiEAs3PtI+V6qfCz7SLKjjgKDpvCv3yJVfwsGDHqSocvX+k="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd974416-74b9-48d1-bedd-9198cfb4f030"}},"directories":{},"maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"},{"name":"ashley-hunter-cx","email":"ashley.hunter@coralogix.com"},{"name":"cx-shaharkazaz","email":"shahar.kazaz@coralogix.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/instrumentation-aws-sdk_0.75.0_1783100955928_0.30936660819411466"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-21T18:23:48.223Z","modified":"2026-07-03T17:49:16.360Z","0.64.0":"2026-01-21T18:23:48.421Z","0.64.1":"2026-01-22T13:26:23.967Z","0.68.0":"2026-03-12T10:39:49.292Z","0.75.0":"2026-07-03T17:49:16.074Z"},"bugs":{"url":"https://github.com/open-telemetry/opentelemetry-js-contrib/issues"},"author":{"name":"OpenTelemetry Authors"},"license":"Apache-2.0","homepage":"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-aws-sdk#readme","keywords":["aws","aws-sdk","nodejs","opentelemetry"],"repository":{"type":"git","url":"git+https://github.com/coralogix/opentelemetry-js-contrib.git","directory":"packages/instrumentation-aws-sdk"},"description":"OpenTelemetry instrumentation for `aws-sdk` and `@aws-sdk/client-*` clients for various AWS services","maintainers":[{"name":"coralogixnpm","email":"npm@coralogix.com"},{"name":"ashley-hunter-cx","email":"ashley.hunter@coralogix.com"},{"name":"cx-shaharkazaz","email":"shahar.kazaz@coralogix.com"}],"readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n\n[![NPM Published Version][npm-img]][npm-url]\n[![Apache License][license-image]][license-image]\n\n[component owners](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/.github/component_owners.yml): @blumamir @jj22ee @trivikr\n\nThis module provides automatic instrumentation for the [AWS SDK for JavaScript v3](https://github.com/aws/aws-sdk-js-v3) modules, which may be loaded using the [`@opentelemetry/sdk-trace-node`](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node) package and is included in the [`@opentelemetry/auto-instrumentations-node`](https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node) bundle.\n\nIf total installation size is not constrained, it is recommended to use the [`@opentelemetry/auto-instrumentations-node`](https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node) bundle with [@opentelemetry/sdk-node](`https://www.npmjs.com/package/@opentelemetry/sdk-node`) for the most seamless instrumentation experience.\n\nCompatible with OpenTelemetry JS API and SDK `1.0+`.\n\n## Installation\n\n```bash\nnpm install --save @opentelemetry/instrumentation-aws-sdk\n```\n\n## Supported Versions\n\n- `@aws-sdk/client-*` versions `>=3.0.0 <4`\n\n## Usage\n\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://www.npmjs.com/package/@opentelemetry/instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst {\n  AwsInstrumentation,\n} = require('@opentelemetry/instrumentation-aws-sdk');\n\nconst provider = new NodeTracerProvider();\nprovider.register();\n\nregisterInstrumentations({\n  instrumentations: [\n    new AwsInstrumentation({\n      // see under for available configuration\n    }),\n  ],\n});\n```\n\n### aws-sdk Instrumentation Options\n\naws-sdk instrumentation has few options available to choose from. You can set the following:\n\n| Options                                   | Type                                     | Description                                                                                                                                                                     |\n| ----------------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `preRequestHook`                          | `AwsSdkRequestCustomAttributeFunction`   | Hook called before request send, which allow to add custom attributes to span.                                                                                                  |\n| `responseHook`                            | `AwsSdkResponseCustomAttributeFunction`  | Hook for adding custom attributes when response is received from aws.                                                                                                           |\n| `exceptionHook`                           | `AwsSdkExceptionCustomAttributeFunction` | Hook for adding custom attributes when exception is received from aws.                                                                                                          |\n| `suppressInternalInstrumentation`         | `boolean`                                | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans.                                                                      |\n| `sqsExtractContextPropagationFromPayload` | `boolean`                                | Will parse and extract context propagation headers from SQS Payload, false by default. [When should it be used?](./doc/sns.md#integration-with-sqs)                             |\n| `dynamoDBStatementSerializer`             | `AwsSdkDynamoDBStatementSerializer`      | AWS SDK instrumentation will serialize DynamoDB commands to the `db.statement` attribute using the specified function. Defaults to using a serializer that returns `undefined`. |\n\n## Span Attributes\n\nThe instrumentations are collecting the following attributes:\n\n| Attribute Name | Type   | Description                                                                                                                                                                                                                                                                                         | Example                     |\n| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\n| `rpc.system`   | string | Always equals \"aws-api\"                                                                                                                                                                                                                                                                             |                             |\n| `rpc.method`   | string | The name of the operation corresponding to the request, as returned by the AWS SDK. If the SDK does not provide a way to retrieve a name, the name of the command SHOULD be used, removing the suffix `Command` if present, resulting in a PascalCase name with no spaces.                          | `PutObject`                 |\n| `rpc.service`  | string | The name of the service to which a request is made, as returned by the AWS SDK. If the SDK does not provide a away to retrieve a name, the name of the SDK's client interface for a service SHOULD be used, removing the suffix `Client` if present, resulting in a PascalCase name with no spaces. | `S3`, `DynamoDB`, `Route53` |\n| `cloud.region` | string | Region name for the request                                                                                                                                                                                                                                                                         | \"eu-west-1\"                 |\n\n### Custom User Attributes\n\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object and the corresponding span.\nThis hook can be used to add custom attributes to the span with any logic.\nFor example, user can add interesting attributes from the `request.params`, and write custom logic based on the service and operation.\nUsage example:\n\n```js\nawsInstrumentationConfig = {\n  preRequestHook: (span, request) => {\n    if (span.serviceName === 's3') {\n      span.setAttribute('s3.bucket.name', request.commandInput['Bucket']);\n    }\n  },\n};\n```\n\n### Specific Service Logic\n\nAWS contains dozens of services accessible with the JS SDK. For many services, the default attributes specified above are enough, but other services have specific [trace semantic conventions](https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/trace/semantic_conventions), or need to inject/extract intra-process context, or set intra-process context correctly.\n\nSpecific service logic currently implemented for:\n\n- [SQS](./doc/sqs.md)\n- [SNS](./doc/sns.md)\n- [Lambda](./doc/lambda.md)\n- DynamoDb\n- Amazon Bedrock Runtime (See the [GenAI semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/).)\n\n## Potential Side Effects\n\nThe instrumentation is doing best effort to support the trace specification of OpenTelemetry. For SQS, it involves defining new attributes on the `Messages` array, as well as on the manipulated types generated from this array (to set correct trace context for a single SQS message operation). Those properties are defined as [non-enumerable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties) properties, so they have minimum side effect on the app. They will, however, show when using the `Object.getOwnPropertyDescriptors` and `Reflect.ownKeys` functions on SQS `Messages` array and for each `Message` in the array.\n\n## Semantic Conventions\n\nThis package emits telemetry using a mix of Semantic Convention versions. While not ideal, this is a result of there being a number of separate AWS services instrumented with independent maintenance.\n\n- As a baseline, initial implementations follow [Version 1.7.0](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/semantic_conventions/README.md).\n- SQS instrumentation was [updated](https://github.com/open-telemetry/opentelemetry-js-contrib/pull/2345) to follow v1.36.0.\n\nAttributes collected (this list is currently not exhaustive):\n\n| Attribute                                        | Short Description                                                                              | Service  |\n| ------------------------------------------------ | ---------------------------------------------------------------------------------------------- | -------- |\n| `http.status_code` / `http.response.status_code` | (aws-sdk) HTTP response status code. See \"HTTP Semantic Convention migration\" note below.      |          |\n| `rpc.method`                                     | The name of the (logical) method being called.                                                 |          |\n| `rpc.service`                                    | The full (logical) name of the service being called.                                           |          |\n| `rpc.system`                                     | A string identifying the remoting system.                                                      |          |\n| `cloud.region`                                   | The AWS Region where the requested service is being accessed.                                  |          |\n| `aws.dynamodb.attribute_definitions`             | The JSON-serialized value of each item in the `AttributeDefinitions` request field.            | dynamodb |\n| `aws.dynamodb.consistent_read`                   | The value of the `ConsistentRead` request parameter.                                           | dynamodb |\n| `aws.dynamodb.consumed_capacity`                 | The JSON-serialized value of each item in the `ConsumedCapacity` response field.               | dynamodb |\n| `aws.dynamodb.count`                             | The value of the `Count` response parameter.                                                   | dynamodb |\n| `aws.dynamodb.exclusive_start_table`             | The value of the `ExclusiveStartTableName` request parameter.                                  | dynamodb |\n| `aws.dynamodb.global_secondary_index_updates`    | The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field. | dynamodb |\n| `aws.dynamodb.global_secondary_indexes`          | The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.          | dynamodb |\n| `aws.dynamodb.index_name`                        | The value of the `IndexName` request parameter.                                                | dynamodb |\n| `aws.dynamodb.item_collection_metrics`           | The JSON-serialized value of the `ItemCollectionMetrics` response field.                       | dynamodb |\n| `aws.dynamodb.limit`                             | The value of the `Limit` request parameter.                                                    | dynamodb |\n| `aws.dynamodb.local_secondary_indexes`           | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.           | dynamodb |\n| `aws.dynamodb.projection`                        | The value of the `ProjectionExpression` request parameter.                                     | dynamodb |\n| `aws.dynamodb.provisioned_read_capacity`         | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.                  | dynamodb |\n| `aws.dynamodb.provisioned_write_capacity`        | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.                 | dynamodb |\n| `aws.dynamodb.scan_forward`                      | The value of the `ScanIndexForward` request parameter.                                         | dynamodb |\n| `aws.dynamodb.scanned_count`                     | The value of the `ScannedCount` response parameter.                                            | dynamodb |\n| `aws.dynamodb.segment`                           | The value of the `Segment` request parameter.                                                  | dynamodb |\n| `aws.dynamodb.select`                            | The value of the `Select` request parameter.                                                   | dynamodb |\n| `aws.dynamodb.table_count`                       | The number of items in the `TableNames` response parameter.                                    | dynamodb |\n| `aws.dynamodb.table_names`                       | The keys in the `RequestItems` object field.                                                   | dynamodb |\n| `aws.dynamodb.total_segments`                    | The value of the `TotalSegments` request parameter.                                            | dynamodb |\n| `db.name` / `db.namespace`                       | The name of the database (TableName). See \"Database Semantic Convention migration\" note below. | dynamodb |\n| `db.operation` / `db.operation.name`             | The name of the operation. See \"Database Semantic Convention migration\" note below.            | dynamodb |\n| `db.statement` / `db.query.text`                 | The database statement. See \"Database Semantic Convention migration\" note below.               | dynamodb |\n| `db.system` / `db.system.name`                   | Database system identifier. See \"Database Semantic Convention migration\" note below.           | dynamodb |\n| `faas.execution`                                 | The execution ID of the current function execution.                                            | lambda   |\n| `faas.invoked_name`                              | The name of the invoked function.                                                              | lambda   |\n| `faas.invoked_provider`                          | The cloud provider of the invoked function.                                                    | lambda   |\n| `faas.invoked_region`                            | The cloud region of the invoked function.                                                      | lambda   |\n| `messaging.destination`                          | The message destination name.                                                                  | sns, sqs |\n| `messaging.destination_kind`                     | The kind of message destination.                                                               | sns, sqs |\n| `messaging.system`                               | A string identifying the messaging system.                                                     | sns, sqs |\n| `messaging.operation`                            | A string identifying the kind of message consumption.                                          | sqs      |\n| `messaging.message_id`                           | A value used by the messaging system as an identifier for the message.                         | sqs      |\n| `messaging.url`                                  | The connection string.                                                                         | sqs      |\n\n### HTTP Semantic Convention migration\n\nHTTP semantic conventions (semconv) were stabilized in v1.23.0, and a [migration process](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/non-normative/http-migration.md#http-semantic-convention-stability-migration)\nwas defined.  `instrumentation-aws-sdk` adds some minimal HTTP-related\nattributes on created spans. Starting with `instrumentation-aws-sdk` version\n0.61.0, the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable can be used to\ncustomize which HTTP semantic conventions are used for those HTTP-related\nattributes.\n\nTo select which semconv version(s) is emitted from this instrumentation, use the\n`OTEL_SEMCONV_STABILITY_OPT_IN` environment variable.\n\n- `http`: emit the new (stable) v1.23.0+ semantics\n- `http/dup`: emit **both** the old v1.7.0 and the new (stable) v1.23.0+ semantics\n- By default, if `OTEL_SEMCONV_STABILITY_OPT_IN` includes neither of the above tokens, the old v1.7.0 semconv is used.\n\nFor this instrumentation, the only impacted attributes are as follows:\n\n| v1.7.0 semconv     | v1.23.0 semconv             | Short Description         |\n| ------------------ | --------------------------- | ------------------------- |\n| `http.status_code` | `http.response.status_code` | HTTP response status code |\n\nSee the [HTTP semconv migration plan for OpenTelemetry JS instrumentations](https://github.com/open-telemetry/opentelemetry-js/issues/5646) for more details.\n\n### Database Semantic Convention migration\n\nDatabase semantic conventions (semconv) were stabilized in v1.33.0, and a [migration process](https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/)\nwas defined. For DynamoDB operations, `instrumentation-aws-sdk` emits database-related\nattributes. The `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable can be used to\ncustomize which database semantic conventions are used.\n\nTo select which semconv version(s) is emitted from this instrumentation, use the\n`OTEL_SEMCONV_STABILITY_OPT_IN` environment variable.\n\n- `database`: emit the new (stable) v1.33.0+ semantics\n- `database/dup`: emit **both** the old v1.7.0 and the new (stable) v1.33.0+ semantics\n- By default, if `OTEL_SEMCONV_STABILITY_OPT_IN` includes neither of the above tokens, the old v1.7.0 semconv is used.\n\nFor DynamoDB instrumentation, the impacted attributes are as follows:\n\n| v1.7.0 semconv | v1.33.0 semconv     | Short Description                                 |\n| -------------- | ------------------- | ------------------------------------------------- |\n| `db.system`    | `db.system.name`    | Database system identifier                        |\n| `db.name`      | `db.namespace`      | The database name (TableName for DynamoDB)        |\n| `db.operation` | `db.operation.name` | The name of the operation being executed          |\n| `db.statement` | `db.query.text`     | The database statement (if serializer configured) |\n\nSee the [database migration guide](https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/) for details.\n\n## Useful links\n\n- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>\n- For more about OpenTelemetry JavaScript: <https://github.com/open-telemetry/opentelemetry-js>\n- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]\n\n## License\n\nApache 2.0 - See [LICENSE][license-url] for more information.\n\n[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions\n[license-url]: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/LICENSE\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat\n[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation-aws-sdk\n[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation-aws-sdk.svg\n","readmeFilename":"README.md"}