Tired of using AWSXRay.captureAsyncFunc
and/or AWSXRay.capturePromise
polluting the body of your methods? Instrument your class async methods and Promises with this simple yet elegant decorator.
yarn add aws-xray-ts-decorator
or with NPM
npm install aws-xray-ts-decorator --save
class MyTestClass {
// All of these arguments are optional
@XRayInstrumented({
segmentName: "customSegmentName", // by default it's name of called function
metadata: { // Add custom metadata as StringMap
memberId: "1"
},
annotations: { // Add custom annotations as StringMap
context: "this is important!"
},
forceCreateSegment: true, // Creates new AWSXRay.Segment if such is not created yet
addParamsMetadata: true // Adds function parameters as metadata of subsegment
})
someAsyncMethod(input: number): Promise<any> {
...
}
}
This snippet will start a subsegment customSegmentName
before someAsyncMethod
gets invoked and close it as soon as it resolves.
For more details, see example.
👤 Rafal Wilinski <[email protected]>
- Twitter: @rafalwilinski
- Github: @RafalWilinski
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
Copyright © 2019 Rafal Wilinski <[email protected]>.
This project is MIT licensed.