aws-xray-sdk-hapi v3.10.3
hapi-xray
A HapiJS plugin to log requests and subsegments through AWSXray.
Setup
The plugin relies on the AWS credentials being set before being registered, or it will pull them from
~/.aws/credentials as per the SDK default.
For more details on using X-Ray, see the docs
Usage
Simply register as a normal Hapi plugin
const AWSXRay = require('aws-xray-sdk');
await server.register({
plugin: require('aws-xray-sdk-hapi'),
options: {
captureAWS: true,
plugins: [AWSXRay.plugins.ECSPlugin]
}
});In automatic mode, you can access the X-Ray segment at any time via the AWSXRay SDK:
const AWSXRay = require('aws-xray-sdk-core');
const segment = AWSXRay.getSegment();
segment.addAnnotation('hitController', 'true');In manual mode, you can access the current X-Ray segment from the request object:
server.route({
method: 'GET',
path: '/items',
handler: async (request, h) => {
const segment = request.segment;
segment.addAnnotation('hitController', 'true');
return {};
}
});Options
segmentNameSegment name to use in place of default segment name generatorautomaticModeSpecifies that X-Ray automatic mode is in use (default true)pluginsAn array of AWS plugins to use (i.e.[AWSXRay.plugins.EC2Plugin])captureAWSEnables AWS X-Ray to capture AWS calls. This requires havingaws-sdkinstalled as a peer dependencycaptureHTTPEnables AWS X-Ray to capture all http callscapturePromisesEnables AWS X-Ray to capture all promisesloggerBind AWS X-Ray to compatible logging interface({ trace, debug, info })
Sample App
A naive hapi server with X-Ray enabled is available in the "sample" directory.
The sample can be started from the sdk_contrib/hapi directory with: npm run sample
Once running, a "hello world" GET endpoint will be available at http://localhost:3010/
The sample will run but throw errors connecting to X-Ray if a local X-Ray daemon is not running.
For more information on running the XRay daemon locally: https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-local.html
Thanks
Based on the hard work @AWS X-Ray Express Middleware
Contributors
10 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago