1. Create init file
ESM applications require additional setup to properly intercept module imports:Why the ESM loader is needed: ESM imports are statically analyzed and hoisted, meaning all imports are resolved before any code runs. The
register()
call sets up Node.js loader hooks that intercept module imports, allowing the SDK to instrument packages like postgres
, http
, etc. Without this, the SDK cannot patch ESM modules.Initialization Parameters
Option | Type | Default | Description |
---|---|---|---|
apiKey | string | Required if using Tusk Cloud | Your Tusk Drift API key. |
env | string | process.env.NODE_ENV | The environment name. |
logLevel | ’silent’ | ‘error’ | ‘warn’ | ‘info’ | ‘debug' | 'info’ | The logging level. |
2. Import SDK at application entry point
For ESM applications, you cannot control import order within your application code because all imports are hoisted. Instead, use the--import
flag.
Update your package.json scripts:
Why
--import
is required for ESM: In ESM, all import
statements are hoisted and evaluated before any code runs, making it impossible to control import order within a file.--import
flag ensures the SDK initialization (including loader registration) happens in a separate phase before your application code loads, guaranteeing proper module interception.
3. Update recording configurations
Update the configuration file.tusk/config.yaml
to include a recording
section. Example recording
configuration:
Configuration Options
Option | Type | Default | Description |
---|---|---|---|
sampling_rate | number | 1.0 | The sampling rate (0.0 - 1.0). 1.0 means 100% of requests are recorded, 0.0 means 0% of requests are recorded. |
export_spans | boolean | false | Whether to export spans to Tusk backend or local files (.tusk/traces ). If false, spans are only exported to local files. |
enable_env_var_recording | boolean | false | Whether to enable environment variable recording and replaying. Recommended if your application’s business logic depends on environment variables, as this ensures the most accurate replay behavior. |