{"_id":"opentelemetry-instrumentation-aws-sdk","_rev":"51-5b77fb97575c144516c1f9c2934b195c","name":"opentelemetry-instrumentation-aws-sdk","dist-tags":{"latest":"0.26.0","alpha":"0.0.0-2021-10-20--09-32","canary":"0.4.1-aws-import-one-serivce.0","dev":"0.3.0-dev.0"},"versions":{"0.0.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.15.0","@opentelemetry/instrumentation":"^0.15.0","@opentelemetry/semantic-conventions":"^0.15.0","opentelemetry-propagation-utils":"^0.2.1"},"devDependencies":{"@opentelemetry/api":"^0.15.0","@opentelemetry/node":"^0.15.0","@opentelemetry/tracing":"^0.15.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"dbf57cd4ea0c9eb5e570c3e8ac194eaaf45d04d4","_id":"opentelemetry-instrumentation-aws-sdk@0.0.1","_nodeVersion":"12.20.1","_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (linux)","dist":{"integrity":"sha512-zbhtZEzTEd2VI8PgS+z16UqRZlYFCUgPQZ+C4H2HBNlerVuM4TeeUCoommOXXiPzGx1JfBVY9Yk8mc5LLNI/BQ==","shasum":"f0f5244e92e361d9690005f1e0a3a3fbe63e52bb","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.1.tgz","fileCount":24,"unpackedSize":53903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKUApCRA9TVsSAnZWagAAaVcQAIkT+vSIpPgAvrsfX59T\nM7JrEf9rY+VZpel8XMtcpE+1nwK5ziUR5onLQ8ZL3AZagjKXp22dH4j8/TJX\nLRsD21aCfCQTqLXL1AA6A7pmMJD9vlVOWjPVRkj6yhXP/VMYbFad1c/+RdWW\nqQfnYlIqv1DkMJz+JLQlGQrI2ozjqB1n4sMkvvx/qu+bsiBtPbCjlKrY3EgB\nAWT3vRTds8BZaS1sFJ5srbZCStwM2jDOVqbzTFr2DM6SvFRELa17vl24wqY/\n8plvgsqr12h58BiT/Lj7beysZ9JUH0CkihD4iDyZjbIrVTi9c3ln8QICUKkR\n2j08a4Fay+cmzUoNdRxQsdyYwtqH7JHHqOHDNKMmGyB2ADQtcW27M4RH82X/\nyl+JRiYoCtYuwAZvqF3ZwGAPCvyXc/loLNtbhqQs+dOAjCmwr42fDPZAZ8UU\nJICRhgoPd9NoAGERvTeaPdQzbN5DK4/tEW2mLn9R3CBNJvzh9aakjROu4D5J\n2zGgvZxJMHdH3CLE7SH3bpWxwy+z3sI1h2v7oLXsd29pQt6QWEZlJM4+7PP3\nwh70fl4RxYgfdw+insoklO3qfab6PfyzssrUg+jOOWQVC4T1W9VhhSdsK9Y8\nKGGo4CKwD+rXMfmL8SQZf/elpp0wVvuRLkrbPgapd0zyvPZs8niPkEOB+jZS\ncv2H\r\n=q3Hq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDY6GNdsXGlLWtyxEqjz+WAggUcwUCQPP30f/QayoKU+AiACzoVlEspXaNelVEjt9eNAxUHJY0+AZjHVGR7aeWLzGw=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.1_1613316137117_0.8335232366122924"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.2":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.2","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.15.0","@opentelemetry/instrumentation":"^0.15.0","@opentelemetry/semantic-conventions":"^0.15.0","opentelemetry-propagation-utils":"^0.2.1"},"devDependencies":{"@opentelemetry/api":"^0.15.0","@opentelemetry/node":"^0.15.0","@opentelemetry/tracing":"^0.15.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"e8d21f42b740d31a42efb331b48bdb92e6e0fe05","_id":"opentelemetry-instrumentation-aws-sdk@0.0.2","_nodeVersion":"12.20.1","_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (linux)","dist":{"integrity":"sha512-aCc6p/ezdxsIfpwXLvXHyj1wdUpxq4V/xkn6DQnX931lHV9g1zI9oTy66IR05h4KfW8fthnhG+VQVAMJ+xU3SA==","shasum":"26d53846ddc35befaa2caf81a7f942bcbe765fb6","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.2.tgz","fileCount":24,"unpackedSize":54375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK/UmCRA9TVsSAnZWagAA/1UP/jUMtzruUAr10cfwKyjQ\nsrs0sygoG2N5o4dLbK6GdjjUM/HUXGDJn9sdDYmM6zVEZ5YR5MlOcuO4Jfux\nRxuEUajipNlOFf36gSV8LrqrKJjPV68HBmABsTIVBojEfgH63lBwfrECBtpa\nO0oinZWJ0MdJeg52zVivPQw+YcsfgjRYEmBhHUGitQtjZwJNx2L9q0xUcN5C\nV5O323mj9oFIxz9/1k8h8gTbHfr0chTl8Q6nRc95RIsVhs56fP4/LVXWSvbS\nQs9b2Od35jfjAQr6a1y5YvZDGV9VVyuBCVOZbHpb0wbX2BzHVOSVaMde7IDN\nWz8nGU+sbTIFFknExTYpAATWnasNRaZKZaHFO16qQKmqlqacPfyH2n0eogEn\n5twZyvmZ6IsAUw/IvF/o73kKIfTN+E05XQHbFsjXnsJjcxT8jGtr0h6/QmVD\n4K/s4EXAZLjHiwsLkNlez+S6MJKIfLFLJ/EM7rjt9lMQV9maAxwAJxHSNzdL\nzluRvpwX95mT4xkj/PaQCiOdqY8K1NT3m8i+fZ4SSJ50SZKfQPHIDs4Ax83K\nkZCLIRw+yKX8QGmkIrSOuiZV5d1NtywcG26b5P/I5sZWq2K8FKrL5HgOIt3Z\nHadIRipldhsFkCItrG0oFDR7qxr2Kyb0k86Mg7pBPUYMXsNSUcVGgFx8Choq\nZvxr\r\n=xXv7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkonwzNs0GNidOz8+Q1RhZQqZkzrc1VCaenof5vl+BTQIhAJqDXSYfs8BGa1vb3Z8zK3RR13gnTeWgrEMmW875c3/4"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.2_1613493541551_0.6150832540935456"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.1.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.1.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.16.0","@opentelemetry/instrumentation":"^0.16.0","@opentelemetry/semantic-conventions":"^0.16.0","opentelemetry-propagation-utils":"^0.3.0"},"devDependencies":{"@opentelemetry/api":"^0.16.0","@opentelemetry/node":"^0.16.0","@opentelemetry/tracing":"^0.16.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"d3efe60f70de750b826225c56659bb44be423869","_id":"opentelemetry-instrumentation-aws-sdk@0.1.0","_nodeVersion":"12.20.1","_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (linux)","dist":{"integrity":"sha512-tiyngd3iHZKbPkYPsEn6yr90hV43S+ARW45ymz8AG6adc9DlpLVEHjLhx1BseMVtv6tq4TXQIk9+XOyL83Gq7A==","shasum":"7b615af41aa71694887f6822df9815d71370308c","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.1.0.tgz","fileCount":24,"unpackedSize":54772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLkwMCRA9TVsSAnZWagAAQaEP/1wf02zojlIonRZSLfGQ\nUrwdT+wAtKPz0DX4hiJIHNeycsuM2D2yEEUoTV9EEHFKfijio6e6pk4TraCw\nikOeWZtjLWqCEnPRp2UuKG3MKknOA4m+dfng7M68daXEbkUoQfSLe9i2JiZo\nTOzAgQXQJGCAY9xH5TdANgBPoaMu7W1pAMBGXa0c57OhKoWLtpptSfbCH15w\nRN+gcn9myN6cz1W4SBcfUe596VV6ERxtfiZUInO5zxhKrIy3FlhYQrQKV37Z\n2O0Gly/Bg5IUFzSAHT/8jvdh/l1crWmEdimA/wfeU4Uy3Mcm1tU5OBua/X1Z\nGvfcnKcKeTCF/hSQgdEQVbCo6c2bqsoNtkQbB9I8fBH2yM0W+GWsBwF2A7pf\nyQSK5oQ+7Qapc6NNwKGhuJzDhzB0VReiOFeD+GYYG2SbmwgFP0h3CJDEtQYz\nPha0xX64Fc7Z71MVkpbkyggfO9RTtVPpfsn+jivOAdeVVE3T3go4/YO18nZU\n4qJFXKb9vrdcgJg1tj2olO/4i3V78qvxS+yG0fp3RYmIeziAqm+2djESIWrJ\n2qIFIqc8DCJkXYYlEyUArZjOOrHcV+onE1uVgPIru5MWUBoO1MdJHSvWfjKS\nGPywp1JG+OL/7YNP7HR7cjZKnR8bmu/EmWLI8rTyG71v0pDS7LTKl2x7zyK3\nizWv\r\n=AyNv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpZHKrcQjXT1PjqrplpjKbkV5+4rb5+NVLocO2RBP4YAIgR2XZ5woanWOfZ4VGdiD2WlVxH5ap+c/OccU6XOV4ELg="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.1.0_1613646860324_0.812233781320892"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.2.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"22453519e8612436f2fe817f5feecfe486e32162","_id":"opentelemetry-instrumentation-aws-sdk@0.2.0","_nodeVersion":"12.20.1","_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (linux)","dist":{"integrity":"sha512-EdyBvdBLixl9jdzVmoey44IVKZYdHjhiZPflMwZK6drQXrhDDHxg3dKmuejlAEBfGGMPWfjI/Ze5ZRv1MPaQ1Q==","shasum":"c63b20c1007f69bf12a1c15b52ef5736d27ce61f","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.0.tgz","fileCount":24,"unpackedSize":54718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLoLTCRA9TVsSAnZWagAAc2QP/iXBwMMHKZ6lFWtX+JGm\nbdO5E5QbJ47P9AkqG9FBHumO8Ci5XUvv0BV5anYiT5kmewlE3Bhmpox8Oj6h\nfpSq97QfvdhrNT8eBIBVgLsx28ykYROZ8kI35HqCqihT1YauZvFwBNHqYsa/\n9CguTPDOmfPk4Fe3XNS3EIY5X2uX4eUYR6dicGSFvO5lv6FbXZ2BY10ESkuV\nv6hD9XGNuCssEVcX2XLDqhmk8H7vwD1W1rHraTDvFs8S9g2Ewlz0VgbPIO5F\n5rbe714VGpfzzBLdZiN3zptNrPXQjU68DRo69mLBmxPfyVwTeRoXhNbG0ji9\n6cLPgaklGLKa/RJKGu4WcgAs06hgYxhcbi15vxcezKOUkOWXBlCSeOwFbabg\nxzZxuoEOOgHVSSp2X3m8OIYvxmQafaZAh1/L6KF0xw/MNXbqlGjJXr2XtUC6\n7dmpYBbkiwHHacxwHiAB9Sd6aj1mY+iecIm+d236/Dw271kNqZcHUAqE2O+k\nMS1uOBehnNlnIlx7iZNBgaDx0dHT9xtAyE7vTBQ6/yLttPRqbvDGL2AbpNgM\nWCJEtYcP93mSxf56Rs7Ved4qaD6O4x8CaMJH+mDLXQnQ4O6aCd5+1xPtqJs4\ncaINUdjqK7wmyrw3fFSerGYKdSojDBjBfzb5REHSREargKfap4NrVn7L4t5q\nMq/F\r\n=0GFT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRHLgZLYdtutQhDHs5aNE71AfsAwMzONHEDBpmOZOPLgIhALW/5fJY8su4mx7eefeuOuvFWfv2f5PnXmfUFmM/lPmX"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.0_1613660882587_0.897807532296421"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.2.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"0312aa58e73a215a2abba5ae23a08536517b3517","_id":"opentelemetry-instrumentation-aws-sdk@0.2.1","_nodeVersion":"12.20.2","_npmVersion":"lerna/3.22.1/node@v12.20.2+x64 (linux)","dist":{"integrity":"sha512-2c0a6sraqWT0IbErNTV7hqOwLWALzW1/WrGKuWZCxa+ouAuyl0ApZQ1BHW+xJ8cq9TmX8lDPG0E+C5MpOguvAQ==","shasum":"5c206d394b864a4b0b656cfdd800577c5cebebc7","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.1.tgz","fileCount":24,"unpackedSize":55488,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPPUsCRA9TVsSAnZWagAAijAQAJjSSMWO1CJVkT0qd2aT\n5fimIPqzhfY8NUCQjm9P3h60ke9HEEt6DUDgB91DAJGynw/F+q7sNT4j2KGP\nVvSo9az5AbpvfnLfsmxKG+gp53n1K8xhNXmO3X4rknaV9bTBzKvzGWL3yIHj\nBgVCJGRh8VwBCIDLZR2NEEg0et0cBP9s01AMSFBzeJ7JRxUKi8yMBdqmnsUe\n5GcIOdoL7UHlLwuNyQQ0gpAJQkLca1buoJ4pHM5iNB7pWIflHXoM406+++cW\nsQylRTHxy34psB7cIrOt4jy9SMbB48DN7mVcHGgUQcCCwlT1oOzbm+X99NUs\n5IeOU3gmWTY6zJFoyYmA82FshXerqkEiXYFq/1ZxBTly0Fn/PRD7tNzkACCl\nV661aR5UMjwSxWFdH4/sAcjRXevfhp5z6pRqn/kpZPthXrUIH9ubIpcvaHzz\nDTGQ5bSW/ss9/V/CJW1aOnazBg7JF2UkPltTvkVvNB/RoL09TMVkFqpObOXU\nj4Pvxq4gk70DI1/HLKrIMy5vEhjXN4QvGuCjigAkvs9Z6txqFBcVitqcqoR+\nTAT4RwGeBfyz+n9lgDxpoA3/edzrpRiHNzw9HcQw6UbISJC97MiNNURYstNX\newkip1QHUcsmABNHDWlC+rtD0nbr0neu506MsobjLGgg07uPzuzhE2YoCbqC\nWSyK\r\n=IGZ8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/4QcMEZwf+n9MDa+T9H6q3oT9oFMsu3MN9kRDEBE67wIhALnIKd2MeLmnzlzfcdDI9pojJvzPFk/mXM4ykQVUItQE"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.1_1614607658921_0.4090962202326285"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.2.1-alpha.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.1-alpha.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@aws-sdk/types":"^3.6.1","@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/).\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nThis instrumentation patch the internal `Request` object, which means that each sdk operation will create a single span with attributes from 3 sources:\n\n### Default attributes\nEach span will have the following attributes:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `component` | string | Always equals \"aws-sdk\" | \"aws-sdk\" |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with the 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```js\nawsInstrumentationConfig = {\n  preRequestHook: (span, request) => {\n    if (span.attributes[\"aws.service.api\"] === 's3') {\n      span.setAttribute(\"s3.bucket.name\", request.params[\"Bucket\"]);\n    }\n  }\n};\n```\n\n### Specific Service Logic\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* [SQS](./docs/sqs.md)\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.2.1-alpha.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-0+JTil/5Vmi5D6GpLWesxwvRLBqrhph2LId1fI4M9EXIH7hrixtGosniHTfqMnCKQdr9xav/2Zz/yBa9qYZErQ==","shasum":"8d00e962ac5509979871d7d5ab7c6630fde59092","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.1-alpha.0.tgz","fileCount":26,"unpackedSize":67098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP7zGCRA9TVsSAnZWagAA+XIQAIiNyDBY+DzHoFeQCHmV\n972gfhrUSkrHauIZipJDEEVV6zpN0xsDK38mah0Jv3MkiHS2U5MKzFudPv2J\n8R8p/jmcYlcHC/SpPyTnSQusafdR5Uu3amdwnKXo5l37FJ7h574koJ0cXF73\nc039WiHJnkSIDZiSw4LFQ4cJrHzkGR6BI3dEkpOyRfQzneFXXb47cTIKfPtX\n+IWmoJbFAMvtfPqyXXR7QUFpFYfj033fKVnxFOltwIv0mUV+DLA834jtITm/\n+FVHhDZeN+t1cxa2WFD0s7c/wk7DNm+RTQhuMi5GW33CfAl7iAmgaKSjkmAN\ndrfEcTDtE23rpnIY7c9DRzYuYtJEdmXNEsQhIGSHqf7zdojtzQXJA81c9xoQ\nnc97D93myIBKe1YYRcASMPGr8Ri1kySzTjoRUF458Pg+Uocpsbva5NEGBLPu\nI56lCibtM2QBY3XZAGYVVcLIN49CRKu1QaYAdurO/k7FZfUU0NUapeQJGJGn\nk0N5A1MVRDrtzLeTyVoym+IQbsiH8lDU2ba0scI9vtdA38gBFTWbJONvSCkQ\nTY0ckY3ahP1tSFe5KXRSrUE+maFwGpSsA5+v3anPhXrum9cHmaUN+hhEU/OK\nKREL0JNMdta75v9O4oWoLOfJA9qt3cFzduTtu+eXvy7Ix3rxmwMKGPIIQzjY\nctbO\r\n=Ljak\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBNIZB+90iaYnYjpPdLuUv2lvnAVVUKle4/34C6QyAvmAiEAqaLeTvlXxlssDMa+LFvw08xGMP0yugEUqmiVSBS4/QU="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.1-alpha.0_1614789829542_0.9744727422280994"},"_hasShrinkwrap":false},"0.2.2":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.2","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"99146cd88aace5c83f8d2034b81d44256ae4ac42","_id":"opentelemetry-instrumentation-aws-sdk@0.2.2","_nodeVersion":"12.21.0","_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (linux)","dist":{"integrity":"sha512-ZaILAMK4pylkkKsXxUVSFvBA5fGNtc6ZyfTKwBh5vDikCJ0GdtmUZZaBU4eRi1MCaACy+lhct0b/uBtL2fVjlQ==","shasum":"2fd4f23b6dda1a04620b3082f92f0124ba9850db","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.2.tgz","fileCount":24,"unpackedSize":55933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQN9MCRA9TVsSAnZWagAA4OQP/i4VvWqvuAuq1dDldd6c\nJLOJaio1iY+lFzg64d3EYPz3KW1BSbw82LxmeiiThYEtyKuXt/pjr5TZcJIu\niP0AOWrT5ZrwILoPH/1jWRyjF0ATlBWooZKyBFEhHqX9q0nJvbI26fvzuMOo\nUy6L53pm+PsTcxXts53m0RaLGAcsklX9sxsH3oyGrg1yDUkAcbFKs6SFj535\nNwEa9ygj6iMRlADxMZ8vAx/HK3NwKb3w/TW+wR90LevmQjGICcYSQsNi9Y0S\ns3gflxISuAKlcIvWLTiKTAaaql4eZsVkAfI5uOfuKKik+K45lmpgEkiUi/vz\nnlp9Cz0UigVkWPPCFn+sXfmB6GbTnK3y53//MtnpDpnFN/tL7hPSl44wsMif\nYu6OBYy+Z4Mm3VuFwW50FyEWNYr8ZxNu81AcgJzRUBfZxfzxT3CjCo+RuH1q\nmfcJdcnin3qPgX/fstzrcpS90H49A8sSGwE78WGCJBrU80ZssKBuIJTo17VT\nj/gx8M3O5K11TD6WCzYBzmq2VRNCY4oj/dd57KP/0CDLXeP1oJYQfWRolW5N\nEXjJBTlFS3ic17i/O9W5PgR+SHnE7LSFfIL2PVdcdc0YoqM/+56Zi6mFIXlo\nfqin86OHlOiKKY9CpS1ugB3P5K9OCD2sgZFuvS0a3jm0umArmMz+h1ytwkD4\n14+v\r\n=LEd0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEF1630uoIhT2rUrJTfw3KZgk59oNeq0VccmQohcWibvAiEA0p31xBae/VoGkGE8PKzszOvE/tVeNU4wkAK9u6OMtHY="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.2_1614864204362_0.22345245603221842"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.2.2-alpha.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.2-alpha.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@aws-sdk/types":"^3.6.1","@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/).\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nThis instrumentation patch the internal `Request` object, which means that each sdk operation will create a single span with attributes from 3 sources:\n\n### Default attributes\nEach span will have the following attributes:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `component` | string | Always equals \"aws-sdk\" | \"aws-sdk\" |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with the 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```js\nawsInstrumentationConfig = {\n  preRequestHook: (span, request) => {\n    if (span.attributes[\"aws.service.api\"] === 's3') {\n      span.setAttribute(\"s3.bucket.name\", request.params[\"Bucket\"]);\n    }\n  }\n};\n```\n\n### Specific Service Logic\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* [SQS](./docs/sqs.md)\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.2.2-alpha.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-ecuaqaTj29NMN8fKh1YNM26D/xQN0VdRI/ddJT91DpDHKwUplkPFua82Z6qmmaQ+LK7F5akY9zSbJ+t2vumD0A==","shasum":"e188b79440efc50d798b7a9259d181aec6a648c8","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.2-alpha.1.tgz","fileCount":26,"unpackedSize":67581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRKYVCRA9TVsSAnZWagAAfj8P/jLYzr5PWRDevfo4azNb\nqi73GJqYKqPHyGvLXzEmRhSLvvCkp7gx2DqSQ11zsworqIU81KIkanMc6HbY\nk9FZnnV7I0f7lmdflkyaY6ytm/XIdYxrfxl4Fei3PHqCoWK3IKf7v3lER101\n23LoE8XshIOKKaJ6jm6imN431hm6wdvuKN7JTnQ/KWGS7TOHUmQYQ5gbj6SU\n9nqbQre1/xOovYQ914rPMrsnqPCJfgm3xov1ZQSCfzSQM8oRyGn0RrO/1eVR\nK7XWiZpEopRHdS+oYgU31QFa8AfNJRIeCwxmM0+1+PLqT6F5hMjCQXD+2ZTe\n9EFFzmMCjk2tI4fco5vcCgomd8kP/lG/lnPGUBC3bEzeCohqWwjdralNp8pd\n1FNrllIC8ira+xZ92fBs7tqtlFAZFSim7+2cMIvRre6BjQ7pJ4tJhVO2K24A\n1s/JMNeKwadVg1kPFJDdLlfa4tPTCUA1nF+Ihm6PYfttgVnqEzOcn7fNlax0\n5+SpWmWPS4gaLtItEd/tXSupKCCXNDf2UG/9ASFiEYZ+ZoItzYtpPk/SbDeL\nJeSn3RDCV7Cn64KxVLwCrNzZJqFfrU2qQnkkkz1C2hUJLbG9uAp91IAtDwFJ\nPBbxSt15lTUasL6g0thXlL+q4549K/X3912xPJ+ZTH4urFN1wMnxwVHFtxyc\nSN9n\r\n=Q1TH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEg2wMCtWMcwCvTFK/gDOTvRh7dSgnpXFoJ1v97jtW8WAiEA1IuPGzxg87gfvofd43yr4qhN6r9lv/+pMsJPf8rR9sc="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.2-alpha.1_1615111701143_0.10956416998435725"},"_hasShrinkwrap":false},"0.2.2-alpha.2":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.2-alpha.2","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@aws-sdk/types":"^3.6.1","@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `component` | string | Always equals \"aws-sdk\" | \"aws-sdk\" |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.2.2-alpha.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-qhNfDd9VmRYlV69JMPbi8U8x+nxvQpQBiodDo+HaNEfvF0dX5EWt6Ee5uTnl2GuWWymCbmwHshgNXbJSVPwq1Q==","shasum":"dc42183101f74e83b815e6dc090b0a4bb8137cc7","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.2-alpha.2.tgz","fileCount":26,"unpackedSize":67846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRPi1CRA9TVsSAnZWagAAPG0P+wdGemUNiABbroCKECQI\njkhMClc7xsgQ+4jQSoddrJ6aZoHmzP/EYg5Osn65nYIN4zySuDHr6eJ0xlx/\n6fxpmg8AcY3SX30UMOqTeTQ1VY9HTtCeOuO5m8AA9HWhTUVEd/Lk03iTuU9E\n7NnIaZd6C4y0k+OiDUOgDTrlF7d/4Jg3jRI8UASiK3WVJJS6FZMIQWioI6NA\ngUXrZe5BNluxeaQy8n7c9ibt+/5jL87mP9LgdSdReiLsHJSDUdCECZ1Nu0uZ\niVvKk82BO27++tLajcnPiKQGSAzXCAWZcreow4/iRz2pKAgtAO69wdywHPDn\nh8ha1Kmg0CYFSqS6T0tEUWawmaFu465qSnCwvxXR7B/KEedaK6aym7m1bFML\n4tMPvk1eZjeU9YW7Gdyl9RNmv1BfL/d3M55AOntWmLGifRIvjNSWEPYj76mn\nXUHRrQnp0RE5UA62ILzWhhn7QkIgqG+aafoJJIGU2APjZOYL5oxPPqum5M+Y\noagFQHmQpvr0wi+W9dGroJG7ChFDVnhECIXlGzos0Gx7Gl82kOacnwuFsRCR\nbTG3u8P2/hMp8RkDeN9uKDxFrvj0AHRYjLIFAROLPKpm88Hv0b5h5RLvsqrG\nr9MgEtWpMwDc4ljhW9jld+UPrD3Zi5zkGYgasTCiBEP9delZbKJsrFRrBRyC\njOxm\r\n=Kqxk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLlngSGwYsdtC7PL/7D8ahxdVuTE3uzQdSyWvMetTiBgIhAL3+ct6/MM1XlhXRlXVVmwBm2vao2/ohnC/hE8u3QS55"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.2-alpha.2_1615132853371_0.20084209340359283"},"_hasShrinkwrap":false},"0.2.3":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.3","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.0"},"devDependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"7db144c76afe71c7951fe939f8b073c85e18ce00","_id":"opentelemetry-instrumentation-aws-sdk@0.2.3","_nodeVersion":"12.21.0","_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (linux)","dist":{"integrity":"sha512-N0CLI/BKUyXw+7MHaWea9y1zKnBWg95TrH3Yedpbf62mAEM+1iVKSG0ArDdIOCB5Ta0uWumoGnWIBLAsiM71zw==","shasum":"fc4f94285064ada19a799717bc1aa1f63fd8bf31","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.3.tgz","fileCount":24,"unpackedSize":56159,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgTy2uCRA9TVsSAnZWagAARxUP/RMS9SrLL8QrF5smJt1E\nXi3WXn/nGEdmV+vfjp3Z2azNalP7ynoxgxMwvh0BOoq7zLHmBeY9zT2R7q/w\ndXy15CFTBhnir/qyFZfXgiyjFxaoqyrQd9vtOZM6LC2awKYIZ/bXVuOKOK7s\ngrb5BREV0QWuLyiYltvJq9NzcbJT9XI9m2Nxpgll07vY1frJseGVXeYN78VH\nQchtjyHInMkjJwvGtcUJk09tTACtoHkbGSI5iM7YJkQYligH4Cpuc7fQUTvn\nOvC77K10YXvTxpMQ/Sm9nOKGjiykR9MMjNlOlfJazFEnhM1SiWtMNvxsrzYE\np8n8gYz1srLkWFPg2WB3kWB+ec44uF+7emlhRg3ypzU7shwEzMFIYrnW1yGe\n4jYqip9IlegHJQNrkCj73MbGDgqgDWk9aUWF6u7Gtx6lXRHFeE5C/8cIRE1h\n4bSwP3GZaDJhuloBFcnWRRfAw/xtn2gGB7/6mmerxEOaXlRegf4jwgkxookN\nhFj9rX9lALIY8hY4HULu9ZFgydSYz8ZFrvGeqjZO20pTwph0giPzyqQqmPg5\nMa7qFVaOVsMJDLOD5LiIU9qeV5RqOdwzArkNcAsQE7YvisYw0bZuQjyVKjDw\nHhIf3Dyvui1drCTT8qEOi4TdoLQE9OVcRPaaw5dj50h2zl0Nq0qPx0C8fCZo\nKs67\r\n=H+O5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4MzHj5tlvaiZjopoysnBG0BEXAoF6StdwMrQdKaSVlAIhAIgUaXld1ZepXat84Fe+sd1dURluM6hqQtiXZD5U98H0"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.3_1615801773675_0.19561806865981746"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.2.4-aws-sdk-v3.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.2.4-aws-sdk-v3.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.17.0","@opentelemetry/instrumentation":"^0.17.0","@opentelemetry/semantic-conventions":"^0.17.0","opentelemetry-propagation-utils":"^0.4.1-aws-sdk-v3.0+b344d60"},"devDependencies":{"@aws-sdk/types":"^3.6.1","@opentelemetry/api":"^0.17.0","@opentelemetry/node":"^0.17.0","@opentelemetry/tracing":"^0.17.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"b344d60d0514c4e4487a12b86248995c16768a40","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `component` | string | Always equals \"aws-sdk\" | \"aws-sdk\" |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.2.4-aws-sdk-v3.0","_nodeVersion":"12.21.0","_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (linux)","dist":{"integrity":"sha512-VUgVxFpCDatlR14qEBZsEd0qL2WtWfKWgWlQlGTP8VzYUeVfWO7kJi98pE3RGLh13TDmD/12RngEghEEnSj9DQ==","shasum":"a31b1b31e16f8bf1db2b8f949690ea64ad0f72c7","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.2.4-aws-sdk-v3.0.tgz","fileCount":26,"unpackedSize":68181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUKHlCRA9TVsSAnZWagAAmTkP/1RNuzAxfG2e1NjBp7rB\n0t74osk289vjF3UGNFeUiAFs8OdpnEnSbXh1PknyQW3X3X+kEeIeHOiaiyhw\nvGN+MDaHVoV2rGOtm6k9qfmdABtYGFF3JEqeAgqC2EsVu650GXP4LqOEJ1x4\nltgiYK9qtSUyEJOsXK2QeLfT/w9T6m2tfsat0zakjsYK3HtG4/x/wdNXNHFd\nWF4YgiXhnosu6FVRrEuBEmCMJjx2hpMP1NRWrLj614wXiukqy0ppNeprE7IO\nFAanLBan6neudsG7rx8v4AXIWR/v8yCgWcW/6yJ7Af/8lxIswkT20i+P0QOu\nz5WyN8As//84/37SxKXPMpHwwDx+n8te4OXwtWzjYETAYb4kRQa7QT3QcLxp\nXojMa0aEC0OvQJB1GXPNhaGjo1mJ2+UD7dERVBf3/bGatnPKPC942lvAPyvb\n5tCb4udzezOFZVbOrMZnQhUs+uccCTeKhoWl0kQJUzPb34jCf8F8jfqOzQhF\nuI3ixDYvxqznjTAY/2QYTRWSczx5DQPvJnUpvYQeKui5lx6sFD4bwigxpNGh\nCGGmX9tIY0BeM6P6OxXao1HjT5bSw4gzfdRNGVG3QEcRDGATQrxJ7Jz1/9yI\nXOya37J38tvmn98K2eG6QJKChJqIsvCYFE6vixw0oCgCHrlHNduxnXWmsnaf\nmiPR\r\n=mgY3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClFrRTOwFX2qA4RO6H0e7u7DyXEA0JmFTkmz/W2P1D9QIhAOBcb72e0E1Cjw1ERNTGDekyEvMaxpms/54tDuTVMjXk"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.2.4-aws-sdk-v3.0_1615897061113_0.061161142706533944"},"_hasShrinkwrap":false},"0.3.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.3.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/instrumentation":"^0.18.0","@opentelemetry/semantic-conventions":"^0.18.0","opentelemetry-propagation-utils":"^0.5.0"},"devDependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/node":"^0.18.0","@opentelemetry/tracing":"^0.18.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"3ba0a68be6bf32167217136346f1e4968a19e11e","_id":"opentelemetry-instrumentation-aws-sdk@0.3.0","_nodeVersion":"12.21.0","_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (linux)","dist":{"integrity":"sha512-H7kP0m6by3wPqdZvlXT7iVi9Sv3nV7+DQeLArA6utbwFe1jx2TRLGPFtl8jWzHlNmGziS7rVqXEleFN/vyRFuA==","shasum":"5d9414595d221fc09742bb9e5089f9f68203d3e8","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.3.0.tgz","fileCount":24,"unpackedSize":56640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUzFTCRA9TVsSAnZWagAArmQP/32ngS3dYOjNuEs5AAJz\n/BqDc58snsYgZ9PUhs7vxiAaOc8jVTyB5cgz+3e8XItQAOqFNdMgQAwjRY/Q\nMwgdTj42Tt2X34U/ETS1y+LFiuKTvue6+hN4/dK6qOShwAeo08J3vJzDirMX\nxO7Rw8ZL4Hno8KeewXOnegy4IXvDj9nL/N7A1VZdR44sO2duE8nBXh54kVou\n//texBGTyDe0xNDuOYrS+flpaJRkhfcYtcQxVk2LHhug4j9W6LqBuQXBUmDd\nCO+b8xBhP1MylUwysau/v411YhbuAZNkO7Tm9A9fqObGqQqfDBtAaCApvY3v\n7oZSPE054NXd+1n3punBc5jo1/tY3A67nee+YXcSEPJyzRprDX1ywfcajDVM\niXBAFSVeo4paLE+xYBvCoDksQWeCQ4pLtJnEt3neGVJdhKUiKbN6Ywhg1Ty4\nFDdoOAcVNPj1Qd9tC1B6AtQlzaVdDPvtzoXLEamuVWzkH2N9auKOJGo49JmQ\ncOrXkx03u8MmkDNnTYKXvEbAcJXDvRWXVgdF9gGXZHEB/wx08wFCg5E8p0Na\nmwvXYi5MVbp7CgvhrbZf0AzMXsGT9c58G+R7Hsvgj4mNmKPLhjbExYh5klFA\nGxVdGK3bLZZ2Zc/WOcIwsETd4z/+415ufBuxzd68NTws9VnTaAsq8jwdDJ11\nNkvC\r\n=nbiX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTLd/f8FhcDciV02dX6eFeoC8/xH8niOdGO2uaVtXhyAiEA9GSBBNCHw1Dgn0crasEGI0nkYZfgtawXR/Pv20wOQB4="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.3.0_1616064850795_0.6879644935335694"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.3.1-otel-v0.18.1.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.3.1-otel-v0.18.1.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.18.1","@opentelemetry/semantic-conventions":"^0.18.1","opentelemetry-propagation-utils":"^0.5.1-otel-v0.18.1.0+a196240"},"devDependencies":{"@opentelemetry/api":"^0.18.1","@opentelemetry/node":"^0.18.1","@opentelemetry/tracing":"^0.18.1","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"a196240634fd4cea8df6b5af60963bb7933c696d","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/).\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nThis instrumentation patch the internal `Request` object, which means that each sdk operation will create a single span with attributes from 3 sources:\n\n### Default attributes\nEach span will have the following attributes:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `component` | string | Always equals \"aws-sdk\" | \"aws-sdk\" |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with the 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```js\nawsInstrumentationConfig = {\n  preRequestHook: (span, request) => {\n    if (span.attributes[\"aws.service.api\"] === 's3') {\n      span.setAttribute(\"s3.bucket.name\", request.params[\"Bucket\"]);\n    }\n  }\n};\n```\n\n### Specific Service Logic\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* [SQS](./docs/sqs.md)\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.3.1-otel-v0.18.1.0","_nodeVersion":"12.21.0","_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (linux)","dist":{"integrity":"sha512-VEbcrwg4gIwjsUgTQg5y/TkpoBoY3Q16XYwvVBOVKMi337lsBQ63C4pyhHZW3aKqKgoRyQ8F54s+QJGx8+JhOQ==","shasum":"b6e9c1776cd6442f035996312c9faf886a735aaa","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.3.1-otel-v0.18.1.0.tgz","fileCount":24,"unpackedSize":56690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYwSDCRA9TVsSAnZWagAA8M0QAJ7CNrXFM7mQkuPfxHpL\nPQHdgD9ShNO5H0UvXUsEJB6SE1l0EKXAsVhmyC4Y2fPvREeZUUwzIxhD/fLb\nDUZaOsKIn/8pIig7eKkEfFvTYbB0+NW1WYwN+iEYERq5pdDXAbolBJUwXvvn\nn1knNx9v1KKPgykSNZYfptyP0Ue3SHe+HXrDYBPSlLsPKfKoSAwZwUsuNIyR\nt6FcX/BZzpeCJjDWnO0E2P3FC63q8KVhApLDYctClHgD2falT4eHZ7awMDfw\nlqYyMtLy1fEHY7fWVxbS+xgDF4WXoa9HBkbSDlSpvYstcMItUIy+cavnFnob\nSRufwidcynQe+aB8auTe3B9eTFuAkA8Oh57NcXKWpnqJg1E/Ntl8Ko/IOU5M\nbyTQ1cvbNm9qyrVxscl8TPTILSPUZTEno8vOtE0BZGVSr2Doj3KYnpNDnf0+\nV/GFQLMqFg/VXvDO0qdSBX3eFVstlGqPR2rKPvPa1NEIQSm2CUxNdFomK25T\nIZKKlekRkZYOuBYO7v2/kSpVrb4FSsO1OPbz6jgTzRnrJYSkw6n/AFKhS8dV\nzTu/sIHIQyAQzqRK7JLi+YAM7q8G4SlKh/GbL/LY+zJakEcJt/SaOVdocoRK\nAgOXS/oJdKM/diddxB1ezFKaiEM6uPT4wFHVAK1ieqAKUr1mZzs6KckCeDEi\nkAG4\r\n=Itj6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSF1qVJea7Nu/5SHGjB8p0BEhpauAJyzhZh58mTeAJ5QIhAJI2eDEMg0yK3J4EtayddC7FxdfcWhSD9zy9k2kamxei"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.3.1-otel-v0.18.1.0_1617101954766_0.26887376159376464"},"_hasShrinkwrap":false},"0.3.0-dev.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.3.0-dev.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/instrumentation":"^0.18.0","@opentelemetry/semantic-conventions":"^0.18.0","opentelemetry-propagation-utils":"^0.5.0"},"devDependencies":{"@aws-sdk/client-s3":"^3.8.1","@aws-sdk/client-sqs":"^3.8.1","@aws-sdk/types":"^3.6.1","@opentelemetry/api":"^0.18.0","@opentelemetry/node":"^0.18.0","@opentelemetry/tracing":"^0.18.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `component` | string | Always equals \"aws-sdk\" | \"aws-sdk\" |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.3.0-dev.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-WId4dOvfmFUBXkJBvX0kqXkoiH3pNMIfhfMfz3frechIHhlu64rnmpTd7i5e334AzVvdaaiwYdLAJFCKgcNw8A==","shasum":"ffdfed747d1ff541d9fc04d84c27f359b8705ad1","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.3.0-dev.0.tgz","fileCount":26,"unpackedSize":70668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbEaFCRA9TVsSAnZWagAAxbAP/0CoMqs1L11xykkeYJt9\n2ijcw2RjLoOIHpGjrqjI9QI3LV5mZSxTvmXCBYFnWrz+qeT9H5LKHPa2K/xB\nv9P3ZHS1Tpw+tu5zMxKNnBU6bDlhYiWUcMpl31SOJgdLQyqUWx0zSVTTI412\nuTeU7obHSzowSA3WTBRJdc6Ck+GWYDXf5ZZB/m1hapJhIj+gbrLtFGipodOO\n02c2PrB5dpGl1kf3ae5GH9u2DUbVzXHsyPjKyqgPZyi6hH6r9mr5aiHotL1a\nE6/cUJ7Jwxd3c2CGX+Biv3usUn7a+w6Yv/UZ2lowQOqo+hEEcWFKFaEgHFFD\nGMuo6SKcFSnYZVv8ee+AdvH6QR4Rp43kd6hIIk4DNm7sA5DqEAMm91J/ykGx\n/G1wgAT8MuYzXxAiZ5iL3DPnA4VfI7x2zqY2YGjDsA9eWjVwCRzMO26WcndH\nfX3wTKu/7oINdCn390dFhcVpQ97Hx373zpXDcvnh6+hKGkw9Gr1W2qrfooBX\nV3JE13yd5oCKf6tu0TgtIHoip6Nc0z7vIurRitgOPe3fWSCCzGWTiK2Noyp9\nzMfaimIZ2KIiEE/X4PwSOSNMkhUsU92AqWUjNOB9BlHxdccrOxxnBZJEwXRi\nKU8X5IoKu1nGl50b6VlojoUGnlGcRVOl3z0WXivLiUTz8xExVzWl5y6dwbbX\n3Sh0\r\n=E/f8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+JahjkEK9Y1kBYS857WJKIsk8Ux/gbYUiUtvNNRVc4AiEA/22gqI6PBvz0L6LtPmFq2XEZ2qH0gTLAQX4H2CbCiJ4="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.3.0-dev.0_1617708677278_0.3541984078922782"},"_hasShrinkwrap":false},"0.3.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.3.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.18.0","@opentelemetry/instrumentation":"^0.18.0","@opentelemetry/semantic-conventions":"^0.18.0","opentelemetry-propagation-utils":"^0.5.0"},"devDependencies":{"@aws-sdk/client-s3":"^3.8.1","@aws-sdk/client-sqs":"^3.8.1","@aws-sdk/types":"^3.6.1","@opentelemetry/api":"^0.18.0","@opentelemetry/node":"^0.18.0","@opentelemetry/tracing":"^0.18.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"12cfb28cc6db194f8ca4a4e74f7467912a448993","_id":"opentelemetry-instrumentation-aws-sdk@0.3.1","_nodeVersion":"12.22.0","_npmVersion":"lerna/3.22.1/node@v12.22.0+x64 (linux)","dist":{"integrity":"sha512-lY5BQhn2KLePYwrwEKf1XBqi6rzM/tDUj755Frje2vfzkxcGyojaBOT+V1Nf2APDGoNVKXNNofkHuJwJHrAVrQ==","shasum":"6eef8fbaf2b245317a5c6c15a80fefbffd302607","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.3.1.tgz","fileCount":26,"unpackedSize":70451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdUo/CRA9TVsSAnZWagAAU5gP/2vdLEb5h8g/N+RxVMxx\nAG6nl37hzZ6UDsUCL19xczRaVoq40fezOtLiransdpWE/Vzh7LHCYp2fSefC\nFMjq1SR+5K+oCFykpG5uteZMamf97L2yKGiTQOfw+cdxw63quV9mLp1enQxS\nFLN+oJvOcGmiGpiQsR1n7+tFWss+5yTUq7MZorRU1a8GFLz0p9jtM+AiKqRM\nTnBKiTCnRxUwhyOnSY2pMDWSo4rNoDUTjo7w/Ibf/i6Ix0exRqsAhFeA8Psg\n1+z9fWe4bGns0Y0jqIlQqmzknp4sNSnW9NIfQLLjKTf3azVO5SpONM2Zays1\n4w1S43IryqHSLHNypKUKGS3QjzavhiY6XE7BxUCuYA2BaCeVcLcZD4AQZ6zX\ntwgIvKig1aC3mcj27VATKz0mTS3FxRv/+T3/2MHUqQNlPvOsbNvl8fPsfWY1\n3LiknIoaPhW1YtygwLywNUlilrvqJ7/WPAYYC3JLJbiLRQNxVAw2Cw4DknFs\n0Wb0hIFp5zTkX+n8g4Ob4R0GclggluTzoxSQdaKC12eRTpxsPc02aY3qF+8c\nssbSKXubVqGjs5JrnW0YF22n15gLdCId/+GvJM6TaXRR1VfKdEDMf63WPmK6\ngQOLKEtvvVuk9j1VfMAYQuc161sVWA01X/yAoCCkkqS+i0tQdJgDKOoeiCuf\neclD\r\n=F9Bp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFb3iB6ioeKbjiuD9GtNhmuomZFY0whhyYZ5MGQjRdQHAiEA1GEztnyBjHYhZCJNgrPjkMj2UvJA8IXX4R7Wx1lY9t8="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.3.1_1618299455095_0.9124601217221306"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.3.2-otel-v0.19.0.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.3.2-otel-v0.19.0.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.5.1-otel-v0.19.0.0+62794a1"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"62794a132c5369023597e9fc3696a126a07b2473","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.3.2-otel-v0.19.0.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-HeLN0xr+6DJnYjFwHj00j7IukMrG22vi9zaoL025dzpB+KuGRBdUuGGJ/2u2JngGO+BiLDTEWZYXs3wpqJ8KpQ==","shasum":"aa369f79d99c9bdb1a42ad4cb205aea08155fab9","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.3.2-otel-v0.19.0.0.tgz","fileCount":26,"unpackedSize":71034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiB7VCRA9TVsSAnZWagAAgsQP/i7KDgLDhNibNg1bBg3l\nDJ7K/iOoJ0rr5ML+Vf5MrvHPZ8t/P25yadFLlnMVrZCT4RSzco1H/3vMUl8k\njYaWiwKNxVCat2Ng+faFQ/PMVjcESVIVzxiC8YFsqjIaI2s4VKe2FPKs7JLW\nRv4ql2/zgbBvCaPCgeuvZY8iQtvZQkO6ASA13FjCx4SBqSA4RRz2lWH8iOo/\nsGJq2UTrjxJnp8TQwGB3J9PdUbJ5NdgHVu3g/C8wpJ6AOsikbMiVd502fnBM\njvAvtDcJ17fdfivQD6VF1YeNx2IVkbfPTxnyij2koonDYGXBBxNwsT7yHRf3\n6x0W2J23hgE8UmCrDkM7fBi3OLf38a8Ben9mL7RO0V6IdiUG23MSySMi61v6\niaf64JogPDQXFqAhLarxIO0vmQY9WPviBCiw4YXXWBHZMGsdZ2lfIe182swX\n2tqFP0Ha7S0YLKbd4IvGkiMaKgxsteeysOcfzU10/KPkZQVxRLOGRwRU7H5i\n3bXMdSaOOkswYI9T1KbzUn6QzbpX42RULm6S45mEe5HVT0NjCBfAlfDFj9l3\nlhJCVW90y1y1GHDwXye13ARSpEGF4X0OANzpuKyUffAia61fGgOrtlt69xhY\nfjNPp6ea024jFlWW8xXk0IihNI4YlJuBmwIZBw2kRaWkXcIDJEgmJVTguRAz\n+Ua6\r\n=zx78\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBS6VdUjpVxKSLw0ScLPt+HaLHcV1Dcb5RZNDKTRxSY1AiBlHoLZkj79+gLimC7sD4YRKKYfJ2C0rgLCeizfHPoz4w=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.3.2-otel-v0.19.0.0_1619533525129_0.6447757990649827"},"_hasShrinkwrap":false},"0.4.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"1b74b8921ed523dbae077042585dc4feda0d602b","_id":"opentelemetry-instrumentation-aws-sdk@0.4.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-OLKRiFKBWClMsBdGy4Bfg1Y/NVEs5C3lEa+Ro5yen7b+RErTZfoulKSXRum/w77u9tpKrNRFjupKW8bl/576hA==","shasum":"a9f7155676b64fa734fb36e81fbff536d3f08491","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.0.tgz","fileCount":26,"unpackedSize":71245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiQXeCRA9TVsSAnZWagAAY9gP/jhr/TmRjocjHVb2yYXz\nICzUayEYugn0nyRiogn4+1toD8zSEztzEozxpS9Ql1MGYNZt2p6jYySQg0zY\noI3PAnEBDVIV8tXDQPU1z2ng6ojMFoW7Aa63LM3eUBb5INB1jtQIPpnR4Doa\nCi7p+Un/j/RJ7aC7nKeZhHS1OHzryqhJ3vHECK43w5D+BLjxX3P49ZzbpMNS\nxirkZ4aIvrDDCJmssk8Y1i/ASE+TaBTdMKg/4ayo3cF5DbBk1cnwzQ0D00oO\nuKASQv2Zb3c9nOULZl0JE+MQPtSWe6YFf9KEuvtoKe8qCfWT5rmctQ4iPOJj\nDcusAIGXmTdY9ZrV3Rct6x/x+TJ3mUrtbS9pdj4+6KE3g29BFXjAdDKbwea7\nyH1iMZ57cEqNR7HMSPK605FX4p4EJgW/MNaq3zZ/j1wOz1wE+bC2oA0glcAT\ndbrENaAc/7YORKL+ngbXChzsd0aSuE9sJVwu1BvmEua0tveiXY9dX8+jvTIe\n13YmrcukKZpRf07G08S6QTZ0OnTUplxBjs1FUhzGo4QIxVlB1UYMA0Bi/DMn\nT2pOdm3+UdyVzlEOQgjaAhlBeV4kZI8AiXgHmiT0SU/cX+w0yz23UK44/3zg\ntgKkUzAU30Neb/K1GuFCTtDcsad063kPqOge047n0nhv4AzPgguCPHzZK6o9\ncwWd\r\n=7s6x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjOBYKnNKGa7HNprqGojbv8jJV73FIPmsRRD4GFPzJBAiAmrfr5q7xCkRGqRXticfltis+Xbko1AvksA+5K3T9d3g=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.0_1619592669989_0.4311947431231662"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.4.1-aws-import-one-serivce.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.1-aws-import-one-serivce.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.1-aws-import-one-serivce.0+863754d"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"863754d3c18e4293fec89dd79ce086b31cf4ece4","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.4.1-aws-import-one-serivce.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-h/fComT9QiaCTYVZtT0RNi9vY4/b8faSBSmqDJG/+YWe2XonfsjlknWSEHPvBYv2flDkpTHJEtE0T6oGHyT62A==","shasum":"fbc09b18a39ceb0d062a3ffe2bb2dd7500f8d99c","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.1-aws-import-one-serivce.0.tgz","fileCount":26,"unpackedSize":71423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiTNWCRA9TVsSAnZWagAA6BQP/2vkLQkRX6L8idCrUydy\nClSwRQP1tf8FmezfQiW4qrRvJOi1RtRZ1dJlJfFv/dn/i0tJt5Baq8I/Id1C\nVN/kMLX8vTyuLnenLy3CnIDTTeDVseitCBQeOuO/yHlVt1dZveRdSTIoJK8U\nsUe/YSmyEHPliyVmwhVXdAVtMyFTCC79W2wP5plVS1OrVDq9RN9uoDeCPmDS\nEm+mfba7obSm7TEOPuuzucr8nIPIojW9Gsk6PKCf58GG5WM/8LGSVEGrYkjd\nDtG7KF0+/b3zy9kzPOgLuqERIBfZMLIrEimCoR+o5xrkFGCWJjZHbqJEnr8H\nz1YFz72A7Xv8cdLayzaCGyJ+g/Gvvlorqg0TAoDiVIKmrkuck0nBQ6rpZBjp\nXkWsUPfJmXwljmvUT9BPH4IJPsfpP6YtPVwJNXD774LoUsUP6fBCN3FMH9Yd\nCcQL/2oStXeGOeJDG7at2GB/xW6MW40LvAaWl9IBnKWF78QdL0ZAq3aQ9D6c\nMBzxfC1QwGVVhWrs0Yi7LEmThbDcbr691BGw6P0HUPRral1ESmZmN8fNNnHd\nSJ5R74DI4hgDLrGSyx4kbjNRayyuEUV7o6VJ2gkWAE8w5ZgWHtScWxod6fKc\nDvgokC0XzVLYGS/GvnfchbOwn4uc+JAWhTJ75wP3ZfnJlqrzICyX46VgM2fu\nkoUL\r\n=oOFn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4+FCznGSD4uA6xChDTSP2AGSnxMpYSXDGSQ7YDxfUxAiEAqcaInCiodjXw7jeq2hWBO1gC9tjH4e7aiKZjmaC2sgc="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.1-aws-import-one-serivce.0_1619604310011_0.8559911148218435"},"_hasShrinkwrap":false},"0.4.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"e9928659612059b6fb2af15605eebe0a32ef0d4f","_id":"opentelemetry-instrumentation-aws-sdk@0.4.1","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-VsuYGpClTEipvh1uYzB557Kzwe+1O6J0Fj6QJqG8lwaSqQCjHdTSmeAJykdoWM7PDxEqqIln/1fS1ghkx2yGdg==","shasum":"b2c821ef4523aebd52e6fae95573a6258361448c","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.1.tgz","fileCount":26,"unpackedSize":71815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgj9OFCRA9TVsSAnZWagAAjLcP/0xaTwMCsl1Z9YXpnZqR\n988hkXf0weZ8VPEUHx00jaOiOLgiXetfAOcLJSzfCeeRnPcVkd7fMq/ouf6p\nX6Mm+RfkbeYmnPJSMQJ/rL4hC8wvXx4Wbblo7Os5Q1ga0FPpz1JWsG7x0Iy9\nEJTdN5px4pZhTeV/3jCUjz9t4d5PdtwhM1O+3jNTfRh8vgkNEmI5Vls1i0Pv\na5ywwTi+28aZDwfai3WHEVkp+cE0RnvBZLmwQnY1Gs5JnDCN7F7fuoT9N8s6\nc2YUlmPFjCC8Tc/HZ0XUV8hKWrfyBBU/t3vRD0J4CEEwdQTMFgcUFczLIXgx\na4yR3b+lbS0ego1ANSWVpMbOhCxA5XMzAt8vRveK7KD6UH86qQIo9aRehLxA\nQG8tTq0Ud+iE46NUkyWjiY0pQUUEk7KK1n7Ic6ozhUoydxeaLJqlxXtngx5L\ntpnrte6BXBVdAqUhtfIGVLJ30f65P3QUuZ4fnPMHipMfSFutqgZU50v+zId9\nBX4bIaTmYxjU96PWcenLg5XVAW4rbqDdAL30pk0lZSImEb4o0I6oOuGjj8Ee\nUOstK+WHwyO5XfJLBwi0kcrae+wEKcVhne2kF39x4cBK98VpuEwflZGjJHhK\nWbtMs4HxGTn5yvFfRZRf+/+qOW/pQAPSDGLVjRbZ7PUk8SNv/dVPCIK8Tkz+\nNh8Q\r\n=Qldm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiMxqME+dKwEfTRAepEs/j2JNBe2bL9HWHqJlxzvnhagIhAJWzwGyKtybkkhZdjeoKf5gQ7yWUl8H7g01aETUryzmc"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.1_1620038533014_0.3166059741441214"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.4.2":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.2","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"1.0.0-rc.0"},"dependencies":{"@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.1"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"1.0.0-rc.0","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"51bf5256ec5f0e623cef5705be9fa04a8a829b9a","_id":"opentelemetry-instrumentation-aws-sdk@0.4.2","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-QTlvwTioUtC48F+C97hePOfsOYmZRIie2K98DLbWgErHLFI6u4dUDZO24/f2mO6Xav+4a3mKEtOg3vHbePk2NA==","shasum":"bbb7668f1184552f9c5acd76ad20ecd9f6f6b9bb","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.2.tgz","fileCount":26,"unpackedSize":72148,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpP3/CRA9TVsSAnZWagAARwkP/0lALQMQOwNQO6uR9CRv\nc265wP25GT2ig74PdzFKI7f6HuWbO0SO4oq/We792CXnACumT+dfAxX5p5NU\nH4iOt6oPU9ip3jUmwIrdwDriPBYskKBvpRWb9aW+Gal8vE1BmEOKNcdhKAIB\n2i21WaiMKf0tByELu67P//yaQ+Bo8evuhUHHbQxpZYwms97keo9H/lFHXEXU\nohrhLC1uw3fjHmdKstgsN5CTs0+T+XXqEkVZKzx6O5gDY//sMG34KC43seLz\nTx10lRaOQ7bxjoeX4tWUHFNd89pXjxG1eGnKxtYJl+Z1z2EgY/dF3eD5Ytls\nNwABVEpAQspiyxuvnb3F9GsKAOB2wQLYLlqdgoyv2RMhoaXLnivU5r+r5c+R\njqkcf5wGUbWs/TvTzgcjUzQql/UvRGR+IQabgfllih7pPntWNgCLmeB84tAV\nKaOyI2vTwThbLmAs2Gdgoh841l6tgIDjL/vHzM32z+mOPlt6le16XZPVZ937\nMYAN6sCXEfetMeW5sambpJmWNYryk9vqUF7KWDC6hDrovgO/JEEXrbLkFv6s\n3mggUURRNJvEV1DElnTHwq+5NKU50mWHFAKz7hEwG30LT1578VO9qYMGeJkE\nBjRTLHpAfDwOJvPdYQ0PIyFUU+fHUceWjzqztS7vd/ZcJ2w0uCaDXUp0nglv\nTcjL\r\n=HbA7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/rlqfhmYVyy5tiol2VILoaIaLAIEzuuLhbFJg2GIFpgIhAMqbcpr08gAeAA9XcZm/LvwLaDi09UTg7IUCuddr5svo"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.2_1621425662586_0.36580804971950776"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.4.3":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.3","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.2"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"61891435509330061efea9e3ffcdf34b80a584a9","_id":"opentelemetry-instrumentation-aws-sdk@0.4.3","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-NXn313e3IMyXNClMnpUY8zZeYMhf0XDUbkjFXlzK5A79SUE7PqynNvlXIwyu0zmQRy54o66MYew2AjknBL9sDg==","shasum":"2c707b8485df46d5ec6c69c0c4d34960ac6c90b3","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.3.tgz","fileCount":26,"unpackedSize":72331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpR4JCRA9TVsSAnZWagAAPAsP/A32NvQrv15xGVUxX/9i\nlmFAaxtgxUW2z6sO65zaNH7SH/SYSKSXpmsWmP581uhdHvGSP/8cntITCafx\nbmnkKwqG57OryHna0gxx1HOb7FN3jggbfl43Q8Ut23nkP6fIdrWqS5kI3goW\nneQRJOGLZG0lYDcYZ5iuyybyvnYPP4oY7Ed7SUY4HZcKKxl5hQVNaTx+tCW4\nuDhgoV9DfNyE5U8+DQXihmgyYanjqIXL8/4xwO75GPXyW/YaeVK8iKLFjs6H\nY74k8rhs8Qc9P4T1LQPy+EcDzglCnZMoZc72CfSs63RJOzgrodSGOWi8R4J8\ngeQ2vg9EKKsQYLgE7BDXE4p8+Szr8xXw3i/5Xnval3KLgzEv4Pe3gSlPagmP\nLqSdaIjIHQiaELwz+fVv1sUdIAcwqbitDNH4uWRZ8B7WR39eLNBJDNfhwZbD\nJLg0LHDC97M/A9bwhyWRI/jGh3JwP9bZEDQO2g/c9Z4TKffZG5dCi0LFAh+J\npy5Dw2FZ0wXHjUXNkePfyZH1aKDqVBsZAZL5rMv4M1NXhE2SQeXJicE4pQN6\nBbqqflJhZHFAPUNwGTqIOiK0Corq+PJC4jeqouYPX0YvA8J243zIjRKFG1NL\nFieLOKzZZfw6tE0+VwG0HBfhcRAOQmoXaZS9lM9xQWMOKB3umV59QsT/tm0h\ncJpy\r\n=oJKE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBJEp1B1CdVWHMhGebPgW9KZpeScjNPrVbgu4N7eGbnMAiEAtumHvKJlqfJK3LpMX/ivM7IR1IhLusHbwTKp+QucrJ8="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.3_1621433865458_0.1849938347022526"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-05-25--13-03":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-05-25--13-03","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.0.0-2021-05-25--13-03"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"bd533753ec41cf4673d0393c42ed081d3a4e4f34","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-05-25--13-03","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-hygR86CiG7xX0+djx6U34bS/jUYeIbNrAufmG166OoOq3QQO33PEfpnhDTQHp1C3SAA7CMCkEHkcOoEmVcgBWw==","shasum":"bb93181bca2c2874f501a76ce51ec8a44cdd095d","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-05-25--13-03.tgz","fileCount":26,"unpackedSize":71887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrPXtCRA9TVsSAnZWagAAfYwP/3XiOdA8RXfsmtw6dr1U\ns6jHMpQDMIpGPztm/uclli2htuB0awIJcuHtWkgBdLzAD16RcrIlFgEQFJ4E\ndmHA3aJyYocrsQQp0VTPsumWPWBeDucNOpFbl+Iqjjelpu2uhaw9Cqk0/uxR\nknJ1hKobV2QwOEM65pD4a2oi1yR5wmjTa37vKv7pkASpWeMF0coyju7aqmD7\nLbFZFi//sKH8x1VH3oPvshbD6DALod+5f/4RMiEmxmRXfQl9enM59ktKh7zx\nBphkpDMKxZDH3XrLPqcWIZpv9JhpiqSAzEJPjh4/3dYRwYolunx54VbTGXtl\n855psz17o8It+blL42o0w0oWCGbJOymrLs4pIZlhr6sQOoktAueOtEPSWYl/\ncPkMY9XYWhLgJWuSeNWtHtGrs3wY5MHmnJzQdLVBRnQuIJmbohatCu6cL7ZT\nGaBo2+GhMbsaedHwmS6Ry3nXPxCY2+pUpkklk6rVPGaQSpr7LjddoDT2OXeR\nfW1hWEkVjzJ5m5nPcsAn/OF+7eE5u0szp51yvpltqxFPtgo9bHYcX4glSSfA\nsDFgGR/rpgGlUOrGpq8a4x7AkKYn29oprl5Sokny5k6BGLfhagei48z1GJEr\nAYoXlv7ssObtd06vKfCh+N+KcaUrKWAagu9hVT98wOQE5Ti4hRDL2aWQAQKW\nR7+b\r\n=wyyu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICXRv6golOw3PX3bXKT2r69beKwRhPkF3ZZzs9Arj0KtAiEAthXlqY62bydkLTD8uu4Fn+wUFor/bOHXC7vd5VnKOr8="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-05-25--13-03_1621947884756_0.712581348904221"},"_hasShrinkwrap":false},"0.0.0-2021-05-26--07-22":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-05-26--07-22","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.0.0-2021-05-26--07-22"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"2b31e4e63d0670d8067ee32ba46ce1979d17a6f8","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-05-26--07-22","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-UnKbXv/tRBSrGOEXmABzFxrqo2HhRjHyXIgpG4qrKhbndI2iIc+8w6hUw32rpV104eGVX8ZKXy+BSjc8VigcvA==","shasum":"ff08b0bd1458cb0bf3624a05799dff50b5757a2e","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-05-26--07-22.tgz","fileCount":26,"unpackedSize":71887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrfdqCRA9TVsSAnZWagAA2SMP+gMFbcmxYRb495l8VpCD\nBJbeGjFaM6asp3V7RMKZC//GtSZk6khVtSljIhyDpTa/6eWiN8UAuLBg3pAN\n6hu0Czq3II72zLKlzAevb0qwshYXBtuIiW2T2B3FI6gjA+dRdR3YY6IX2rUe\nvxdm3lthpZVVj/52j7MLNXK4W2vrfJDgVY+sgd2X4mWUwuK3rWelMwiQrLwj\nMgAgZjGPDh11oByTxqnrITZc5DYSbSZ7AqfSrY5iDO87ZOarmIxmR29bO+RE\nl301Yaj+8rUWp/0qSNfTHwaDSC2mhUOsQ8DovI8oRPusDgxj3miL4fndXRFZ\nYS3h6/AQOoHKcaLJHxXod+PxaTuPeGhIW8phK15RfHtWFAZXlEz/OuKsof5/\n2vV/Or2xzcIEv6PjszWWuGDrVyR7WejCjOkevsMoZAkfTaHplzN78RTe2n5R\nzBOyARMggiCjaq1FGsO4rqSV/kMhPFcFfqUZMgMGfED09PA4N32FyH7Dr15d\nNjxSj3cZ9WcawlFt7skT8SOXlt61FEksW9edZr0A5ss/2e78UVmzlflCoGUo\nEu9ZvsU2ODQiwQU3GWQ5WklFZGSduT0e7T+P1N7MDTKByEgqGBOmqA8An4WM\nxpzCyzoGjH8b27zxnssv5EDmLyptoqidpucLhX2owjWjVSDazjm0pPTeVivF\nxNwl\r\n=dzis\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGwaYgw2PRb+pvh8wsXgXgyjJfQElUBl4xLupoodgJXRAiARWLtZDJsWgcQOG92nZxvq+4JtnXxzX7+AExjzh6nQCw=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-05-26--07-22_1622013802187_0.8493809477409071"},"_hasShrinkwrap":false},"0.0.0-2021-05-26--15-12":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-05-26--15-12","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.0.0-2021-05-26--15-12"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.3.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"6f64818f1e8c571b9e7341a8f019edb26605ea66","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-05-26--15-12","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-pSy2bi5fTZubGrqzaFfARLF/EVR0JD8WUxzoD5QiSj34lQs4YKFVKwpfPgiR5PHSKcy12MMCkGyl21wiBCymgw==","shasum":"ea18b4a6fac3f2db7f9f5eacdf0f50f9ebc1f131","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-05-26--15-12.tgz","fileCount":26,"unpackedSize":71887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrmWrCRA9TVsSAnZWagAAtIgP/1fQnBDzQzUGNzwI65EW\n//usETLfCTKgHGNSJkXbTPSForEXQjJ/7Dnrr33yX62U5SvGZpBKobmr0RLX\nj+tA6OwJ8dqo+x5xpVLQ6GdXDuZi5ish1rtYbKssrOuYG4PyBauKsTU6Ymsa\nfg9mCDnfpDicFXriYTmKoteTVBAGGKsG/F4KNcTy6MM4DhkO7znWNhoYSeh9\nBreh9VIU4fHHXgj0gTKSnrMffaN9EhIT4iCmy/+xc/LOKyD+aotcxnHW+i4X\nsrWBlhpjqyILl1s6h70L9v8/H1m+0HaJjc5lqxv6SV63TX6H0ROZfBsR6oif\ny2OLyb8Hf9W5swHEtPDi63xYqiNn9dGJne8eNrkiVXFMrjcGPuHvRlLrab8Z\nKLSkZVE5Ht052kORCCYup0gra3l4CWQm2VKPV2fJkR62UgFjtUIi180zDlfg\nlY9qw1tvSjhuZ1rEnTJLZ8EWiFOLtZ0T/YpuoevHmOwZ9AKdTVVGF6YKgcsU\n41hiq0u+3Vi9+RmvpeZBeA7dx12yYg9tgYpEe42FQS/luGrs/v/dLQZdPkN9\ntH19I2hG+Aq08GHT+Pg5cMox4k6sUj3qq7LQwfzMfybzEDj+yG6Zsj89oibE\nDA3Sqik1pL0lTDrlNXQ+OqQ1wPWaLShlrZ1ISIRaBLY7kB8NcGnf2TJUa6Eq\nxHJA\r\n=1pMH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh+i029so65q+QswqAGZSfEz0tS6z54hARr83pvp7tTAIhAKls+H2ysvVuThMV4JC8wfxmOSxVetxidjFUcYl/t4mi"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-05-26--15-12_1622042027565_0.7532184253655068"},"_hasShrinkwrap":false},"0.4.4":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.4","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.2"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":"ts-node/register"},"gitHead":"0ffb67e586f78c6b091b3af5fad8656fde819202","_id":"opentelemetry-instrumentation-aws-sdk@0.4.4","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-U14/231WnG84Z1RuLZ6NfB4rShcLyPcsks0fe5VfqcNAcX6sb8HidXgclRSPGECUyGrfanCH+TsUr8yCYA2P0g==","shasum":"c42df2ee38185a7ed3608d284a3762b2c1f7b523","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.4.tgz","fileCount":26,"unpackedSize":72621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtOdlCRA9TVsSAnZWagAATo8QAIRPCIyD/FBxtt2U2OGJ\nxLbRoNJGhwI3lETU/W1FZWcjGyHZlXi0mDJqQS3KCR1J79tHdmg5H3jwyDi3\nhhKLUGnQ8GdBMoPSPiEcUY6WwRJpnYRBVOKSNU+zGAbXMgpUOI+ZSZgWKJq1\nTMmVQBj8XtW/RkbYwQY7YZ+bLWezlAUn05X8g0EGM+d0hyWltmjKyGv180mJ\ntupARU3G424Oi+4fI3slcoOqhPdprvc/RzSq/lVZuoUFPlb5eiInSN8RZhFL\n4MJaZLYxaIYsDiejpsROjI/7EBOnZMBIi37rsFaQA8s19M/3I6hJDoBL11PT\nIemHaiAL5C1l7baIFbTsxvc5OBuS3OjEbE9UL49cTjQTo7iDTXxS8mM7DH+5\nY9V2POhUeB7yBXesYS2Yr2KJod15Jguo+e1O0tRv3epFC0bjel+9o+9jcRNB\n3vbmblLa3dQDcEygWu/LjpYv8y1Ae6p7y2pawfsmBqRaZeWlk3ual944I8+P\n/lPm2FnxkquxYxRINtAG7waFcK24Wh6eUdzG4LanjGVzqVAP5bsX5u8Ic3XL\nW/Jq1lew9ZLutG7MmS0kgrnLJqQgyViFUIzSSIg/x2NLdbPjNzDpePXAWBUr\nL5g16/blvLoNFRWIhYOJ7kJ4KuK1FrRdl/xSJrJ3B48sq9EKVQJ1w3AB6ivl\nEhQe\r\n=FtKO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZruQWFmsqIvqA1G7YHBJKusG7xa30wjWmTLq3YISPmAiAbK1kT2iRAZqb9BQsD/mgcS3yVPQZumpYrsdp2H8mSqg=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.4_1622468453047_0.20374213492397453"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-05-31--14-38":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-05-31--14-38","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.0.0-2021-05-31--14-38"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/node":"^0.19.0","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.0","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-05-31--14-38","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"bd5bce12191c8173f30d62733cb45d2dc0feb610","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-05-31--14-38","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-O65fJQ/jC6MLA5p6ugyeSaXGcRnPBBP0IJT7qFyt2LUoX75I1yYZu9eWNvjY9GvnwLDScY/o4I8n2fspKdrGLg==","shasum":"8403f2b627efac0816a8a0b4e08ea1e2ee2adda8","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-05-31--14-38.tgz","fileCount":26,"unpackedSize":73095,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtPVACRA9TVsSAnZWagAAiQIP/2ijfy9/Iop4AwAoiG7/\nlIPF1LdHUjQzipaKXGjqmxyaqfamv3TdqYWFVFsZew90r7T0ZDMPsVCfM4Pt\ns/bLBh1/RL+9ZcUeIXIrOzlB3uMH5u9qC+yVTHQqJvwslxYiZQAOn8gkG5PJ\n9rXS27lu8KgfWiE5WQPiKlby2Y1ER3kt27uDSTW4+QeQnES/SQnKG342gjOb\nHLqCOR1u/Pm5uvD2qdze2MzMJwfqUMuONXv69ReArKFBvffinxFkDDH61gwA\n6sVLtZBxjNBK6gMUL9Iw6pPex0RMxI1OMH+q2dMQ+NWvgAQdYV+YcKonkxL2\n0t4+ymrGNcq1hIANgpyTNuNofuQYkr5Yiy7FARyuBwQF9QX5VI8fHnbso8Ek\nk32ookpOoEaRQtu6PgF1k6GaIEHULzUS+87ivSWWq3ym0G6grjfgLonAi2T4\nBHKwytzLIVkVYlkFaARu0frxY6QHtb8glK6IYMH46jH6pcVg12tIBikRQ8QJ\nTDThhQI4zLCYqCCIezEHUDepp801SLGc8WfL9YVGyqQXMIKvAziWHdOhys4T\nvVpx/EV5ikejj88jvN/NygO9hdYtKCRdVtbyq/UxhzSW9xDyufQ02DwQG2ir\nKxlLRyfc+kvR2PEHfDEHKf77VAiw8pKD3oh2n/673jJ3/W3rEmOVdfDBuYSO\n4wg/\r\n=xiLl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2PkclZdBXFYgIacipdEGzewmbod8KSKE+6sYAC1GSNAiEA8XLaEEM247vPwY29b2JlaBMKYY1EZ5SJG3XAUvFVNyQ="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-05-31--14-38_1622472000103_0.6470098645035791"},"_hasShrinkwrap":false},"0.4.5":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.4.5","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^1.0.0-rc.0","@opentelemetry/instrumentation":"^0.19.0","@opentelemetry/semantic-conventions":"^0.19.0","opentelemetry-propagation-utils":"^0.6.2"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.19.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.0","opentelemetry-instrumentation-testing-utils":"^0.4.1","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"909b2e07091c7a7e88e29438f936bb30b6416c1f","_id":"opentelemetry-instrumentation-aws-sdk@0.4.5","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-oa63Bn1xjhAb9m/LaDZwJ/ID/xBmuyt5QL1XPizSQNUgBBgzQ0MiSmHnBQ8aRoTscH9QGDWLM+ALYf4TM+2fIw==","shasum":"e5a46e81c2aab647b04ecb348eef245143ab7124","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.4.5.tgz","fileCount":26,"unpackedSize":73221,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt25eCRA9TVsSAnZWagAA+2kP/idqdMdIKdK0/QG0yoUe\nwzaNcGjDuJeL5ZUvRI2HNGQZfBT84eZTCRiV12AcFct2Y19r7xPrabKomYk2\nlPUB1nsC/09hvEie9/HDCJqCjmFpQ9Ql3Vzr8yRAGs+0c9dPk7mejA1pxyHo\nrzz1Mcd8n43O3m2qE8FIErtVGwAiZhawf2bgElewzWPTN5PvzexAy4oHZYnt\nSpoCrwv3i/LmvwYsQebrcNTo6s/p0Z/+x1OMaZaGy0nw8Y0naK4IRjFgK0HK\nSD+vd5lf2TTQz/FUzWizM2pXdsEbYDqqWeTpCYbb2yxnbPnEAGaF9VwKDdcl\n8e8/sXdqbRFGm5vV2gcS6J5bnESfFrkPjwf7NRzAb0QXjVRop+q3Bv7hLnAn\nFPbEKwTgWGIa+9CUhsjkpFiSw1btJOj4z5GH5J/3tUcQH//jcB/ObDR4WdlZ\nMEPlJA1yO6af4hwlDs6//u7wG/KzCC6/BiTtR7Bp06bLZfxPkO0vPeajJmCK\ndH+8TIApk+9EOuYVk3ft8fieDoXH5CLq03jzQiKvfnbJbxG0UNxC/jwSDELa\nkATa9Wg20b1ZeDpNDdBN1LowxbEoRUx2yhjQMU3GrUZdoPYE9d5m2cgAERzp\nCB1T6JFBtumCO1YEYXNdwh+i2N3BOcq0U7VdZDzGwdMbee9g6YhudyAH5f9D\nIU4E\r\n=WspP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBh8I3xqMokwE/7jtuL2Jep95oCZn4lADXL5tx+lIUJEAiEA3+9sGrD463XLTU3fAaSvTXIMghpGW9qA4nLl/DP8HLo="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.4.5_1622634077425_0.13580099372007193"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-06-07--07-42":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-07--07-42","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.20.0","@opentelemetry/core":"^0.20.0","@opentelemetry/instrumentation":"^0.20.0","@opentelemetry/semantic-conventions":"^0.20.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-07--07-42"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.20.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.0","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-07--07-42","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"bb0e4af3e4a101755c22fdb692be07a6ddeef51d","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-07--07-42","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-FAzCXZd5lddyFK3qe+TE8/lOkXXbta8WjTmxqIZuF68qVXyypIS59wgTp6RYZCdiJwxx71gyRc3N2c05zKblSw==","shasum":"4b2c3c4255e31eca6ba286a5c1b86e7890f19c28","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-07--07-42.tgz","fileCount":26,"unpackedSize":73413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvc44CRA9TVsSAnZWagAAuzkP/iWAWd6ClE//Yu+mOY+T\n+3hn//kNYnKLYRfmoUJh/ozcDWrhIo0TE5DrsRNZE83HM5PnrqgkELcHyZFS\nkuGaT3QNuU7w7XfGnj6LYr80iQ4PvZzS/PMz6lxdsGIr7J92IQK+v7JZ8sL9\nMCSSOtg8Zrt2XiVcscegn5Pv03KXFuUYMKo1rslb7OZrt6w5GaWfXP5prgYH\nqHFw4KzJ6JUXnrBnIYucC0vn1n3UNxSpzJvyNtpW9yb9A+uncHjsOPMwh5UE\n9Wzkv+2KHaoI+HM4ZzpR3c4JB2A9XTRaBkvCc2NT0Tk6DyjfA8lO1474pYec\ncgSovzY16pPsHWsJwZxSVQLYwruOQsGJNDUdciq65gAiCH+vAed9b7t00g+L\ny06BHqfB3zy98y6LWXfu+beUsrHpkX8NCE6TurxrTyDN+twfZAaXGzG9Tz/y\n7aczTyASZn/4vxYauzrDAiIFdUALaj8vnki3MZ0RJEWHg8832PSyA7SedarO\ndLSq1qqdYEkPnf1tCbISew3bdZFY4ZVyY43ibzAijD7/Bs3/cUMWwWKOKFp7\nvn3cPOX3Z3TM8sALk5WW4N5+u2kcICnBy7TGwESqofbwhPOk6qV8JHNCeN51\n03XWCZ/GOv+F2XC6ccU5vQ9YGcr+9aO20uiHq6vDqsVCuQY2mfPD3jtkkPjB\n8xYH\r\n=uXJp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICv1yqdjXHe75oETLU+XHgdNko9K16TMD2m8paxRLAjJAiARJWtr/PWO0W9hNku99HRDBZ/NR/Zsp/S7+kLWLKklSA=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-07--07-42_1623051832223_0.24522558069901912"},"_hasShrinkwrap":false},"0.0.0-2021-06-09--06-50":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-09--06-50","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.20.0","@opentelemetry/core":"^0.20.0","@opentelemetry/instrumentation":"^0.20.0","@opentelemetry/semantic-conventions":"^0.20.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-09--06-50"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.20.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.1","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-09--06-50","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"89781f894dff1488c9794fd361dea0b63f4c9be3","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-09--06-50","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-ktLdoMjrtVEekLGT5sXbucOKFp0O8c+g8+8OsOnAj01U5rRQoOjiiUAmkifLEY1P0IrFYLntaa93NEeTcnKNhQ==","shasum":"819eb152ebc385637fe8ed491e040924d7657360","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-09--06-50.tgz","fileCount":26,"unpackedSize":73413,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwGTjCRA9TVsSAnZWagAAaDsP/01lbx8maL7WKgQUut5G\nW4vZrF6EhqUU34zS64vyLY9v1TNSyKgGa7tof9FSzVSh1qLA1J9fYlyNl29j\nol0S32QC/8PmL+xqpzKcrQpZfZojrxPVPCwWHG6HaOLZtpe48IdeyndlhgPF\nTjAMSXRD5Lu0067sCaCIQVcWn4T4+GHcR2WfnP5Ar8XI/sbx21GNXTYD/nfx\neNGggjVsWU2oYB72hSx+HFWzZ+DUr15f0C5hg6lHtWxpS17TCAkCmSgnBm+E\n3Bxm5zyeoMpJgJB4JetvrpcR/86pA2DgXDov1X9tbfXF+/ayN1OBc1oDFXsV\npFbbfJwXf/EG/1fIZiKANcvLbL4WCrKnZ9JzDq7ov0kP6j8qkA4RQW/ox6iq\n2sDBjxMNxirZwAFXNb5+/UPVOYqLDYmC/8QjuKC2jl7hg61uvfAyw/yvXmd+\nbbghP7+XV3mS7S6k7lYeXk9V31Rqqm32LDAYzEzWCPMa7qZqPKpwpb9sygqt\n13rxsKcx0E/DqRXtYSENbKYNEtTXlp/LHEOuI+YX03H83Hzgs2axKrsMlUIg\nJw+ld8gLYXkdurNwZszTWucS8ENwajN7y4Sel0C1eBWCm9fxoP4l8bgaeojU\nQXZTfkVFPeq/Lorv4lxotNJwFCMSst24obtdtZ9oe+XVbJGqFim0M4PfbQ3K\n8Wq8\r\n=APRt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3CE8YE/bK+yL5vKBLJcOxLtrz1ocockBueonL3BXddAIhAL3am+TnnAAB9BwhuW8UG1yUl6HlI5KEylfJgBrUhIEJ"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-09--06-50_1623221475805_0.5227832864479429"},"_hasShrinkwrap":false},"0.5.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.5.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.20.0","@opentelemetry/core":"^0.20.0","@opentelemetry/instrumentation":"^0.20.0","@opentelemetry/semantic-conventions":"^0.20.0","opentelemetry-propagation-utils":"^0.7.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.20.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.1","opentelemetry-instrumentation-testing-utils":"^0.5.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"5d2d40dae3dde329743437740a7987ac53e7814d","_id":"opentelemetry-instrumentation-aws-sdk@0.5.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-JVccPFZxLDVtkDUvVuWQzCpC/QbmaRAEafSp7vgkqX5+JwLLmGX/1rpr678F1/1UWPLspt7OrmI5t4XaRTBp5Q==","shasum":"78f26cf20e3cafd7b66ec7e4d26b9a474a0cd838","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.5.0.tgz","fileCount":26,"unpackedSize":73580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwIYKCRA9TVsSAnZWagAAF1wP+wQ3ZzifN5s0VoFxRA71\nwaDBS8eRB13tonMhYnwy2MtdtV8pjZsxacHJoJ4MexDWUptqQXX+4mG0DDTN\nBtpEmN+24YZxyheGgjUUb0gwc4KmwGEPCWfBBY3r20SGi1/ltCXvMp9EzuBO\n3+2YMofpfsc/UFqEmS0JJahQQ/CjYfERtvJJdg4qmmyV9wQAHqHqNyWkCkwP\nIjRmXiFQbkqikfhTyy9Wq8N5FI7EkOpqU+EKegTp7Opbv3vmMC4wKkseCjTQ\nw+G3q/OXlkha59uSKxfWB6uSxN2+T4lTV08A6zy+rV4OHJbf2uZ47aPfUQeQ\nQ7U/AuPHeEAa4KdhBCpz8lfK2WZrqgvOBzKVsHnMBb9i3XSBo8I7e7rnGxfw\nehi33mWskH/a9WNDIjc7dyMnKLZRN6tHamRmU59rkIhUn0A51xn1fdRYbLpl\nL9teFywxxkWBSqy6C9DRoEo/RYqkbhZgh8RHr0mnMHGRsTNDwN9/AJRi1tAi\nCfYyZv8gVGA4iX5AJs0fbd5o2cEsxpotKQu0I3rR9fSZT7ubzMar06K7MX4g\nXTNffiAsW46t8nRrQEXC/AJsGr0z/PPnTjsLrNF1b67K5W16d6Vcp7nSpOAD\nzR+pAH6kSgXAmS551Nx2SKXCJ35j98Qf4995eM7OZKNVQiTPdWZuD8AsQCJt\nm/7T\r\n=DKVx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCHxb6nH1C4uj0n98LZZuai5whIjDY3wfC1SI3lAmMTOoCIQDqU5i3KdSIrfJNPTzu1g4Lo8NOZZBfxyQJIWRhcnL27A=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.5.0_1623229962108_0.030424629386228252"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-06-14--13-06":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-14--13-06","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.20.0","@opentelemetry/core":"^0.20.0","@opentelemetry/instrumentation":"^0.20.0","@opentelemetry/semantic-conventions":"^0.20.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-14--13-06"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.20.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.1","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-14--13-06","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"7c1bec0d45e4e1729da931048881068dd80a4b90","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-14--13-06","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-+0zpBuZ1iyvLKDqDVi/HNFQQAeOYWZcz4M16PnD3GN9OhlTBz3HsNppcWJHV/VQmqVztS0QtrD5ZSl1oFZEEFA==","shasum":"9f01dd22422b169f8b5365f07240d938e092966e","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-14--13-06.tgz","fileCount":26,"unpackedSize":73670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx1SGCRA9TVsSAnZWagAAVDoQAJlf4BK0LAL4pNjfjO3y\n8HJ+i2PNaFApMDJvBP8bl18RqQHFQXoZZY2koNkicTC766jx98hVjRztlIGi\n7mJ6U/GHTHV93ckzOVn7xLtet5nhcvTMDC3bABoAW2oqkHd7mZ6A+Lguxj/l\nNDWQi4ys8d6K7fpT0krAxZAsgjYaSaaLgmnNnS8dru58h74q5uoQPBRfkMIc\nb1tknVxtgWRFxRk4bw1WRmNfuVcdGLTQibw128naXT4b0MGTUS6Hkoi+yslA\neyFeN8x7bJAan9U/z1UbIH+agDFz7y0s3nWqaQ1ZQrTQgY6IDqK6YSP8izsu\nfr8612n/DjWz8JbuKlIbu9piOJktRyW/vrJuMhU0CAYtaOvx+i4gUA1/B+C2\nuOqAospdDb/Ji5h5ziES86umFWa5zBpgmSX1LiEkJvY0JdPOiWRa9eFFXRLl\nFmG95JEljhyTBKfXVbEnDRftfUwjjeA3TTjecfhP39Ar6tUbCfKVSPdH0xDq\nK1/HB1Carw49jloYqHNr2fw+Up1qe2ifFpjUf7m83wKUbkCP+LDi6GmNesK1\nNBcEzDucmvr9YGXDaRm3lTqTrO9aFJww7JEOt/iJUdR0ahht0RCXzxPNW32P\n2m27wacM1myayO9Uy+ykvrXSbX807HW0CVTe/refR3QzTQ8o9qvcDVSiJH2C\nIivz\r\n=We/l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFHRt13lhxCaDRVkiBZvI/MYzgKvTf50mNYOiMwd+NZQIhAIW1t99RfGZZ4GA181aytXzcJNaHJj41hTJWkRFw25Un"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-14--13-06_1623676037913_0.7384598772217603"},"_hasShrinkwrap":false},"0.5.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.5.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.20.0","@opentelemetry/core":"^0.20.0","@opentelemetry/instrumentation":"^0.20.0","@opentelemetry/semantic-conventions":"^0.20.0","opentelemetry-propagation-utils":"^0.7.1"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.20.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.1","opentelemetry-instrumentation-testing-utils":"^0.5.1","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"5922581fbe66f3590eeabc9e1983e33fc1ab3021","_id":"opentelemetry-instrumentation-aws-sdk@0.5.1","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-nFRme462TuDawwBpqkbJo5HyTogD9zx/hOpl6vt2TN/crmJaoNDrwSw1S13LkJULULD/q5yhN7z59OFDFaYLMw==","shasum":"27a468379429b4765b73ee6f986fe13510799628","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.5.1.tgz","fileCount":26,"unpackedSize":74029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgycJQCRA9TVsSAnZWagAABOYP/RExUmBTkt+yovlBaygH\nRJ3XykXNZb7Yu4vDV0wB/1wwSj9wI9JqvOxtgamxB2DTHztp270ZENiUGot4\nSDNgELX/Xg4/fvkzBf06EJ9AIbyDMyuivlFCRZbHliAREhHObHBfD3zSLkUV\nmEPpDkSYJG1O1YK5w7ioTjuW6/oozAcxREg5SWJOrSy5gett/z0pL0GtAo1E\nz8VfMArx8gr1Nu6oAlMsbXauPjY6tess5bGXXwMB9Um8TJalb2yX+MK0ZpLm\naNGkMSNkjwtIvOAtbMgVMQNEt3bCuoN6MSnqZvClKu42KkKyWb34o40KlFic\nWuIHlpEnA+0AtGGsYKawcIv9e7sZDimFBA4lkbpjkkpO0OJI4E2TE59+XoGI\n0HqDXonpZVakR2LJS/bUKRwlv4DZWSHxhos4h1rSPtgZczitHIMP01jTpHad\nS4VRorpKhuHmCx0MRhIGs+qJq8ncHDA9eaCkSkC5nz20U9C+2RLz/nlf6EEc\nqpNYJmjaLFVagyncx3ahCM3rel2/B84qlIVofAC7s5Uh8YqJR1IjXkW+isdD\nfb9Pp6KFKMvUC11kFiDrVevsmpHL+qsiSyMoBH5ktAgLzYqR5xG/3ytBMS1g\ndA8ByyhnXfgHxgJEwVpaEHI5Ba8g8oLKit05oYYzzcABUY/Qu+xJFwbzKIrX\ni0rr\r\n=u5Uh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuLhyuI6gj8+7JIiafXRXtNnG33s/HdOnKL5wPl0BZ8QIhAMGoDWv8VoKE9LVjACVF1YYvS6dmEyhNOXZWvZzrBRyw"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.5.1_1623835216030_0.7264094051670575"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-06-17--13-11":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-17--13-11","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"dependencies":{"@opentelemetry/api":"^0.20.0","@opentelemetry/core":"^0.20.0","@opentelemetry/instrumentation":"^0.20.0","@opentelemetry/semantic-conventions":"^0.20.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-17--13-11"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/tracing":"^0.20.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"^0.0.1-rc.1","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-17--13-11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"394b69f3cbe81fb9c51c6571e782f08126d97735","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-17--13-11","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-I6W3WlkJV9vCpUgoNlQWYXuOoDO2rEMZTt+sULdDtsZo5yOI2TCV2RIQFeHMXD/nnbsgS8qZzrnBvcW5nIe55Q==","shasum":"fa0c893034b212caa5dd985b65cdc02bc5cadfca","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-17--13-11.tgz","fileCount":26,"unpackedSize":74119,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgy0o9CRA9TVsSAnZWagAAnS8P/2zTaW7qr5yWCYaYzoM+\n6o9WMOejuhfrlgMtaA0SkRh2dEXIge2uBSMYeV66hT6f02xfZZ3ZRbbwsyBX\nuuXkTTu1a1S4iVB5o09GSQqITCH01UJOGxmVNz135oAurxPSsQvNRsy5enNd\n94CwVNfk8zR+BBKyhmRlfrbVp2cjz12kyDB0M0Hsx8v8MpVrXuXtuCVhkL3S\n4/cFyrqBOOMJsM1ijpr8GPT3o4eYQoGBhAnILV/+jH1H4mww2JsNx2LGuLaA\nTW0MFeSpdjdPo+svavaACG1YS6UYnX2gTHOy7d/Zyw+4XhzNtK4AVUTMdRbA\ng2d14AVcAFvOi4xRgu7oL6LS65TP5QbG4iFxQCvN8mYbEEE71Riji+weaD8a\nh0YGVayDlO+t3/a23zgYznRKjEPyFYkT1iLoKwaV7jcIJeXw0mp0iwufmMbR\nPAJO1DlQiAUfclDLQKUJyONOxxIkAxDL84wn3nN54eH3KeeD3DLPcsUEBHX9\n+P1x7lnczZ3AOd1hDnm1hOXbZMrLGdfH0iGv5QJ5IzTyDdS0lswoG9yrRTi6\n56mEmuUGxGjWYQAtE1PNg+j25Te+b4ikGZoehe8I9H8hinMoko5Rl6sbVgr3\n+ymuCl/5Hd/z7scBHtKP9fw7RqtMV5Z+o0CqhVBBnoVDI0A8kkNbFbbAAWGn\nYkh2\r\n=rFSW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCi9qKjtYHhWfk8+RcBD6cXjWC8GVclrxVz1j2EJdeDdAIgQt7F58kgRE3teQjD9876ds1Ng6Me8cY0gaNYTzllqiI="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-17--13-11_1623935548592_0.16102420359978264"},"_hasShrinkwrap":false},"0.21.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.21.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"dependencies":{"@opentelemetry/core":"^0.21.0","@opentelemetry/instrumentation":"^0.21.0","@opentelemetry/semantic-conventions":"^0.21.0","opentelemetry-propagation-utils":"^0.21.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^0.21.0","@opentelemetry/tracing":"^0.21.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.2","opentelemetry-instrumentation-testing-utils":"^0.21.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"0eb9c76b2bbcf85cb228e2301ce0cc1346076808","_id":"opentelemetry-instrumentation-aws-sdk@0.21.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-PfMyKnvK+RoJNgbrKzHpF1W6+6QcJUXMJyskhYD1+8ZADxzPXkkrdpvRD9E+g5uBAnMDg9hmgbqcst5wfbJYhQ==","shasum":"850e3e9e84d55e6e05351533b3e3e0a354052bda","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.21.0.tgz","fileCount":26,"unpackedSize":74477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzxMnCRA9TVsSAnZWagAADVYP/0+Co4gN3j3vNa0aYUrv\ndyzntDbmT8A1asEWHsmgKo5I9TUpHl9dSJRDNhQ8mUM3xEWStrqS8nCFuAdD\ngJSRCybmyQlWER5GLuwxvwNEXnSo+OGjah8HLFV9wu8Yd05vWpfsVOC4MCAg\nBI/HoAsxt0Xe7PlXYadxOePPYFYCG7iJwkeFNYFqAOuTWzpqJ16pf+gEOHxe\n8ZKoYytzlmL3mzn/+ElM64Y0TEV3UNsbILZjvfDCBRjAuMipg7ias49c5DAU\nXq0kjQvFHYVmm2ikVebS8Gkkg+2yXcgS0fhh1AZDL0UBvmqJGcWm/WAxUMN2\nYzUX7djeNUAGxHZl9TyvjAo8hfwPA6Ngfjeh+KJ0aaJXDfZQuneljrEyUam/\nOGF1BwW5Q1vgRfWstz/iSc3t80uWfqB/4wZvC1CUGPXIYi2lNJ9c9EmdiqFs\nhJgXpcpC21FSEyN1KNBrktwAiVxFQblMtkswiiQArC7Stx10plQlZc7wJAfu\nFxDFrHddXIXeCg+M2P1yRnwZcLaaYUCz3mBnIkbBNoRYztu24aPpI6/YC11D\nMjKgmCvBPcBN/kOp5pn0cKEMHe29ciomLF67fkMi0BvJ1jC8aySqbbZewYLU\nJO6AiPUZxU4YBOFZACQsFVxAOEWpUQji7ur9LCMGvEHK8iD2saw2oT7fS4u8\nTwDH\r\n=9W58\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD82lhORaI/wx0Y6MhBKDd863lSZAYowhktmTBgGjQ4OgIhAJUPo3uYxYD56/HbKvJUqIK0MxVtw7iFe5g7JRpe/GFW"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.21.0_1624183591528_0.14034329165471937"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-06-23--07-47":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-23--07-47","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"dependencies":{"@opentelemetry/core":"^0.21.0","@opentelemetry/instrumentation":"^0.21.0","@opentelemetry/semantic-conventions":"^0.21.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-23--07-47"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^0.21.0","@opentelemetry/tracing":"^0.21.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.2","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-23--07-47","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"3aa46659e7d7b8cb0038645cab620fce3d08348d","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-23--07-47","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-7g+gYMDN/QPQX+2/GjuLoImMp529Eig3NliFeY0rWu/FW6a4Lydh+ehg/MDXxIu+ejX0R99c6LdRJ0xHCR+X7A==","shasum":"9c5007a7dc44e26fe8d7cce67313fe950a4df3d9","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-23--07-47.tgz","fileCount":26,"unpackedSize":74562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0udxCRA9TVsSAnZWagAAIY8P/3B97qU0ZIWQsAlTYiH7\n9rBoVlv4Nsr00m4AmdQ6fHtfXTifl+vh3EzGpkVRtVym20Eps+XMD5tExNDF\nIMiTzrpFgUf++3zzipLZRge/UT1KBp36tn23UzEm9d1naLEv92BD+cs58fkB\npNfxLWPXOWI+UP34QNWQke0wnLMeJJ+rFnztgw+SU3GLJAShy8XqeUGapGz+\nEPSMwbeSBej4jABoLzKvIfUIh3p4/7YcT/9Ivb58lDdq0o5LbgLQLYNugPM/\nh/v1KO2idDhAYXsL2cEM7xginIFKsQJg2sHWyVdRj/xequ38y782jWrRIfJ4\nSBfepea55rW6pEKQASWRv59Ioze8TVJ5eaJE/JttC8KiwBfcEk2C611MslBz\ns16l2b6p2OxZiUNyTAlRRKhJIRhm+z5F2QHJkYRGNmdHpEJ4OSNzbGMpdTLc\nxvbC1o9Ef2NwpclzvDuUgraY3bvtH3wbA5Vei5Ycz9OqRb87I2mBNj7PkWYu\n0ko9TVxvaSabhcU8C0tP1NrrsumitE2CQuyk5Xvpp+K78sz5A6mhAUP0itaU\nh04xyo8fSZWrLqu1p2f+li+3mucaRqDiAI4Oto77ihFRY21pS6s4X+xn7aWj\nsR3sMKU1LP3w2yO7Z16nlYz93DuNkotZ6VC8j0H7SN+bWv5NaJcypNxrcWEe\nU9P1\r\n=EODy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBNozQA25kQUxT3eD4fZrbEZheq80o7PJbZiKMrUa/bGAiEA77et1DjlioFDeeLMxdPBcUp8/B7R+YqkSVt1W5g/Pk8="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-23--07-47_1624434544758_0.0029986623035516136"},"_hasShrinkwrap":false},"0.0.0-2021-06-23--08-12":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-23--08-12","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"dependencies":{"@opentelemetry/core":"^0.21.0","@opentelemetry/instrumentation":"^0.21.0","@opentelemetry/semantic-conventions":"^0.21.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-23--08-12"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^0.21.0","@opentelemetry/tracing":"^0.21.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.2","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-23--08-12","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"9219abdec94e8dbeb50e61b1c289c60309c0a56c","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-23--08-12","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-69vkWjM3aOHul20flW2MUiW/5+deQYTR2om8vQOgA0aj7662KSPcIPJbIdCKW2fhgUy8sVwZ3XpPwp7bxvV1Aw==","shasum":"337063c946588ef4cfb1c8e831f2fd6ac0c366bf","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-23--08-12.tgz","fileCount":26,"unpackedSize":74562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0u0gCRA9TVsSAnZWagAAA60P/jJ6oEolPCBic1OwkMSZ\nVbQm86P1MX2zCKRN0VIhP7WQ/8uA16BkVwvHrUkM3RNnw+fcby/0L4A2AyEm\nC20p8nhqx/dfU34eWAhTVkwpkTRaJXahHxlCOkrwvzT8wFtzlKW/O8pgCMlG\n0n+cJu0loSIhtnFNyOc0WxP+xs2LlKNGbVGFKmkOWZE03dsKmb3u9gd90ndr\nRLZZ6ajgC8uK1zYgosJ2ksitdUWl1UOsC9Va0HrzvbpaxQ3VRdGgehDzXYmA\nHcXdc2LpWL215vsypHftJDR6z+SU8IUdgzCUra+g1Ey1dcn6rjyA05cY0B5n\nw6lCvfeDdvqRC97ApL3Lp1adT+lfc8xrY5eSjMpbORKDFASO7kdgERhZ5GOI\nSi6/PU6sz/iIsDZ0b/4uGAhu8vWt3nrluLhDVOR8oEgJE31GRKuB0yJOTVTq\nugToEuvoiIm8bg+97T19coSfSyd6JxHvjwv4uQh7xCEWO6YGQgBKwCCKIrZi\n4DU1c9owDnd+UC0t76NBcSJOi75SFN9uJk1kfJ9z1v3bulcFixMrTd8kw6wn\niryQ1IYWomS6ESJ7ibaftmPXeTNyWhfAYl1PEpcRDMGS8jlFsKGbKGOe4et1\nAiB8/JaGBA3tgJv2etHyLiSUOXF7k5L3oFD8FZ1OGt2J+KueqjhQRFiWWv4z\nw4qx\r\n=rqzI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDs/KvC4S5SsuBPkvMM9gy4qaqPjkksD+eIyUss0RstjAiBw7RenR/RbX66QywS+kcJB8x83dEu6HdelAh+Pb7QBpQ=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-23--08-12_1624436000439_0.6777968617524821"},"_hasShrinkwrap":false},"0.0.0-2021-06-23--15-11":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-06-23--15-11","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^0.21.0"},"dependencies":{"@opentelemetry/core":"^0.21.0","@opentelemetry/instrumentation":"^0.21.0","@opentelemetry/semantic-conventions":"^0.21.0","opentelemetry-propagation-utils":"^0.0.0-2021-06-23--15-11"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^0.21.0","@opentelemetry/tracing":"^0.21.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.2","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-06-23--15-11","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"7faff48d9d7740fef1b799dbbaf1dddc673aa97e","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-06-23--15-11","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-/2Eq45i6NhsgWHsbDOo7lCXm+ZzBJ2g8KPDXHsPvSaxEBalS4BBnoyohqFBX5M3v3Kjkd4BW2m/N4DDm5Dl9hA==","shasum":"4ceafd1bb0174c794207170f62993e535dfaea19","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-06-23--15-11.tgz","fileCount":26,"unpackedSize":74562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0090CRA9TVsSAnZWagAAkeYP/0Vdp/55fAA8/4nwA+gO\nzqW04RQhhkfQIV6PdK9yUo3Hq3H65Cj79VQKxCP7MuMojgS80CpUl0F9zwjC\n9VVK/v8kaDRd2kWxJxPMgZDIbmeenWCG4Zo370u+3IknymdQ8aVs6TJwccqj\nrUiASNxVjSRn7dNMkbqij3EbXVK1Yf7xoTl9nvkl80XrFK22jPZNtzJhGb7x\nu8/JFpPNuef42ks5dKzp5MtB3gi/puSuS1alstumyjhKNSGwjaNIH7qUyBE6\n9CUWn2vZaVQ4/qfQWdkJm/7vLB+YPXiszhg2sQah1CrV7BqdM8Sb8/u7+2cG\nKqk1GSzLql5RJpndsKXx3pxJvFmSaVJqQOpEuYfe3fScILKJntN32I7Alq+Y\nbPt+w0H9EcmK7PTZmUEXUIjPArr/tX4hrNTmESZ8jbkEquzjz26DhqusZh0Z\noCHFlH1/Q3NZN/7FIS5Wi6d3UTQ64S0pNrRLTR0dKifgStFGhXUjBh7lU9rM\ng2U00VEEN9xi90YCK2HORRQQRaaN36yUunMrwU8N9Oi2TT04FD37S8LDma96\nJWAMSp8WIQUneBSHgMe+1CRCChe0HLdUr9vYFC6448/L/qOR6D2s77by+6I7\nM+z+6T6KhqvdQ2vE9hfjS627igL1tLx4iWV8cDKkWLBCJIA7Jj2JphtQvK/u\nwPvj\r\n=Dw3r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8w9zF+6zffkcKeumCNvMqEdpFrycqEcjY/dOxAKVUyQIhAIvIMyfI78oU63Ruag66/USc/wNdUNZbigIR7kSi9eED"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-06-23--15-11_1624461172218_0.8868388804801921"},"_hasShrinkwrap":false},"0.22.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.22.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"dependencies":{"@opentelemetry/core":"^0.22.0","@opentelemetry/instrumentation":"^0.22.0","@opentelemetry/semantic-conventions":"^0.22.0","opentelemetry-propagation-utils":"^0.22.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.0","@opentelemetry/tracing":"^0.22.0","@types/mocha":"^8.2.2","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.3","opentelemetry-instrumentation-testing-utils":"^0.22.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"^4.0.5"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"e9f830a131164f45fcfff1a527a0ade411e5e977","_id":"opentelemetry-instrumentation-aws-sdk@0.22.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-aIeKzdamP6/TkKVt8oNBOIK1kV/BVXPSQG+r0WSHVzreEcDSRStuL+GQIXsn2hRnzY+XdkTad1Mf+626brU0Jg==","shasum":"f4a41ea9661be70c3398a7d5ee4ddc5f21672e23","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.22.0.tgz","fileCount":26,"unpackedSize":74735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2YhMCRA9TVsSAnZWagAAWr0P/jz7BzeE6YKdEgCJdjby\nip5npjGmNHxHYS7pCILfwaPv3E3j80osOjLRj+Yt+6537p0nUC3jIzMYtOGJ\nKidoKjwOyVo8obAlli0txVyGGz2RZDD21q5gG8L129rsNhSOcXcT7kS9agAm\nOINECUrLohuDNLj3q5qIsEqO34goZ/UsRGig2tKYkmUblQMpuk00EbKbp3Uz\natnvXmpQDRcinF3tOJguioMk7ce97bp7cELQIYGL6TAH0L261Q4Ef6YuS2pq\nVLvEPsIdrUfbsS2Fb41w8nUL/XPFo43YPiF5ajMOTGElYXCQViFsyqDQkF91\n6Kpx81q3l0XZkzyUrP07LC573zDVZBL7Igl2GuJV0dHVtDKdykEnfAXvNNiY\nVBLQeBN1L3pYFxQDrRnupqiKETp3gUAcPufnvEHE6xqzz+jlFHS8eKAVmDG9\nPnFkVr1UClUJjpcQi1th512QsUVbHbxlo0gZ1DIXwTtVX5vrDE2pKEKz8H2V\nRyqzn3OabRifHQj9oR5g/8iwMAx7LQ37urlBSQJPiCjTY1hanx3AhdLB0qy/\n1OYY3A/I2djABavgtqsLqptSlex76ePjx8v6EKNKUEOvxJL2mDaVma2dI2Sj\nRyNf6WUWW33QLiEMzZna0SHGqBNwHhXJWyG0hCANY7bjY6GoP3O2la0Wf8L+\nSQXC\r\n=epHa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEIY37F86nuMH6FlYIlC8dr+YI4xvUHjYbU/SYr9gNmAiEA3mXueTFhdPzDIsIa6NcXubmz+OAxsxDT1sdmyhEYHb4="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.22.0_1624868940101_0.990310360269048"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.22.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.22.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.0"},"dependencies":{"@opentelemetry/core":"^0.22.0","@opentelemetry/instrumentation":"^0.22.0","@opentelemetry/semantic-conventions":"^0.22.0","opentelemetry-propagation-utils":"^0.22.1"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.0","@opentelemetry/tracing":"^0.22.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.3","opentelemetry-instrumentation-testing-utils":"^0.22.1","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"1b95f429902c848b03570501648d88c82ce78d46","_id":"opentelemetry-instrumentation-aws-sdk@0.22.1","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-+NefRoa9ze1vKZtJGs7cB92zrB/QVCWchhIeFmUHJzeaqsTSf2K3DRN6Z+ju/D1YbgXEiV/1IiWGwW0OtUOfzw==","shasum":"5b35cce3f05a29cf80b03285300f3aafc9a9f33e","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.22.1.tgz","fileCount":37,"unpackedSize":134637,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4cTICRA9TVsSAnZWagAAaBkP+wSKyvj0CbjNpAKyiPnm\nBaJIL5cWFHCsswnhM8lfb9gQuCfClamXaOHp9qlR7qsmza1eruPzBlGCZTp7\nt0Pany5yL9j+8UkbpM3YgWYLbrdUBXSNa62uuMCbRfKIo4X+13Aoxv6Ka2U9\n6+6fHilNS5x1Hi7SQu8++iFLY+szUqNhN9X1ge0iNznMJBC4jLp0R+eMDAWe\nwYadfmydFHP/nsE5lZR0Yk9lj7nrUiClRaeAzqK+z+uBM9FZHYN4Yzm5btDl\nARSVS8CgEzqNxL4gG1cteWyZoD5x30GRZZg9fBdMu+THsqTDR4ao0+fnmyPL\n5VCGMiGLw97bjl08Q+Fxxa4xaWVvdURzYzvBUOlGFlvobLL/eASMyooGbjzf\nfX5vG/neZf4mk0zaiExmhZwRrhnK6/V56KzvPTGjRQXaRYoz312+bd6GOSaq\nDmkDLs9GxsJPzsOxugcMhfN3Qx6D49haOxks/tvgzBy7IT2K2gjpxeJYwSQm\nCOjWCwn+Mge4rAvUPL91EewcRM5EGaNh5DNgz2LRsGYHlR3VZVODb80tvcap\n3UR6hd3cYb0+I2pFOR/6n9MycgXd1yH4rqMOGVQCfHKyu0adGnHQRW+1p0uH\n8OlJihVgLtTXMGFUnKsNAVs7fQJSUjgjMRRuFxgcEwztS+Nl435vJjaOrWVY\nvEhL\r\n=koEn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDe0mFUglXsHCki6WUbRPpiFQFNg3DZUku02MR20m9GAiEAmp121167DmA39r8m4UReMTKAW0WSgMItFJ/7ftqTtUI="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.22.1_1625408711759_0.3269809262476191"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.23.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.23.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.23.0","@opentelemetry/instrumentation":"^0.23.0","@opentelemetry/semantic-conventions":"^0.23.0","opentelemetry-propagation-utils":"^0.23.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.1","@opentelemetry/tracing":"^0.23.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.4","opentelemetry-instrumentation-testing-utils":"^0.23.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"8467cdc1e0c3192d196b26d12ff05d63d5284f72","_id":"opentelemetry-instrumentation-aws-sdk@0.23.0","_nodeVersion":"12.22.1","_npmVersion":"lerna/3.22.1/node@v12.22.1+x64 (linux)","dist":{"integrity":"sha512-pUfvQoQJP8jCRQVWU2is40wBcHjvKHLZUivyMZwdIxbaby6fmdDjSEJuB2brpFrIXn7sjt3botkV0zx9o6rELA==","shasum":"98545c9db573b8e4de5b9e56c4b3e4f64d027f58","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.23.0.tgz","fileCount":37,"unpackedSize":135052,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4tcFCRA9TVsSAnZWagAAw34P/3wFn/E7eJdLuPAOzla8\n9HVQ33shaX/O3n04pV4tvuvy85eCK63oeNX+g/BmrDB7gvXlIgBkuqRohpSs\nHcIwqoolvcd4iDTFSqxOK/l1h+IcU6K0PHN6DxL2RBGFidtlQAl4xL5pIx6C\n+DnZKgCXjr98zQ4zjap7LWB0n1MTlxyEJg2Twbg07tR8rotgSUI4boQlb2py\n1ugF+YYuC1Re8Ydldo4GnH7jaKFjbZfKjLZni19ofUNiyqYh9JgOzCWyO0v0\n+dcZlPS/AI4U+U9kve1Cr2MEh9GgXmRpoGr6vRJRc0aujY/PeulwzYobGW70\n+axgNEcXUfKwj3AHpZn/YbmSBOPWg3iXE7h6JgeBKuMDJ57bmtk51fw7mLlL\n3LnV+Xwy5VhliNyl+DGqu/0Du9cm4afcpnbYavhbGz6FDTmQ/nxVnvPCSDNe\nb4+fBYTZEFC2LVDA6OjbAEeN3i9qnHPt9Ywma7DCYC2H/qY87xhy+L0o2LVq\nj9/JfEO2bcFxn4eU1K9z2XZW8aXxjuS+4TvfjghnF8WRF3I53IspIXckxY9K\n054nUwi15YyzE04INr1oz4DsYZb4KpLCRPyFX848aTprRrVdQQ3iWN3Axgxz\ntPaVTnt9ZX6jcfQK87a+whxvAPUOcp4B6nBsZSWprKWaw637RjxR05yae2yH\nv8mp\r\n=FBdZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFGFXU6yDV3LfBz2J5kuVmWzcD3HxG75a0TU0kAUJaHAiBKq5hXb4wz9/CTGJrENOnI5abXlYzDqwRyC1iOVemdUQ=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.23.0_1625478917199_0.24027055894766303"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-08-01--12-54":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-08-01--12-54","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.24.0","@opentelemetry/instrumentation":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0","opentelemetry-propagation-utils":"^0.0.0-2021-08-01--12-54"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/tracing":"^0.24.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.5","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-08-01--12-54","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"1c0b880a714e23ed5ba1ca97c35f49dc21064d8f","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\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, normalized to camelCase | `putObject` |\n| `rpc.service` | string | The name of the service to which a request is made, as returned by the AWS SDK, normalized to lower case | `s3` | \n| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-08-01--12-54","_nodeVersion":"12.22.3","_npmVersion":"lerna/3.22.1/node@v12.22.3+x64 (linux)","dist":{"integrity":"sha512-Oqbsi+cV7O6Oj8LPhhtPyXHKyZcSIugwrUUWYydewaERBm5B8XCmhSMTb0f8lz4135JewrZSMoNW8v0ueC1VCQ==","shasum":"0b8a997a137cb671d8d99527f1c69cf045503d71","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-08-01--12-54.tgz","fileCount":37,"unpackedSize":135156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBpnHCRA9TVsSAnZWagAAqTIP/3mqt37q5Pr97G5+FBe6\niJqMhP+UZYQCrRHQ7M0Eyn75ZLkKPxvNY0QxkC9n5EQ8kPzlE5PlsB1q2GcG\nsWkULbnCL4YtPongCqz8x9cDxqhc9Ypy142M4/N/nAjjrIJ9sDRiES+73x9b\nkEZdHrb6o3h1BNh8sl81GeSWeqluYeWmlMc9MrHU0a4U7oE2EsZk0yGheGQV\njvn7uNHN0SBrP/saxqDmjcinBUBNagr1VJwEW6tQgolKv2udTIVv32ojWQG3\nrS7jJr7UWJMS0iL0Et/tU564UqAc+ktU3zshwrH2OHjMa4bhkID1WtHdoMjH\nQSNvGk8K6RXKStpc3tYhoROug0Dzy65fASYSDB94RLGBCZ0/9BWNhfJJCI8p\nir7nonRz38mOs5I1bk9VCoMvFn5zXdSjSJfV1PRfnv+qANGu0BwSbkdehaye\nAaoFtC2gtFfQ8OKlF2Xv9WM4cTVNua+8p4BJQ1kAoRgkeeSsZw2FfIal6Ofq\nFFLO7BGYA+pNU6+sl219KaPkM6UFqF4JQR+9xFbc2pKxrCOSc7xOVsENW+Xl\nyPzDKy7o69/uK9Pc7USA38ahplqIc0UjSp2by1Dr8/XvM0Lu1YcVtGXYHvpW\nEbs7MvjcScalFiwedkRgU+Zwf4U+4dTdwclokZEdJkC+P6wCDwMUzuCGEt3X\n/2Dz\r\n=42AY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGnPs4INaLC2I/HslTiksvo36iD2W/GZnag/m3kzIsjAiEAoeb2KwhH4gJ4xrVVQYIweup8yqJwghznKCXT7i+NQ4o="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-08-01--12-54_1627822535760_0.17725402519259026"},"_hasShrinkwrap":false},"0.24.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.24.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.24.0","@opentelemetry/instrumentation":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0","opentelemetry-propagation-utils":"^0.24.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/tracing":"^0.24.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.5","opentelemetry-instrumentation-testing-utils":"^0.24.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"f9d08fb8dd95cfad7658ed979c154cf75c979262","_id":"opentelemetry-instrumentation-aws-sdk@0.24.0","_nodeVersion":"12.22.3","_npmVersion":"lerna/3.22.1/node@v12.22.3+x64 (linux)","dist":{"integrity":"sha512-mfsLiV/O1DV8cG/FoguIiL3yn2teDUGIR3OEr76C4m3//g7iZxuzTBSQQkHJN0lNxTTGaThOYUIuCkjKRAtslA==","shasum":"5faa315cc47e1ba5b558884f5fb1553ba3227bea","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.24.0.tgz","fileCount":37,"unpackedSize":135312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBqzTCRA9TVsSAnZWagAATnMP/RqiqdwF3Xk4nDPBGPVT\ns/lmZH1dM+PQX+M/eNNTFnry0lxuBKAMCptqaGB4DbcACvnrPE87wDtTIxz1\npoJU4k/RdKyC16dfD9HqCmDgVcYRD3opdMBRyTBwg7kSfYwOdVFXTDvGoDd2\nHfAMG+UjY27NRSioW5UKoMORydskCkmLqOHGjPp2tUWLlBg16wutWK/ZkZJ3\n0kO/6KP9x4PJBfM79P2XwbsSGI+jbQtoTeGHTqiDhXZTm/bkpQ4kQRMahnfP\n6QtunJVyJKrDQQH/8mWQwmwlD1yKGqQ9+oHsG9ewQ56Y7JUyIxkxzksUzPXX\nGI6H3HwCkK7qjltvx0YpcgmbzpcAe5gklXPqapA5eNuq5dPoAna0plz0Vi1K\nf+LGr9S4EvEDi5NDBmjofltLO2mqfl/V7mrhaHfgYV7ajQxNQZPALL2ZexdJ\nvDG9HYAFraaX4wyDLXUj8FTqauYD5tdTxw3KsvlrSl3n8yKI6I/zIo2Mqdg4\ntQ9CfeS0Let9CFD1M5r0ac01a+6bMO4gRb9chqxRPo3C0A+Ki2xoBk9S4msk\nPSmzl1A13HnsF5x9WGxrI+CFpz4qatCBWUcJ3cQq5kyFAK+beQTr62yd8Qiz\nd4YoSLFpXK8yTckO8u2xqJTtoL3CC77B4Xf8rQ+/gtQ8aS8gisPymYQwPL2C\nSCcC\r\n=GXQg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCG7Evrphc8y4fiX5A2CjuJyrImS7rfGq47YYRzs/4EOgIgJm8Xw5LTpVMhM9+WkTAp1ufcaNQV+AFOOSzSCp+IfiU="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.24.0_1627827411464_0.035131050637028816"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.24.1":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.24.1","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.24.0","@opentelemetry/instrumentation":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0","opentelemetry-propagation-utils":"^0.24.0"},"devDependencies":{"@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/tracing":"^0.24.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.5","opentelemetry-instrumentation-testing-utils":"^0.24.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"f80572d258ef7f378de58791255531921d87e710","_id":"opentelemetry-instrumentation-aws-sdk@0.24.1","_nodeVersion":"12.22.4","_npmVersion":"lerna/3.22.1/node@v12.22.4+x64 (linux)","dist":{"integrity":"sha512-oOj1OGiJooYy3KBmbKPxtY773qAbac7gmyATn+lR8MDCmKlijUK4tSxcr0jkKX3ixaVeWWjTfmpVI2l2EzKtrw==","shasum":"02556431ac6121fe50bec2ce345b239c33caeaca","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.24.1.tgz","fileCount":37,"unpackedSize":135587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDJNuCRA9TVsSAnZWagAAt0gP/RV0GbMt3OfSl7Q6Aa30\nyiXeaagbmH35pCxcxKePxKw+l2nC3zwMhzD+i2+6QMPnN4niflct1RbwhDps\n1KSvvXw7wJfCJHoyvQbkYamDlfBTRLHNTjrEvZkOU6Eh8/EcNMwLGDg3z5WQ\ntLgpiEbcVDnQE0LUf7ZGWg+7Vk+s9r7gv5PmX0NoDIJL+qARtile+DffRal/\nx3s3jrabOn8muj062hpx/sXF0a/BHoXh93KsjTNc1FlXG35CtYqXsWiR2KSF\nrrgyfSo4kKdjynraxcUIWcCvBDGoqYKSX9iIpUKXFSNA78wlMk6nrvEeZbNw\newQU22or//2YfLXTP4S7kNNuRtJFY+3sRtT4SRgU9SGt5aHVeH8c95ltRK8j\nApJ0uGV/Rn8gw9oqsOVobLz5TrJd0ZOtYPPtCNsHTGdUliBnc1qXtjLU6PuC\nBymMfGkYnkWROnPddlsjPQmTtgTF7t/P6hSWRXuYj390V4h3wLE52AV3hFnV\nxD3XKir3g5zvcctzli6z9igRpqW2AZ72C7R1JO6QvblaocOZZm5HrAvTBL/Q\nFY6bkUQnyRkqszYgG2/qxhbkWc0gV+ouvYtNq027jyGgXObD3VJi9sftCnU9\nkDBmXQu623bsZIyptl7jDEOhg2b11ZFnMrFdSkeGVxInzgu8Z5NOqBx9L/UM\naUY1\r\n=BSn/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIED4SWnl2QwXrcybVuz+cvSMdMxVLiyEXaLFyX90STccAiEAofyKGyC11fKkpMkwi3x7WtJhKiIb/t8KTt1bNQE5QD4="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.24.1_1628214126143_0.24679481147803783"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.24.2":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.24.2","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.24.0","@opentelemetry/instrumentation":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0","opentelemetry-propagation-utils":"^0.24.0"},"devDependencies":{"@aws-sdk/client-dynamodb":"^3.24.0","@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/tracing":"^0.24.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.5","opentelemetry-instrumentation-testing-utils":"^0.24.1","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"5ef9753bf1ab525497b2b925df0b2e2f24ae838a","_id":"opentelemetry-instrumentation-aws-sdk@0.24.2","_nodeVersion":"12.22.5","_npmVersion":"lerna/3.22.1/node@v12.22.5+x64 (linux)","dist":{"integrity":"sha512-B364Y0SVDmeHBtbWLOQAdg1GEj3DOVxrgnowgpvXcSgUOGVQIFzURY0Jm2IMCy2Qbwa1fQ0u9L0dKM/7iAsAsQ==","shasum":"8ce0c21042e59cbb25f3d66c3823a09e35e36146","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.24.2.tgz","fileCount":37,"unpackedSize":138346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhL3QxCRA9TVsSAnZWagAAoV4QAIgKwi329YmrDHBZdK0N\nUH2rIlb34QWXAsf1htOPPH16lFeZHP5EgPs16Uabw1s0N9CVwhv6jPTewaIC\nCm4xg4W957Im84pQS0peJqLKM/W7WPr24FlAmAPcqWgCqoDV3ZGheFN8z4l8\nKcjYP/4IXTSFEgiblFo0k3vZt7w+pivVPSJl78DAkUCVkjRiud6jxzwG4itr\nCjSvoBJm2zxa/sAcudSoUZR5a4siPBMQE4VyO/pqzIbnfuMgbFPrRiVlgDrs\nTYtd1OhAGX6RW5Okobrteen2UBP8fsyxq0ZEsnS7QXAFvt1s4pQbyaYTHoSL\njId0Uxxl6SDi+ffEcQsxwU5AgK8hwOu6EHRRl+j+I9i2VBnSmJ5U+wNAMoCd\ngkRVcgSNyTUikUUg8RyeCQbrD05PRdPnmh9m0VNKaNzeHtH21FcCU5TFAgXF\nUH+230nCQen58FxnsU2bgPMB5fMrPnhog+LZYj2v7DJU7LSNBNEsxsSOxIy2\nLesUch6uYbvqD33cSNv19jh8mXyXrrwsuH9KixZcp/4H4xp/MpI/lG7rCBxc\n6ze0Z43nZVB8a5tiPgIy54kRc6S6Ym3yOBv7dAaJswjQV973wrk6drmJbd9z\nis5i18JsR2q7bjopnP9Kt3pvSZxSyYRZmdrZK5k9nE6DiYk/qNlgtPLchyeD\ns6a9\r\n=n6AP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBlWQlqS5Sh7e81FJbWKQ9/xuHekFRyjk5OHGFAiESpqAiAlAsbuT8866mXvmdFYTOEUFYzyc1dh7aPyMOyEubzFdA=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.24.2_1630499889620_0.7833828152996221"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.24.3":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.24.3","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.24.0","@opentelemetry/instrumentation":"^0.24.0","@opentelemetry/semantic-conventions":"^0.24.0","opentelemetry-propagation-utils":"^0.24.0"},"devDependencies":{"@aws-sdk/client-dynamodb":"^3.24.0","@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/tracing":"^0.24.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.5","opentelemetry-instrumentation-testing-utils":"^0.24.1","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"66aa50d4e16a5f0f9c0404710dd7edcf2993623d","_id":"opentelemetry-instrumentation-aws-sdk@0.24.3","_nodeVersion":"12.22.6","_npmVersion":"lerna/3.22.1/node@v12.22.6+x64 (linux)","dist":{"integrity":"sha512-vv3aK1vnL+jc7nbsnitNTqdairKrHciWINobf/fOcqqcj08IsW+a+j/yI8JJBsGqXQIZxzvXybjr238X+U4Exw==","shasum":"bf488f061aab0e7a26e47115979f4de2ddb912cc","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.24.3.tgz","fileCount":37,"unpackedSize":138875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPvvQCRA9TVsSAnZWagAA1rUP/3rtQzm8/ihHORe17EZF\nbUfmmLY+oumcNWN0IqoRa85rS83GXk+67kv4ChYHpbrF8ilW/WzaR2A5aYHF\ndx6u+mdcD27nSia38zlJ8/JcLHbDm/77GZWBRWQg+wMoTJCC8s9sUGyGIlgc\nEZJ19dmR2osrm/CrWplpaF3Kr1YFWNrnVvDX5n+UajQcRzzbrN7su6QbZ9VY\n0mYvdKzmar8iqGPusKnC0NWjMftjoZFofS7HemgRGBKBsAvbY8cDzWjIj+zO\nQXL+qZaFU4BJdiTW7DOywoXEwHtkzcdS5v3hEetuyNK/VuDDzGc/HqTveBYb\nVrn7OQatdZbQv9ST+jsFAtk5HnElgKfy5ZG5nF4nRZxS437jgHX5K8LPJrlr\npbBS6j9KE88myE41dLRfjcIZGj+q/2JwHajPZtkznxnll2TdV7S7JlsBiA0V\n/ktCp1qmPh0fP91j1voSvqqk/H7t7VQCu8hlBid3y+gdXmYZMerMZtrJtTIM\nQA90lEgyqvLxWjH/SavFqTdJezMrm9tdFY2rK/abER8N4IAUYeDcHvzBKIdT\n4TU9JH/bc+IHmEn/ireQaOZQOCzMdDL8Ud7r2v2FvmQTNOMWIKdmZBnmUA9u\nenr1m10SrRgsA42W8CC3wHacQpkwglGnEkRWJuq+XQ6CfMKQIk5JfCKdYVpa\naA80\r\n=MAXm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZDbGGOYEh4gA2oMA+PjC9qkPNpfFL8ZUrxg0kQqwuaAiAKFSpf0d3xhE+EuQdtCrCVMpgPBHptd7TY2ijQN16lAg=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.24.3_1631517648371_0.738126794056114"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-09-19--10-26":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-09-19--10-26","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.25.0","@opentelemetry/instrumentation":"^0.25.0","@opentelemetry/semantic-conventions":"^0.25.0","opentelemetry-propagation-utils":"^0.0.0-2021-09-19--10-26"},"devDependencies":{"@aws-sdk/client-dynamodb":"^3.24.0","@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/sdk-trace-base":"^0.25.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.6","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-09-19--10-26","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"a05e1c6b765af7984ae8433da2290faf0c3387f6","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `rpc.system` | string | Always equals \"aws-api\" | \n| `rpc.method` | string | he 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| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-09-19--10-26","_nodeVersion":"12.22.6","_npmVersion":"lerna/3.22.1/node@v12.22.6+x64 (linux)","dist":{"integrity":"sha512-OAtIQgAHEZKXiBDLgB8IJxMXUo+uBeXzxZ+M4wfRB8W4GXyOZ+ic7a/nMIbl8Yx5ovsj+Uo59t/6l/EyDbmtGg==","shasum":"9e3cc1ddaac1a11d63cb14d57c89209cd11a26ed","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-09-19--10-26.tgz","fileCount":37,"unpackedSize":138996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7v1LwnMPZ4YT6cQfATJgDeBAdHn+oU72Uqa/93Tj5YQIhALP47n5TxXtfgRfZs0/MNS4DBY33R+7C2h7agXwAkQML"}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-09-19--10-26_1632047264186_0.15383410303681844"},"_hasShrinkwrap":false},"0.25.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.25.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^0.25.0","@opentelemetry/instrumentation":"^0.25.0","@opentelemetry/semantic-conventions":"^0.25.0","opentelemetry-propagation-utils":"^0.24.0"},"devDependencies":{"@aws-sdk/client-dynamodb":"^3.24.0","@aws-sdk/client-s3":"3.13.1","@aws-sdk/client-sqs":"3.13.1","@aws-sdk/types":"3.13.1","@opentelemetry/api":"^1.0.2","@opentelemetry/sdk-trace-base":"^0.25.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.780.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.6","opentelemetry-instrumentation-testing-utils":"^0.25.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"c5d54414b125bbc927012c68ff19b97bcd5b3796","_id":"opentelemetry-instrumentation-aws-sdk@0.25.0","_nodeVersion":"12.22.6","_npmVersion":"lerna/3.22.1/node@v12.22.6+x64 (linux)","dist":{"integrity":"sha512-/m27MpBU5Bxy2/f/U4lWDDnNVEanFP1az3SfXyyyDUwyXeFegBzCPexf9yd23YH1OKrtvOH5yQEOZEdDdYZ8sw==","shasum":"0e10ac6853945a87d208f123e4c836de43c3f90f","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.25.0.tgz","fileCount":37,"unpackedSize":139152,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICTmE3OtKS1PiHFxtXnS7zyioWbLxOQZXu7DpMV4xbEKAiA0pXFlDf8xKU6sKnMxYewAMJm48YFOvLkPnJtkoZg3Tw=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.25.0_1632055476683_0.07079346880129789"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"},"0.0.0-2021-10-20--09-32":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.0.0-2021-10-20--09-32","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^1.0.0","@opentelemetry/instrumentation":"^0.26.0","@opentelemetry/semantic-conventions":"^1.0.0","opentelemetry-propagation-utils":"^0.0.0-2021-10-20--09-32"},"devDependencies":{"@aws-sdk/client-dynamodb":"3.36.0","@aws-sdk/client-s3":"3.36.0","@aws-sdk/client-sqs":"3.36.0","@aws-sdk/types":"3.36.0","@opentelemetry/api":"1.0.1","@opentelemetry/sdk-trace-base":"1.0.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.1008.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.7","opentelemetry-instrumentation-testing-utils":"^0.0.0-2021-10-20--09-32","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"c1c35ba226e94cdc824171847a6e252e02912c55","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `rpc.system` | string | Always equals \"aws-api\" | \n| `rpc.method` | string | he 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| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md","_id":"opentelemetry-instrumentation-aws-sdk@0.0.0-2021-10-20--09-32","_nodeVersion":"12.22.6","_npmVersion":"lerna/3.22.1/node@v12.22.6+x64 (linux)","dist":{"integrity":"sha512-90hDKxny8rIH0JEl9s6aO/c43MGCI7TL75kQHUbfN3nt+PuJlFR/3g4ZNKhyhPoOAdNKzmY0XpCARAOrxGGqsw==","shasum":"db0bf3ef5cc55e41c689980af97da1e59f5a7b9a","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.0.0-2021-10-20--09-32.tgz","fileCount":37,"unpackedSize":140184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIALye1YZyr1THOQ4cJQfcSMK/5OnWckS3jGWADsF0CIpAiB7RQe9moshZrb9vpW25yb+jSkn8+XSKFAXIygpQcJXDA=="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.0.0-2021-10-20--09-32_1634722391997_0.6589498275149053"},"_hasShrinkwrap":false},"0.26.0":{"name":"opentelemetry-instrumentation-aws-sdk","version":"0.26.0","description":"open telemetry instrumentation for the `aws-sdk` package","keywords":["aws","opentelemetry","aws-sdk"],"homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","license":"Apache-2.0","main":"dist/src/index.js","repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"scripts":{"build":"tsc","prepare":"yarn run build","test":"mocha --require opentelemetry-instrumentation-testing-utils","test:jaeger":"OTEL_EXPORTER_JAEGER_AGENT_HOST=localhost mocha --require opentelemetry-instrumentation-testing-utils","test:ci":"yarn test-all-versions","watch":"tsc -w","version:update":"node ../../scripts/version-update.js","version":"yarn run version:update","test-all-versions":"tav"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"peerDependencies":{"@opentelemetry/api":"^1.0.1"},"dependencies":{"@opentelemetry/core":"^1.0.0","@opentelemetry/instrumentation":"^0.26.0","@opentelemetry/semantic-conventions":"^1.0.0","opentelemetry-propagation-utils":"^0.24.0"},"devDependencies":{"@aws-sdk/client-dynamodb":"3.36.0","@aws-sdk/client-s3":"3.36.0","@aws-sdk/client-sqs":"3.36.0","@aws-sdk/types":"3.36.0","@opentelemetry/api":"1.0.1","@opentelemetry/sdk-trace-base":"1.0.0","@types/mocha":"^8.2.2","@types/node":"^14.0.0","aws-sdk":"^2.1008.0","expect":"^26.6.2","mocha":"^8.4.0","nock":"^13.0.11","opentelemetry-instrumentation-mocha":"0.0.1-rc.7","opentelemetry-instrumentation-testing-utils":"^0.26.0","test-all-versions":"^5.0.1","ts-node":"^9.1.1","typescript":"4.3.4"},"mocha":{"extension":["ts"],"spec":"test/**/*.spec.ts","require":["ts-node/register","opentelemetry-instrumentation-mocha"]},"gitHead":"197677ba38ce47bdd7e57c9e74cc5a19fae7e8e2","_id":"opentelemetry-instrumentation-aws-sdk@0.26.0","_nodeVersion":"12.22.7","_npmVersion":"lerna/3.22.1/node@v12.22.7+x64 (linux)","dist":{"integrity":"sha512-n7KvJ8bzwNppIBBolYdlsWycHh9NxoMvtT9u9LcvvRELSq1mQ0at2ZCzqBwwhII4zsgSPjVTyju1smURbc5+4g==","shasum":"80eb1cde2ccc78b85fedbe32c6348caf1bb15e22","tarball":"https://registry.npmjs.org/opentelemetry-instrumentation-aws-sdk/-/opentelemetry-instrumentation-aws-sdk-0.26.0.tgz","fileCount":37,"unpackedSize":140498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh217uCRA9TVsSAnZWagAA1/gP/3kxSYfddnsgGbvjOQUF\nnpEO7LKFikoUCtznXNtvjQnTNFiKNZx5tLdcQwp/wmm1bwvy7THEw6xDmYla\n5eBsvcXS8A3NLn4qSagnuVuUTnY8OxTsNu0Md1IdB3JW5awEbbaoz38qIEuH\n2oL1TbPc0i45lwAK2L/w/bUAfMsWdCli7CF0i3NR0jF9CjYWv1fD9Ii2bUPi\n16YrWqdUlzaezFWedJFS8irrueN/zjK6KEKfRbdlO5ZvRTf4scQtnlruApHC\nogTIPgOFMvhkA73iUy4qwZycNwMBsWxu4hWdveQdQic+0mtgLw4uy4HYM+7w\nCeVUZgUp3719Cy+1aAkEtAP+ebgNbGxMx62X3QnB0txy9/wF+KDX9S61Gi1U\nRx4dVkrAlUsn+M98tBSFTtzQmyCCtFznclzJT5WsoteQZznnipM0/KhazS/g\nxt4efF0oQLUCrSIx/aZd9gI70tIzFpwgo3jbr3FzdaCLGMjcfsoVDEurLQpP\nyaAbHSsTvN9aM4Xuom+P+S0iDkx9zxWHlB9i/y+IBazvxEjl8Bbdg0vDXYWp\nMMYdvf3ea4VCZxHXSIhaAUz63hHoqPGpguwMDo9K8sOIcaKV7KYWcmFk/B9V\nm1YZKahqOMNoqr1Z+mlL2T7tw4jHXj+GTZxCIpSzY508NfDOncylr0NsTsns\nkX9N\r\n=393N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZIqZ53jLlQBbngUcdCcn/Wn2xtD7LSaA/zEo5BbNViAiEAvFICWftKnPf16lhO30n39cWBcrL+cnewCY5TYgwA/L8="}]},"_npmUser":{"name":"aspecto-release-bot","email":"dev@aspecto.io"},"directories":{},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/opentelemetry-instrumentation-aws-sdk_0.26.0_1635276581653_0.35788653711623697"},"_hasShrinkwrap":false,"deprecated":"Deprecated in favor of @opentelemetry/instrumentation-aws-sdk"}},"time":{"created":"2021-02-14T15:22:17.117Z","0.0.1":"2021-02-14T15:22:17.292Z","modified":"2022-05-12T06:43:25.075Z","0.0.2":"2021-02-16T16:39:01.772Z","0.1.0":"2021-02-18T11:14:20.472Z","0.2.0":"2021-02-18T15:08:02.723Z","0.2.1":"2021-03-01T14:07:39.116Z","0.2.1-alpha.0":"2021-03-03T16:43:49.689Z","0.2.2":"2021-03-04T13:23:24.505Z","0.2.2-alpha.1":"2021-03-07T10:08:21.274Z","0.2.2-alpha.2":"2021-03-07T16:00:53.580Z","0.2.3":"2021-03-15T09:49:33.830Z","0.2.4-aws-sdk-v3.0":"2021-03-16T12:17:41.219Z","0.3.0":"2021-03-18T10:54:10.960Z","0.3.1-otel-v0.18.1.0":"2021-03-30T10:59:14.923Z","0.3.0-dev.0":"2021-04-06T11:31:17.438Z","0.3.1":"2021-04-13T07:37:35.259Z","0.3.2-otel-v0.19.0.0":"2021-04-27T14:25:25.284Z","0.4.0":"2021-04-28T06:51:10.110Z","0.4.1-aws-import-one-serivce.0":"2021-04-28T10:05:10.129Z","0.4.1":"2021-05-03T10:42:13.201Z","0.4.2":"2021-05-19T12:01:02.745Z","0.4.3":"2021-05-19T14:17:45.578Z","0.0.0-2021-05-25--13-03":"2021-05-25T13:04:44.923Z","0.0.0-2021-05-26--07-22":"2021-05-26T07:23:22.334Z","0.0.0-2021-05-26--15-12":"2021-05-26T15:13:47.701Z","0.4.4":"2021-05-31T13:40:53.153Z","0.0.0-2021-05-31--14-38":"2021-05-31T14:40:00.250Z","0.4.5":"2021-06-02T11:41:17.593Z","0.0.0-2021-06-07--07-42":"2021-06-07T07:43:52.386Z","0.0.0-2021-06-09--06-50":"2021-06-09T06:51:15.919Z","0.5.0":"2021-06-09T09:12:42.220Z","0.0.0-2021-06-14--13-06":"2021-06-14T13:07:18.075Z","0.5.1":"2021-06-16T09:20:16.152Z","0.0.0-2021-06-17--13-11":"2021-06-17T13:12:28.764Z","0.21.0":"2021-06-20T10:06:31.663Z","0.0.0-2021-06-23--07-47":"2021-06-23T07:49:04.886Z","0.0.0-2021-06-23--08-12":"2021-06-23T08:13:20.636Z","0.0.0-2021-06-23--15-11":"2021-06-23T15:12:52.579Z","0.22.0":"2021-06-28T08:29:00.230Z","0.22.1":"2021-07-04T14:25:11.919Z","0.23.0":"2021-07-05T09:55:17.357Z","0.0.0-2021-08-01--12-54":"2021-08-01T12:55:35.898Z","0.24.0":"2021-08-01T14:16:51.606Z","0.24.1":"2021-08-06T01:42:06.293Z","0.24.2":"2021-09-01T12:38:09.745Z","0.24.3":"2021-09-13T07:20:48.736Z","0.0.0-2021-09-19--10-26":"2021-09-19T10:27:44.408Z","0.25.0":"2021-09-19T12:44:36.844Z","0.0.0-2021-10-20--09-32":"2021-10-20T09:33:12.145Z","0.26.0":"2021-10-26T19:29:41.781Z"},"maintainers":[{"name":"aspecto-release-bot","email":"dev@aspecto.io"}],"description":"open telemetry instrumentation for the `aws-sdk` package","homepage":"https://github.com/aspecto-io/opentelemetry-ext-js","keywords":["aws","opentelemetry","aws-sdk"],"repository":{"type":"git","url":"git+https://github.com/aspecto-io/opentelemetry-ext-js.git"},"bugs":{"url":"https://github.com/aspecto-io/opentelemetry-ext-js/issues"},"license":"Apache-2.0","readme":"# OpenTelemetry aws-sdk Instrumentation for Node.js\n[![NPM version](https://img.shields.io/npm/v/opentelemetry-instrumentation-aws-sdk.svg)](https://www.npmjs.com/package/opentelemetry-instrumentation-aws-sdk)\n\nThis module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)\n\n## Installation\n\n```\nnpm install --save opentelemetry-instrumentation-aws-sdk\n```\n\n## Usage\nFor further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.\n\n```js\nconst { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');\nconst { registerInstrumentations } = require('@opentelemetry/instrumentation');\nconst { AwsInstrumentation } = require('opentelemetry-instrumentation-aws-sdk');\n\nconst traceProvider = new NodeTracerProvider({\n  // be sure to disable old plugin\n  plugins: {\n    'aws-sdk': { enabled: false, path: 'opentelemetry-plugin-aws-sdk' }\n  }\n});\n\nregisterInstrumentations({\n  traceProvider,\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| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |\n| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |\n| `moduleVersionAttributeName` | `string` | If passed, a span attribute will be added to all spans with key of the provided `moduleVersionAttributeName` and value of the patched module version |\n\n\n\n## Span Attributes\nBoth V2 and V3 instrumentations are collecting the following attributes:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `rpc.system` | string | Always equals \"aws-api\" | \n| `rpc.method` | string | he 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| `aws.region` | string | Region name for the request | \"eu-west-1\" |\n\n### V2 attributes\nIn addition to the above attributes, the instrumentation also collect the following for V2 ONLY:\n| Attribute Name | Type | Description | Example |\n| -------------- | ---- | ----------- | ------- |\n| `aws.operation` | string | The method name for the request. | for `SQS.sendMessage(...)` the operation is \"sendMessage\" |\n| `aws.signature.version` | string | AWS version of authentication signature on the request. | \"v4\" |\n| `aws.service.api` | string | The sdk class name for the service | \"SQS\" |\n| `aws.service.identifier` | string | Identifier for the service in the sdk | \"sqs\" |\n| `aws.service.name` | string | Abbreviation name for the service | \"Amazon SQS\" |\n| `aws.request.id` | uuid | Request unique id, as returned from aws on response | \"01234567-89ab-cdef-0123-456789abcdef\" |\n| `aws.error` | string | information about a service or networking error, as returned from AWS | \"UriParameterError: Expected uri parameter to have length >= 1, but found \"\" for params.Bucket\" |\n\n### Custom User Attributes\nThe instrumentation user can configure a `preRequestHook` function which will be called before each request, with a normalized request object (across v2 and v3) 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```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\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* [SQS](./docs/sqs.md)\n* DynamoDb\n\n---\n\nThis instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.\n\n## Potential Side Effects\nThe instrumentation is doing best effort to support the trace specification of open telemetry. 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---\n\nThis extension (and many others) was developed by [Aspecto](https://www.aspecto.io/) with ❤️\n","readmeFilename":"README.md"}