次の方法で共有


チュートリアル: Azure Spring Apps でサーキット ブレーカー ダッシュボードを使用する

警告

Hystrix ではアクティブな開発は行われなくなっており、現在メンテナンス モードになっています。

Note

BasicStandard、および Enterprise プランは、2025 年 3 月中旬から廃止され、3 年間の提供終了期間となります。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の提供終了のお知らせ」を参照してください。

Standard 従量課金プランと専用プランは、2024 年 9 月 30 日以降は非推奨となり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金プランと専用プランを Azure Container Apps に移行する」を参照してください。

この記事の適用対象: ✔️ Java ❌ C#

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

この記事では、Azure Spring Apps で Netflix Turbine と Netflix Hystrix を使用する方法について説明します。 Spring Cloud Netflix Turbine とは、Hystrix ダッシュボードを使用して単一のビューでストリームを監視できるように複数の Netflix Hystrix メトリック ストリームを集約するためのものであり、広く使用されています。

注意

Netflix Hystrix は、既存の多くの Spring アプリで広く使用されていますが、現在活発な開発は行われていません。 プロジェクトを新規に開発する場合は、resilience4j のような Spring Cloud Circuit Breaker の実装を代わりに使用してください。 このチュートリアルで示した Turbine とは異なり、新しい Spring Cloud Circuit Breaker フレームワークでは、そのメトリック データ パイプラインのすべての実装が Micrometer に統合されます。これも、Azure Spring Apps によってサポートされています。 詳細については、「Micrometer を使用して、Spring Cloud Resilience4J サーキット ブレーカーのメトリックを収集する (プレビュー)」を参照してください。

サンプル アプリケーションを準備する

サンプルは、このリポジトリからフォークされます。

ご利用の開発環境にサンプル リポジトリを複製します。

git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
cd azure-spring-apps-samples/hystrix-turbine-sample

このチュートリアルに含まれる 3 つのアプリケーションをビルドします。

  • user-service: /personalized/{id} という単一のエンドポイントを備えたシンプルな REST サービス
  • recommendation-service: /recommendations という単一のエンドポイントを備えたシンプルな REST サービスです。これは、user-service によって呼び出されます。
  • hystrix-turbine: Hystrix ストリームを表示する Hystrix ダッシュボード サービスと、他のサービスから Hystrix メトリック ストリームを集約する Turbine サービス。
mvn clean package -D skipTests -f user-service/pom.xml
mvn clean package -D skipTests -f recommendation-service/pom.xml
mvn clean package -D skipTests -f hystrix-turbine/pom.xml

Azure Spring Apps インスタンスをプロビジョニングする

クイック スタート: 初めてのアプリケーションを Azure Spring Apps にデプロイする」の「Azure Spring Apps のインスタンスをプロビジョニングする」セクションの手順を実行してください。

Azure Spring Apps にアプリケーションをデプロイする

これらのアプリでは Config Server は使用されません。そのため、Azure Spring Apps 用に Config Server を設定する必要はありません。 次のように作成してデプロイします。

az configure --defaults \
    group=<resource-group-name> \
    spring=<Azure-Spring-Apps-instance-name>

az spring app create --name user-service --assign-endpoint
az spring app create --name recommendation-service
az spring app create --name hystrix-turbine --assign-endpoint

az spring app deploy \
    --name user-service \
    --artifact-path user-service/target/user-service.jar
az spring app deploy \
    --name recommendation-service \
    --artifact-path recommendation-service/target/recommendation-service.jar
az spring app deploy \
    --name hystrix-turbine \
    --artifact-path hystrix-turbine/target/hystrix-turbine.jar

アプリを確認する

すべてのアプリが実行中で検出可能になったら、ブラウザーから https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1 パスを使用して user-service にアクセスします。 user-service から recommendation-service にアクセスできる場合は、次の出力が表示されます。 Web ページが動作しない場合は、何度か更新してください。

[{"name":"Product1","description":"Description1","detailsLink":"link1"},{"name":"Product2","description":"Description2","detailsLink":"link3"},{"name":"Product3","description":"Description3","detailsLink":"link3"}]

Hystrix ダッシュボードとメトリックストリームにアクセスする

パブリック エンドポイントまたはプライベート テスト エンドポイントを使用して確認します。

パブリック エンドポイントの使用

ご利用のブラウザーからパス https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix を使用して hystrix-turbine にアクセスします。 次の図に、このアプリで実行されている Hystrix ダッシュボードを示します。

[Delay] と [Title] の詳細を示す Hystrix ダッシュボードのスクリーンショット。

Turbine ストリームの URL https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default をテキスト ボックスにコピーし、 [Monitor Stream](ストリームの監視) を選択します。 このアクションによりダッシュボードが表示されます。 ビューアーに何も表示されない場合は、user-service エンドポイントにアクセスしてストリームを生成してください。

[Circuit] と [Thread Pools] の詳細を示す [Hystrix Stream] ページのスクリーンショット。

Note

運用環境では、Hystrix ダッシュボードとメトリック ストリームをインターネットに公開しないでください。

プライベート テスト エンドポイントの使用

Hystrix メトリック ストリームには、test-endpoint からアクセスすることもできます。 バックエンド サービスとして、recommendation-service に対してパブリック エンドポイントを割り当てませんでしたが、そのメトリックは、https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream で test-endpoint を使用して表示できます。

[Hystrix test-endpoint ストリーム] ページのスクリーンショット。

Web アプリとして、Hystrix ダッシュボードが test-endpoint 上で機能している必要があります。 正常に機能していない場合は、次の 2 つの理由が考えられます。1 つは、test-endpoint を使用したことで、ベース URL が / から /<APP-NAME>/<DEPLOYMENT-NAME> に変更されたこと、もう 1 つは Web アプリで静的リソースに絶対パスが使用されていることです。 test-endpoint で動作させるには、フロントエンド ファイル内の <base> を手動で編集することが必要になる場合があります。

次のステップ