Azure Container Apps(미리 보기)에서 .NET Aspire 대시보드를 사용하여 실시간 앱 데이터 읽기
.NET Aspire 대시보드는 환경 내에서 애플리케이션 및 기타 리소스가 어떻게 실행되는지에 대한 실시간 데이터를 표시합니다.
다음 이미지는 .NET Aspire Dashboard에서 생성된 추적 시각화의 스크린샷입니다.
대시보드에 표시되는 정보는 두 가지 원본에서 제공됩니다.
OTel(OpenTelemetry)은 애플리케이션의 추적, 메트릭, 로그를 추적하는 오픈 소스 라이브러리입니다. 이 설명서에서는 Aspire 대시보드가 OTel과 통합되는 방법에 대한 자세한 정보를 제공합니다.
- 추적은 요청의 수명 주기를 추적합니다. 즉, 요청이 애플리케이션의 여러 부분 사이를 이동할 때 어떻게 수신되고 처리되는지를 추적합니다. 이 정보는 병목 현상과 기타 문제를 식별하는 데 유용합니다.
- 메트릭은 인프라의 전반적인 상태와 성능을 실시간으로 측정한 것입니다. 예를 들어, CPU 리소스가 얼마나 소모되었는지, 애플리케이션이 초당 처리하는 트랜잭션 수가 얼마인지 등을 측정합니다. 이 정보는 앱의 반응성을 이해하거나 성능 문제의 조기 경고 신호를 식별하는 데 유용합니다.
- 로그는 애플리케이션 실행 중에 발생하는 모든 이벤트와 오류를 기록합니다. 이 정보는 문제가 발생한 시점과 관련된 이벤트를 찾는 데 유용합니다.
Kubernetes API는 애플리케이션이 실행되는 기본 Kubernetes Pod와 해당 로그에 대한 정보를 제공합니다.
대시보드는 무단 액세스 및 수정으로부터 보호됩니다. 대시보드를 사용하려면 사용자에게 '쓰기' 권한 이상이 있어야 합니다. 즉, 해당 환경에서 기여자 또는 소유자여야 합니다.
대시보드 활성화
팁
포털을 선택적으로 사용할 수 있지만 대시보드를 사용하도록 설정하는 데 권장되는 방식은 azd를 사용하는 것입니다. 포털을 사용하면서 문제가 발생하면 Container Apps GitHub 리포지토리에서 문제를 만듭니다.
다음 단계에서 기존 컨테이너 앱에서 .NET Aspire 대시보드를 사용하도록 설정할 수 있습니다.
Azure Portal로 이동합니다.
컨테이너 앱의 개요 창을 엽니다.
.NET Aspire Dashboard 레이블을 찾아 사용 링크를 선택합니다.
이 작업을 수행하면 .NET Aspire 대시보드 설정 창이 열립니다.
.NET Aspire 대시보드 레이블 옆에 있는 사용 확인란을 선택합니다.
이제 .NET Aspire 대시보드 URL이 표시됩니다.
대시보드의 URL을 선택합니다.
다음 명령을 사용하여 기존 컨테이너 앱 환경에서 .NET Aspire 대시보드를 사용하도록 설정할 수 있습니다.
az containerapp env dotnet-component create \
--environment <ENVIRONMENT_NAME> \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME>
create
명령은 브라우저에서 열 수 있는 대시보드 URL을 반환합니다.
다음 단계에서 기존 컨테이너 앱에서 .NET Aspire 대시보드를 사용하도록 설정할 수 있습니다.
dotnet new aspire-starter
azd init --location westus2
azd config set aspire.dashboard on
azd up
up
명령은 브라우저에서 열 수 있는 대시보드 URL을 반환합니다.
문제 해결
대시보드를 사용하도록 설정하는 데 문제가 있는 경우 다음 항목을 참조하세요.
포털이 대시보드를 활성화하는 데 최대 2분이 걸릴 수 있습니다. 준비되기 전에 대시보드로 이동하려고 하면 서버가
404
또는421
오류를 반환합니다.421
"잘못된 요청" 오류가 발생하는 경우 브라우저 창을 닫고 몇 분 정도 기다린 후 다시 시도합니다.대시보드에 액세스할 때 "요청된 리소스로 사용자를 인증할 수 없음"이라는 인증 오류가 표시될 수 있습니다.
이 문제를 해결하려면 Container Apps 환경에 대해 Microsoft.App/managedEnvironments/write, 기여자 또는 소유자 역할을 부여해야 합니다.