OpenFeature

Learn how to use Sentry with OpenFeature.

The OpenFeature integration tracks feature flag evaluations produced by the OpenFeature SDK. These evaluations are held in memory, and in the event an error occurs, sent to Sentry for review and analysis. At the moment, we only support boolean flag evaluations.

Import name: Sentry.openFeatureIntegration and Sentry.OpenFeatureIntegrationHook

Install your platform's Sentry SDK and @openfeature/web-sdk from npm.

Copied
import * as Sentry from '@sentry/browser';
import { OpenFeature } from '@openfeature/web-sdk';

Sentry.init({
  dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
  integrations: [Sentry.openFeatureIntegration()]
});

OpenFeature.setProvider(new MyProviderOfChoice());

// Option 1: track all OpenFeature evaluations.
OpenFeature.addHooks(new Sentry.OpenFeatureIntegrationHook());

// Option 2: only track evaluations by a specific client.
const client = OpenFeature.getClient();
client.addHooks(new Sentry.OpenFeatureIntegrationHook());

Learn more about OpenFeature providers and the web SDK.

The integration is tested by evaluating a feature flag with your OpenFeature SDK before capturing an exception.

Copied
import * as Sentry from '@sentry/browser';
import { OpenFeature } from '@openfeature/web-sdk';

// Evaluate a flag with a default value. If you added the hook to a client in
// the Configure step, make sure to use the same client here.
const client = OpenFeature.getClient();
const result = client.getBooleanValue('hello', false);

Sentry.captureException(Exception("Something went wrong!"))

Visit the Sentry website and confirm that your error event has recorded the feature flag "hello" and its value "false".

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").