@lahaus-nuxt/datadog-trace
TypeScript icon, indicating that this package has built-in type declarations

0.7.0 • Public • Published

Welcome to @lahaus-nuxt/datadog-trace 👋

Version Documentation Maintenance

Nuxt module to add Datadog APM tracing to your application by capturing the requests passing through the http module in node.js.

🏠 Homepage

Installation

  1. Install npm package
yarn add @lahaus-nuxt/datadog-trace # or npm i @lahaus-nuxt/datadog-trace
  1. Install dd-trace
yarn add dd-trace # or  npm i dd-trace
  1. Edit your nuxt.config.js file to add module
{
  modules: ['@lahaus-nuxt/datadog-trace'];
}
  1. Change the options using the datadogTrace key or by adding a second parameter in the module configuration. Refer to the Usage section for details.

Usage

  1. By default, @lahaus-nuxt/datadog-trace exposes some basic options for common needs. Internally, these options are used to create a basic dd-trace instance and wire up middleware.

    The default values are:

    // ...
    {
      // activate the module
      enabled: true,
      // Set an application’s environment e.g. prod, pre-prod, stage.
      env: process.env.NODE_ENV,
      // The service name to be used for this program
      service: `host app's [package.json].name property`
      // Whether to enable trace ID injection in log records to be able to correlate traces with logs.
      logInjection: true,
      // The version number of the application
      version: hostAppPkg.version,
      ...yourOverrides,
      // This plugin automatically instruments the http module.
      httpOptions: {
        // activate the module
        enabled: true,
        // List of URLs that should not be instrumented
        blocklist: ['/api/healthz', '/_nuxt/?'],
        // An array of headers to include in the span metadata
        headers: [
          'x-request-id',
          'x-application-id',
          'x-session-id',
          'Host',
          'User-Agent',
          'Referer',
          'Accept',
          'Content-Type',
          'Origin',
          'x-client-id',
          'x-context',
        ]
      }
    }
    // ...

With options module

{
  modules: ['@lahaus-nuxt/datadog-trace', { enabled: true, httpOptions: {} }];
}

With datadogTrace key

{
  modules: ['@lahaus-nuxt/datadog-trace'],
  datadogTrace: {
    enabled: true, httpOptions: {}
  }
}
  1. To access the dd-trace instance from within Nuxt lifecycle areas, use the $ddTrace key from the Nuxt context object. Note: This is only available for server-side executions. For example, because asyncData is an isomorphic function in Nuxt, you will need to guard $ddTrace access with something like if (process.server) { ... }

Example nuxtServerInit in your apps ~/store/index.js:

// ...
export const actions = {
  async nuxtServerInit({ store, commit }, { req, $ddTrace }) {
    $ddTrace.use('<plugin-name>');
  },
};
// ...

Example asyncData in your apps ~/pages/somepage.vue:

    // ...
    asyncData(context) {
      if (process.server) {
        context.$ddTrace.use('<plugin-name>')
      }
    }
    // ...

For more information on dd-trace options, see the package documentation.

Using process.ddTrace in a Nuxt Module

Because modules are executed sequentially, any additional Nuxt modules should be loaded after the @lahaus-nuxt/datadog-trace module. You can then access the dd-trace instance via process.ddTrace as needed.

Author

👤 Alver Alexander Grisales Ortega alvergrisales@lahaus.com


This README was generated with ❤️ by readme-md-generator

Readme

Keywords

Package Sidebar

Install

npm i @lahaus-nuxt/datadog-trace

Weekly Downloads

57

Version

0.7.0

License

MIT

Unpacked Size

9.74 kB

Total Files

8

Last publish

Collaborators

  • lahausnpm