Skip to content

A set of universal bundler plugins to interact with Datadog directly from your builds.

License

Notifications You must be signed in to change notification settings

DataDog/build-plugins

Repository files navigation

Datadog Build Plugins

A set of plugins to interact with Datadog directly from your builds.

✨ Key takeaways ✨

  • This is a bundler plugin for Webpack Webpack, Vite Vite, ESBuild ESBuild and Rollup Rollup.
  • Very easy to setup and disable on the fly.

Note

If you want to upgrade from v1 to v2, please follow our migration guide.

Table of content

Bundler Plugins

ESBuild ESBuild

@datadog/esbuild-plugin

Installation

  • Yarn
yarn add -D @datadog/esbuild-plugin
  • NPM
npm install --save-dev @datadog/esbuild-plugin

Usage

const { datadogEsbuildPlugin } = require('@datadog/esbuild-plugin');

require('esbuild').build({
    plugins: [
        datadogEsbuildPlugin({
            // Configuration
        }),
    ],
});

Tip

It is important to have the plugin in the first position in order to report every other plugins.

πŸ“ More details ➑️

Rollup Rollup

@datadog/rollup-plugin

Installation

  • Yarn
yarn add -D @datadog/rollup-plugin
  • NPM
npm install --save-dev @datadog/rollup-plugin

Usage

Inside your rollup.config.js.

import { datadogRollupPlugin } from '@datadog/rollup-plugin';

export default {
    plugins: [
        datadogRollupPlugin({
            // Configuration
        }),
    ],
};

Tip

It is important to have the plugin in the first position in order to report every other plugins.

πŸ“ More details ➑️

Vite Vite

@datadog/vite-plugin

Installation

  • Yarn
yarn add -D @datadog/vite-plugin
  • NPM
npm install --save-dev @datadog/vite-plugin

Usage

Inside your vite.config.js.

import { datadogVitePlugin } from '@datadog/vite-plugin';
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
        datadogVitePlugin({
            // Configuration
        }),
    ],
};

Tip

It is important to have the plugin in the first position in order to report every other plugins.

πŸ“ More details ➑️

Webpack Webpack

@datadog/webpack-plugin

Installation

  • Yarn
yarn add -D @datadog/webpack-plugin
  • NPM
npm install --save-dev @datadog/webpack-plugin

Usage

Inside your webpack.config.js.

const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
    plugins: [
        datadogWebpackPlugin({
            // Configuration
        }),
    ],
};

Tip

It is important to have the plugin in the first position in order to report every other plugins.

πŸ“ More details ➑️

Features

RUM ESBuild Rollup Vite Webpack

Interact with our Real User Monitoring product (RUM) in Datadog directly from your build system.

datadogWebpackPlugin({
    rum?: {
        disabled?: boolean,
        sourcemaps?: {
            bailOnError?: boolean,
            dryRun?: boolean,
            intakeUrl?: string,
            maxConcurrency?: number,
            minifiedPathPrefix: string,
            releaseVersion: string,
            service: string,
        },
    }
});

πŸ“ Full documentation ➑️

Telemetry ESBuild Webpack

Display and send telemetry data as metrics to Datadog.

datadogWebpackPlugin({
    telemetry?: {
        disabled?: boolean,
        output?: boolean
            | string
            | {
                destination: string,
                timings?: boolean,
                dependencies?: boolean,
                bundler?: boolean,
                metrics?: boolean,
                logs?: boolean,
            },
        prefix?: string,
        tags?: string[],
        timestamp?: number,
        filters?: ((metric: Metric) => Metric | null)[],
    }
});

πŸ“ Full documentation ➑️

Configuration

{
    auth?: {
        apiKey?: string;
        endPoint?: string;
    };
    logLevel?: 'debug' | 'info' | 'warn' | 'error' | 'none';
    rum?: {
        disabled?: boolean;
        sourcemaps?: {
            bailOnError?: boolean;
            dryRun?: boolean;
            intakeUrl?: string;
            maxConcurrency?: number;
            minifiedPathPrefix: string;
            releaseVersion: string;
            service: string;
        };
    };
    telemetry?: {
        disabled?: boolean;
        output?: boolean
            | string
            | {
                destination: string;
                timings?: boolean;
                dependencies?: boolean;
                bundler?: boolean;
                metrics?: boolean;
                logs?: boolean;
            };
        prefix?: string;
        tags?: string[];
        timestamp?: number;
        filters?: ((metric: Metric) => Metric | null)[];
    }
}

auth.apiKey

default null

In order to interact with Datadog, you have to use your own API Key.

auth.endPoint

default: "app.datadoghq.com"

To which endpoint will the metrics be sent.

logLevel

default: 'warn'

Which level of log do you want to show.


Contributing

Check out the CONTRIBUTING.md file for more information.


License

MIT


Back to top ⬆️