aws-xray-sdk-fastify
TypeScript icon, indicating that this package has built-in type declarations

3.6.0 • Public • Published

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

Package Sidebar

Install

npm i aws-xray-sdk-fastify

Weekly Downloads

1

Version

3.6.0

License

Apache-2.0

Unpacked Size

19.3 kB

Total Files

11

Last publish

Collaborators

  • awsxray