👋
Welcome to @lahaus-nuxt/datadog-trace
Nuxt module to add Datadog APM tracing to your application by capturing the requests passing through the http module in node.js.
🏠 Homepage
Installation
- Install npm package
yarn add @lahaus-nuxt/datadog-trace # or npm i @lahaus-nuxt/datadog-trace
- Install dd-trace
yarn add dd-trace # or npm i dd-trace
- Edit your
nuxt.config.js
file to add module
{
modules: ['@lahaus-nuxt/datadog-trace'];
}
- 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
-
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: {}
}
}
- 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.
process.ddTrace
in a Nuxt Module
Using 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
This README was generated with