import{DatadogProvider}from'@datadog/openfeature-browser';import{OpenFeature}from'@openfeature/web-sdk';// Initialize the provider
constprovider=newDatadogProvider({// Required client-side Datadog credentials
applicationId:'<APPLICATION_ID>',clientToken:'<CLIENT_TOKEN>',site:'<code class="js-region-param region-param" data-region-param="dd_site"></code>',env:'<YOUR_ENV>',// Same environment normally passed to the RUM SDK
service:'<SERVICE_NAME>',version:'1.0.0'});// Set the provider
awaitOpenFeature.setProviderAndWait(provider);
ブラウザ SDK は 3 つの独立したテレメトリストリームを出力し、これらはすべてデフォルトで有効になっています。enableExposureLogging 評価ごとのエクスポージャーイベントをエクスポージャーインテークに送信します。enableFlagEvaluationTracking 集計された評価テレメトリをフラグ評価インテークに送信します。enableRumFeatureFlagTracking フラグ評価を RUM イベントに付加します。これは RUM の使用量に影響を与える可能性のある設定です。不要なストリームのみを無効にしてください。
dd-trace と OpenFeature サーバー SDK をインストールします。
npm install dd-trace @openfeature/server-sdk
環境変数を使用してプロバイダーを有効にします。
# Required: Enable the feature flags providerDD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true# Optional: Enable flag evaluation metricsDD_METRICS_OTEL_ENABLED=true
または、コード内でプロバイダーを有効にします。
import{OpenFeature}from'@openfeature/server-sdk'importtracerfrom'dd-trace';tracer.init({experimental:{flaggingProvider:{enabled:true,}}});// Wait for the provider to initialize before evaluating flags.
awaitOpenFeature.setProviderAndWait(tracer.openfeature);
dependencies{// OpenFeature SDK for flag evaluation
implementation'dev.openfeature:sdk:1.20.1'// Datadog OpenFeature Provider
implementation'com.datadoghq:dd-openfeature:1.63.0'}
プロバイダーを有効にし、Java トレーサーを使用してアプリケーションを起動します。
# Required: Enable the feature flagging provider# The EXPERIMENTAL_ prefix is historical; the provider is no longer experimental.exportDD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=truejava -javaagent:path/to/dd-java-agent.jar -jar your-application.jar
# Required: Enable the feature flags providerexportDD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true# Optional: Enable flag evaluation metricsexportDD_METRICS_OTEL_ENABLED=true
Datadog Python SDK と OpenFeature SDK をインストールします。
pip install ddtrace openfeature-sdk
Datadog OpenFeature プロバイダーを登録します。
fromddtraceimporttracerfromopenfeatureimportapifromddtrace.openfeatureimportDataDogProvider# Initialize the tracer (required for Remote Configuration)tracer.configure()# Create and register the Datadog providerprovider=DataDogProvider()api.set_provider(provider)# Create an OpenFeature clientclient=api.get_client()
認証情報の概要
認証情報
使用者
保存場所
機密情報であるか
クライアントトークン
ブラウザ、モバイル、およびゲーム SDK
クライアントアプリケーションの設定
いいえ – 公開クライアントコードに含めても安全
アプリケーション ID
ブラウザおよび RUM 対応クライアント SDK
クライアントアプリケーションの設定
いいえ – 公開識別子
API キー
サーバーサイド Remote Configuration 用の Datadog Agent
Agent 設定のみ
はい – サーバーサイドのみに保持
API キーをブラウザ、モバイル、またはゲームアプリケーションに埋め込まないでください。
OpenFeature SDK の設定オプションに関する詳細は、そのドキュメントを参照してください。クライアントトークンおよびアプリケーション ID の作成に関する詳細は、「API キーとアプリケーションキー」を参照してください。
import{OpenFeature}from'@openfeature/web-sdk';constclient=OpenFeature.getClient();// If applicable, set relevant attributes on the client's global context
// (e.g. org id, user email)
awaitOpenFeature.setContext({org_id:2,user_id:'user-123',email:'user@example.com',targetingKey:'user-123'});// This is what the SDK returns if the flag is disabled in
// the current environment
constfallback=false;constshowFeature=awaitclient.getBooleanValue('show-new-feature',fallback);if(showFeature){// Feature code here
}
constevaluationContext={targetingKey:req.session?.userID??'unknown',companyID:req.session?.companyID};constisNewCheckoutEnabled=awaitclient.getBooleanValue('new-checkout-flow',// flag key
false,// default value
evaluationContext,// context
);if(isNewCheckoutEnabled){showNewCheckoutFlow();}else{showLegacyCheckout();}
importdev.openfeature.sdk.EvaluationContext;importdev.openfeature.sdk.MutableContext;EvaluationContextcontext=newMutableContext("user-123").add("email","user@example.com").add("tier","premium");booleanenabled=client.getBooleanValue("checkout.new",false,context);if(enabled){// New checkout flow}else{// Old checkout flow}