段階的ロールアウトとカナリアリリース

This product is not supported for your selected Datadog site. ().

段階的ロールアウトとは、新機能の対象となるユーザーの割合を時間の経過とともに段階的に増やすことで、機能をリリースする手法です。カナリアとは、ガードレールメトリクスを監視し、リグレッションを検出した場合に自動的に一時停止または停止する段階的ロールアウトです。

段階的ロールアウト

段階的ロールアウトを設定する

  1. フィーチャーフラグに移動し、対象環境の [ターゲティングルールとロールアウト] を開きます。
  2. [ターゲティングルールの追加] をクリックし、[ロールアウトステップの追加] を選択して、複数ステップのロールアウトを作成します。
  3. ロールアウトステップを設定します。
    • 各ステップのパーセンテージをカスタマイズし、必要に応じてステップを追加または削除します。
    • ステップ間の待機時間を変更して、ロールアウトの速度を調整します。
    • [トラフィックの分割] をクリックすると、複数のバリアントを同時にロールアウトできます。
複数ステップの段階的ロールアウトの設定

ロールアウトを開始して制御する

  1. ****SDK がターゲティングルールを評価するように、環境設定でフラグを有効にします。
  2. [ロールアウト開始] をクリックして、段階的なロールアウトを開始します。
複数ステップの段階的ロールアウトの表示

[ロールアウト開始] をクリックする代わりに、将来の日時に自動的にロールアウトを開始するには、ルールを設定する際に開始時間をスケジュールしてください。

ロールアウト開始後:

  • [ロールアウト一時停止] をクリックすると、進行を一時的に停止できます。
  • [ロールアウト停止] をクリックすると、ロールアウトの進行がすべて元に戻ります。

評価トラッキングで進行状況を監視し、ロールアウトイベントの通知を設定できます。

カナリア

カナリアとは、ガードレールメトリクスを組み込んだ段階的なロールアウト手法です。ガードレールメトリクスは、エラー率、レイテンシー、長時間タスク数などの主要業績評価指標 (KPI) を測定します。

カナリアの仕組み

ガードレールメトリクスが設定されている場合、ロールアウト中は以下の両グループのメトリクスが監視されます。

  • トリートメント: ロールアウト対象のバリアントが適用されるグループ
  • コントロール: トリートメント対象のバリアントが適用されないグループ

カナリアがガードレールメトリクスにおいて統計的に有意な悪化を検出すると、ロールアウトは自動的に一時停止または停止されます。

APM ガードレールメトリクスの使用

カナリアロールアウト向けの APM ガードレールメトリクスは、現在プレビュー版として提供されています。アクセスをリクエストするには、Datadog の担当者にお問い合わせください。

APM ガードレールメトリクスでは、保持されたスパンを使用して、コントロールグループとトリートメントグループ間のアプリケーションパフォーマンスを比較します。以下を監視できます。

  • 平均スパン時間
  • エラー率
  • P90 スパン時間
  • 数値スパン属性の平均

APM メトリクスをカナリアに追加する前に、APM トレースエンリッチメントが必要です。エンリッチメントにより、各トレースにフラグの割り当て、バリアント、およびサブジェクトの情報が記録され、カナリアが APM データを適切なグループに関連付けられるようになります。

エンリッチメントを有効にした後:

  1. トレースされたリクエスト中にアプリケーションがフィーチャーフラグを評価していることを確認します。
  2. Trace Explorer で、ルートスパンにデコードされた @feature_flags.<flag_key> 属性が含まれていることを確認します。
  3. 監視対象のリクエストに一致するスパンクエリを使用して、APM メトリクスを作成します。
  4. カナリアを設定する際に、その APM メトリクスをガードレールとして選択します。

カナリア分析では、条件に一致するトレースのうち保持されたサンプルが使用されます。保持されたトレースの量が少ない場合、カナリアは判定に必要な十分な数のサンプル対象とイベントが揃うまで待機します。ランダムに保持されるサンプルを増やすには、カナリアの一時的なトレース保持を設定します。一時的な保持設定を行っても、Datadog に到達する前に破棄されたトレースを復元することはできません。

APM スパンを選択したメトリクス作成フローと、P90 スパン所要時間を含むサポート対象の APM ガードレールメトリクスタイプ。
APM スパンクエリと一致するスパンプレビューを使用した APM メトリクス作成フロー。

カナリアロールアウトを設定する

  1. 「段階的ロールアウトを設定する」セクションの説明に従い、段階的ロールアウトのターゲット設定ルールを作成します。
  2. ロールアウト設定にガードレールメトリクスを追加します。
  3. APM ガードレールの場合は、保持されるサンプルを増やすために、一時的なトレース保持を設定します。
  4. ガードレールで障害が検出された際に、ロールアウトを一時停止するか、完全に停止するかを選択します。
ガードレールメトリクスとコントロールバリアントを含むロールアウトステップを示すカナリアロールアウトの設定。
P90 スパン期間のガードレール、中止アクション、一時的な APM トレース保持、およびコントロールバリアントを備えたカナリア設定。

ベストプラクティス

  • フラグの通知設定を行い、ロールアウトの開始、一時停止、または停止時にアラートを受け取れるようにします。
  • ロールアウトを開始する前に、カナリア通知を設定します。ガードレールメトリクスによってロールアウトが一時停止または停止された際に、Notifications がアラートを送信します。
  • 評価トラッキングを使用して、ロールアウトの進行に伴い、各バリアントが何人の対象者に割り当てられているかを監視します。
  • APM ガードレールの場合は、ロールアウトの対象範囲を拡大する前に、保持されたサンプルに十分な数の対象者とイベントが含まれていることを確認します。