Wondering what’s next for npm?Check out our public roadmap! »

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

    3.3.1 • Public • Published

    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('hapi-xray'),
      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

    • segmentName Segment name to use in place of default segment name generator
    • 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 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

    Install

    npm i aws-xray-sdk-hapi

    DownloadsWeekly Downloads

    115

    Version

    3.3.1

    License

    Apache-2.0

    Unpacked Size

    20.3 kB

    Total Files

    8

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar