Руководство: Использование панели мониторинга автоматического выключателя в Azure Spring Apps

Предупреждение

Hystrix больше не находится в активной разработке и в настоящее время находится в режиме обслуживания.

Примечание.

Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Эта статья относится к:✅ Java ❎ C#

Эта статья относится к:✅ Basic/Standard ✅ Enterprise

В этой статье показано, как использовать Netflix Turbine и Netflix Hystrix в Azure Spring Apps. Spring Cloud Netflix Turbine широко используется для агрегирования нескольких потоков метрик Netflix Hystrix, чтобы потоки можно было отслеживать в одном представлении с помощью панели мониторинга Hystrix .

Примечание.

Netflix Hystrix широко используется во многих существующих приложениях Spring, но он больше не в активной разработке. Если вы разрабатываете новый проект, вам следует использовать реализации Spring Cloud Circuit Breaker, такие как resilience4j. В отличие от Turbine, показанного в этом учебнике, новая платформа размыкателя цепи Spring Cloud объединяет все реализации своего конвейера данных метрик в Micrometer, который также поддерживается средой Azure Spring Apps. Для получения дополнительной информации см. статью Сбор метрик отказоустойчивости Spring Cloud Resilience4J с помощью Micrometer (предварительная версия).

Подготовка примеров приложений

Пример разветвлен из этого репозитория.

Клонируйте пример репозитория в среду разработки:

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

Создайте три приложения, которые находятся в этом руководстве:

  • сервис пользователей: простой REST-сервис, который имеет одну конечную точку /персонализированный/{id}
  • recommendation-service: простой REST-сервис с единственной конечной точкой /recommendations, которая вызывается сервисом user-service.
  • hystrix-turbine: служба панели управления Hystrix для отображения потоков Hystrix и служба Turbine, агрегирующая поток метрик Hystrix из других служб.
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

Эти приложения не используют сервер конфигурации, поэтому не нужно настраивать сервер конфигурации для Azure Spring Apps. Создайте и разверните приложения следующим образом:

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

Проверка приложений

Убедившись, что запущенные приложения обнаруживаются, откройте в браузере страницу user-service, перейдя по адресу https://<Azure-Spring-Apps-instance-name>-user-service.azuremicroservices.io/personalized/1. Если приложение user-service может получить доступ к recommendation-service, вы должны получить следующие выходные данные. Обновите веб-страницу несколько раз, если она не работает.

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

Доступ к панели мониторинга Hystrix и потоку метрик

Выполните проверку, используя общедоступные конечные точки или частные конечные точки теста.

Использование общедоступных конечных точек

Получите доступ к приложению hystrix-turbine с помощью пути https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/hystrix из браузера. На следующем рисунке показана панель мониторинга Hystrix, работающая в этом приложении.

Снимок экрана панели мониторинга Hystrix, включающей показатели задержки и заголовка.

Скопируйте URL-адрес потока Turbine https://<SERVICE-NAME>-hystrix-turbine.azuremicroservices.io/turbine.stream?cluster=default в текстовое поле и нажмите Monitor Stream (Мониторинг потока). Это действие отображает панель мониторинга. Если в средстве просмотра ничего не отображается, нажмите конечные точки user-service для создания потоков.

Снимок экрана страницы потока Hystrix, показывающей подробные сведения о цепях и пулах потоков.

Примечание.

В рабочей среде панель мониторинга Hystrix и поток метрик не должны быть доступны в Интернете.

Использование частных конечных точек теста

Потоки метрик Hystrix также доступны из test-endpoint. В качестве серверной службы мы не назначали общедоступную конечную точку для recommendation-service, но мы можем отобразить ее метрики с помощью test-endpoint в https://primary:<KEY>@<SERVICE-NAME>.test.azuremicroservices.io/recommendation-service/default/actuator/hystrix.stream.

Скриншот страницы потока тестовой конечной точки Hystrix.

Как веб-приложение панель мониторинга Hystrix должна работать на test-endpoint. Если он не работает должным образом, может быть две причины: во-первых, использование test-endpoint изменило базовый URL-адрес с / на /<APP-NAME>/<DEPLOYMENT-NAME>, или, во-вторых, веб-приложение использует абсолютный путь для статического ресурса. Чтобы это работало на test-endpoint, возможно, потребуется вручную отредактировать <base> в фронтенд-файлах.

Следующие шаги