フィーチャーフラグ

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

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

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

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

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

フィーチャーフラグサービス説明
adFailure広告10分の1の確率で GetAds のエラーを生成します
adHighCpu広告広告サービスで CPU を高負荷にします。 CPU スロットリングをデモしたい場合は、CPU リソース制限を設定します
adManualGc広告広告サービスで完全手動のガベージコレクションを引き起こします
aiRunawayAgentエージェントエージェントが終了せずツールを呼び出し続けるように仕向け、暴走やループするエージェントをシミュレートします。
aiSlowResponseエージェントエージェントの LLM モデル呼び出しを遅延させ、LLM プロバイダーのレイテンシー劣化をシミュレートします。
cartFailureカート選択された割合の EmptyCart 呼び出しを、障害が発生するカートストアに送信します
emailMemoryLeakEメールemail サービスでメモリリークをシミュレートします。 バリアントは、各確認メール本文がどの程度パディングされるかを設定します
failedReadinessProbeカートレディネスプローブを失敗させ、ステータスを異常にし、Pod の “NotReady” 状態を再現します。 Kubernetes デプロイメントにのみ適用されます。
imageSlowLoadフロントエンドEnvoy フォールトインジェクションを利用し、フロントエンドでの製品画像の読み込みに遅延を発生させます。 バリアントは遅延時間を設定します。
intlShippingSlowdown配送米国外の配送リクエストを選択された秒数だけ遅延させ、海外配送の遅延をシミュレートします。 米国内の住所は影響を受けません。
kafkaQueueProblemsチェックアウト、不正検知Kafka キューに過負荷がかかり、同時にコンシューマー側の遅延も発生し、ラグの急増を引き起こします
loadGeneratorTraffic負荷生成ツール負荷生成ツールからの合成トラフィックを有効にします。 オフにすると、すべての負荷生成シナリオが一時停止します。
loadGeneratorVUs負荷生成ツール負荷生成ツールの HTTP シナリオを実行する同時仮想ユーザー数です。 変更すると、次回のポーリング時に k6 が再起動されます。
paymentFailure支払い選択された割合の charge 呼び出しに対してエラーを生成します
paymentUnreachableチェックアウト支払いサービスを呼び出すときに支払いサービスが利用できないように見せるために、不正アドレスを使用します
productCatalogFailure商品カタログ商品 ID: OLJCESPC7Z の GetProduct リクエストに対してエラーを生成します
recommendationCacheFailureレコメンデーション指数関数的に増大するキャッシュによりメモリリークが発生します。 リクエストのおよそ半数がその増加を引き起こします

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

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

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

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