フィーチャーフラグ

デモは、異なるシナリオのシミュレートするために利用可能ないくつかのフィーチャーフラグを提供しています。 これらのフラグは、OpenFeature をサポートするシンプルなフィーチャーフラグサービスの flagd によって管理されます。

フラグの値は、デモを起動している際に、http://localhost:8080/feature で提供されるユーザーインターフェイスを通じて変更できます。 このユーザーインターフェイスを通じて値を変更すると、flagd サービスに反映されます。

ユーザーフラグを通じたフィーチャーフラグの変更する場合、2 つのオプションがあります。

  • ベーシックビュー: 各フィーチャーフラグに対して、デフォルトのバリエーション(生のファイルで構成するときに変更する必要がある同じオプション)を選択して保存できるユーザーフレンドリーなビュー。 現在、ベーシックビューは部分ターゲティングはサポートされていません。
  • アドバンスドビュー: 読み込んでブラウザで編集可能な生の JSON 設定ファイルのビュー。 このビューは生の JSON ファイルを編集できるという柔軟性を提供しますが、JSON が有効であり、入力された設定値が正しいかを保証するスキーマチェックも提供します。

実装済みフィーチャーフラグ

フィーチャーフラグサービス説明
adServiceFailure広告10分の1の確率で GetAds のエラーを生成します
adServiceManualGc広告広告サービスで完全手動のガベージコレクションを引き起こします
adServiceHighCpu広告広告サービスで CPU を高負荷にします。 CPU スロットリングをデモしたい場合は、CPUリソース制限を設定します
cartServiceFailureカートEmptyCart が呼び出されるたびにエラーを生成します
emailMemoryLeakEメールemail サービスでメモリリークをシミュレートします
llmInaccurateResponseLLM商品 ID L9ECAV7KIM について、モック LLM サービスは不正確な商品レビューの要約を返します
llmRateLimitErrorLLMモック LLM サービスは HTTP ステータスコード 429 の RateLimitError を断続的に返します
productCatalogFailure商品カタログ商品 ID: OLJCESPC7ZGetProduct リクエストに対してエラーを生成します
recommendationServiceCacheFailureレコメンデーション指数関数的に増大するキャッシュによりメモリリークが発生します。 1.4 倍のペースで増加し、リクエストの 50% がその増加を引き起こします
paymentServiceFailure支払いcharge メソッドを呼び出すときに、エラーを発生させます
paymentServiceUnreachable決済支払いサービスを呼び出すときに支払いサービスが利用できないように見せるために、不正アドレスを使用します
loadgeneratorFloodHomepage負荷生成ツール大量のリクエストでホームページにフラッディングを開始します。 これは状態である flagd JSON の変更で設定可能です
kafkaQueueProblemsキューKafka キューに過負荷がかかり、同時にコンシューマー側の遅延も発生し、ラグの急増を引き起こします
imageSlowLoadフロントエンドEnvoy フォールトインジェクションを利用し、フロントエンドでの製品画像の読み込みに遅延を発生させます
failedReadinessProbeカートレディネスプローブを失敗させ、ステータスを異常にし、Pod の “NotReady” 状態を再現します。 Kubernetes デプロイメントにのみ適用されます。

ガイド付きデバッグシナリオ

recommendationServiceCacheFailure シナリオには、OpenTelemetry を使用してメモリリークをデバッグする方法を理解するのに役立つ専用のウォークスルードキュメントがあります。

フィーチャーフラグアーキテクチャ

flagd の動作の詳細については flagd documentation を、OpenFeature の動作の詳細については OpenFeature と OpenFeature API を参照してください。