3.6.0 • Published 1 month ago

aws-xray-sdk-fastify v3.6.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 month ago

fastify-xray

A Fastify 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 Fastify plugin

const AWSXRay = require('aws-xray-sdk');

await server.register(require('aws-xray-sdk-fastify'), {
  segmentName: 'test segment',
  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, reply) => {
    const segment = request.segment;
    segment.addAnnotation('hitController', 'true');

    return {};
  },
});

Options

  • segmentName Segment name to use in place of default segment name generator (required)
  • automaticMode Specifies that X-Ray automatic mode is in use (default true)
  • plugins An array of AWS plugins to use (i.e. [AWSXRay.plugins.EC2Plugin])
  • captureAWS Enables AWS X-Ray to capture AWS calls. This requires having aws-sdk installed as a peer dependency
  • captureHTTP Enables AWS X-Ray to capture all http calls
  • capturePromises Enables AWS X-Ray to capture all promises
  • logger Bind AWS X-Ray to compatible logging interface ({ trace, debug, info })

Sample App

A naive Fastify server with X-Ray enabled is available in the "sample" directory. The sample can be started from the sdk_contrib/fastify 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 and heavily inspired by X-Ray Hapi

Contributors

3.6.0

1 month ago

3.5.4

3 months ago

3.5.3

7 months ago

3.5.2

8 months ago

3.5.1

10 months ago

3.5.0

1 year ago

3.4.1

1 year ago

3.4.0

1 year ago

3.3.8

2 years ago

4.0.0

2 years ago