Documentation
IntegrationAdvanced Usage

Advanced Usage

SDK Methods

initNoisegate(config)

Initialize NoiseGate. Call once at app startup. Automatically loads filter patterns.

import { initNoisegate } from "@noisegate/sdk";

initNoisegate({
  apiKey: "ng_live_...",  // Required
  apiUrl: "...",          // Optional: custom endpoint
  debug: true,            // Optional: enable logging
  timeout: 5000,          // Optional: request timeout in ms
});

isNoise(error)

Check if an error matches any filter pattern.

import { isNoise } from "@noisegate/sdk";

if (isNoise(error)) {
  // This error is noise, don't report it
}

getPatterns()

Manually fetch patterns. Usually not needed since initNoisegate loads them automatically.

import { getPatterns } from "@noisegate/sdk";

const patterns = await getPatterns();

getClient()

Access the client instance for advanced usage.

import { getClient } from "@noisegate/sdk";

// Get cached patterns synchronously
const patterns = getClient().getCachedPatterns();

// Clear cache to force refresh
getClient().clearCache();

Pattern Structure

interface FilterPattern {
  id: string;
  pattern: string;      // Match pattern (case-insensitive)
  category: string;     // e.g., "browser", "extension"
  confidence: number;   // 0-1 confidence score
}

Using with Other Error Trackers

NoiseGate works with any error tracking service. See Error Tracking Services for comprehensive examples including client and server-side configurations.

Datadog

import { datadogRum } from "@datadog/browser-rum";
import { initNoisegate, isNoise } from "@noisegate/sdk";

initNoisegate({ apiKey: "ng_live_..." });

datadogRum.init({
  applicationId: "...",
  clientToken: "...",
  beforeSend: (event, context) => {
    if (event.type === "error") {
      const error = (context as { error?: unknown })?.error;
      if (error instanceof Error && isNoise(error)) return false;
    }
    return true;
  },
});

New Relic

import { BrowserAgent } from "@newrelic/browser-agent/loaders/browser-agent";
import { initNoisegate, isNoise } from "@noisegate/sdk";

initNoisegate({ apiKey: "ng_live_..." });

const agent = new BrowserAgent({ /* config */ });

agent.setErrorHandler((err: unknown) => {
  if (err instanceof Error && isNoise(err)) return true; // Ignore
  return false;
});

Raygun

import rg4js from "raygun4js";
import { initNoisegate, isNoise } from "@noisegate/sdk";

initNoisegate({ apiKey: "ng_live_..." });

rg4js("apiKey", "...");
rg4js("enableCrashReporting", true);

rg4js("onBeforeSend", (payload) => {
  const msg = payload?.Details?.Error?.Message || "";
  const err = new Error(msg);
  if (isNoise(err)) return false; // Drop
  return payload;
});

Rollbar

import Rollbar from "rollbar";
import { initNoisegate, isNoise } from "@noisegate/sdk";

initNoisegate({ apiKey: "ng_live_..." });

const rollbar = new Rollbar({
  accessToken: "...",
  checkIgnore: (_isUncaught, args) => {
    const error = args[0];
    if (error instanceof Error && isNoise(error)) return true; // Ignore
    return false;
  },
});

Bugsnag

import Bugsnag from "@bugsnag/js";
import { initNoisegate, isNoise } from "@noisegate/sdk";

initNoisegate({ apiKey: "ng_live_..." });

Bugsnag.start({
  apiKey: "...",
  onError: (event) => {
    const error = event.originalError;
    if (error instanceof Error && isNoise(error)) return false; // Drop
    return true;
  },
});

LogRocket

import LogRocket from "logrocket";
import { initNoisegate, isNoise } from "@noisegate/sdk";

initNoisegate({ apiKey: "ng_live_..." });

LogRocket.init("your-app-id");

// Filter before capturing
export function captureException(error: unknown) {
  if (error instanceof Error && isNoise(error)) return;
  LogRocket.captureException(error as Error);
}

Next Steps