.NET Aspire 대시보드 사용

완료됨

원격 분석 데이터를 기록한 후에는 이를 검사할 방법이 필요합니다. .NET Aspire를 사용하면 대시보드에서 원격 분석을 조사하고 문제를 진단할 수 있는 풍부한 도구를 제공합니다.

야외 장비 판매점에서 일하고 있다고 상상해 보세요. .NET Aspire 클라우드 네이티브 앱에서 OpenTelemetry를 사용하고 있습니다. 이제 원격 분석에서 내보내는 데이터를 검사하여 이를 사용하여 성능을 개선할 수 있는지 결정하려고 합니다.

이 단원에서는 .NET Aspire 대시보드가 원격 분석 데이터를 표시하는 방법을 살펴보겠습니다.

.NET Aspire 대시보드의 원격 분석

개발 컴퓨터와 각 통합을 실행하는 컨테이너에서 .NET Aspire로 빌드한 앱을 시작하면 .NET은 .NET Aspire 대시보드를 시작합니다. 이 웹 인터페이스에는 5개의 섹션이 있으며 그 중 4개는 원격 분석을 표시합니다.

  • 리소스: 전체 클라우드 네이티브 앱을 구성하는 컨테이너, 프로젝트 및 실행 파일을 나열합니다. 각 마이크로 서비스에 연결하려면 엔드포인트 열의 링크를 사용합니다.
  • 콘솔: 지정한 통합에서 표준 출력으로 전송된 텍스트를 표시합니다.
  • 구조화된 로그: OpenTelemetry 로거로 전송된 정보를 표시합니다.
  • 추적: 앱의 마이크로 서비스에서 수신한 각 요청에 대한 추적을 표시합니다.
  • 메트릭: 선택한 메트릭이 어떻게 달라지는지 보여 주는 구성 가능한 시간 영역 그래프를 표시합니다.

대시보드의 로그

기록된 이벤트는 앱이 시작되고 실행될 때 어떤 일이 발생하는지 설명합니다. 대시보드에서는 콘솔 로그와 구조화된 로그라는 두 가지 형식의 기록된 정보를 볼 수 있습니다.

콘솔 로그

콘솔 로그에는 앱이 표준 출력으로 보낸 텍스트가 표시됩니다. 명령줄 프로그램은 이러한 텍스트를 콘솔에 줄로 표시하지만 마이크로 서비스와 지원 서비스에는 표준 출력을 표시할 고유한 위치가 없습니다. .NET Aspire는 대시보드에 콘솔 로그 페이지를 제공하여 도움을 줍니다.

페이지를 열 때 먼저 마이크로 서비스 중 하나와 같은 원본 통합을 선택해야 합니다. 이 도구는 일부 서식을 사용하여 해당 원본의 모든 표준 출력을 주 창에 표시합니다. 예를 들어, 정보 이벤트는 녹색으로 표시되고 오류는 빨간색으로 표시됩니다.

콘솔 로그는 단순한 텍스트 줄입니다. 애플리케이션이 만들고 내보내는 것은 쉽지만 구조가 불완전하기 때문에 인간이 읽기 어렵고 분석 목적으로 처리하기가 어렵습니다.

.NET Aspire 대시보드의 콘솔 로그를 보여 주는 스크린샷.

구조적 로그

일반 텍스트 대신 구조화된 로그는 템플릿 및 메시지 매개 변수를 사용하여 기록된 메시지를 보존합니다. 이 구조를 사용하면 관련 없는 이벤트를 더 쉽게 필터링할 수 있으므로 드릴다운하여 특정 문제를 해결할 수 있습니다. 프로덕션 환경에서는 데이터베이스처럼 로그를 유지하고 인덱싱한 다음 쿼리할 수 있습니다. 이러한 방식으로 포함된 데이터에 대해 풍부한 분석을 수행할 수 있습니다.

참고 항목

구조화된 로그는 의미 체계 로그라고도 합니다.

코드에서 OpenTelemetry ILogger 개체를 사용하여 구조화된 로그에 이벤트를 보냅니다.

logger.Info("{shopitem} added to basket by {user}", "Ski goggles", "Kenny");

.NET 대시보드의 구조화된 로그 페이지에는 앱에 있는 모든 리소스의 이벤트가 표시됩니다. 드릴다운하려면 문제를 해결하려는 리소스를 선택하고 필터수준 상자를 사용하여 관련 이벤트만 표시합니다.

.NET Aspire 대시보드의 구조화된 로그를 보여 주는 스크린샷.

대시보드의 분산 추적

추적은 요청이 처리되어 호출자에게 반환되는 방법을 설명하는 기록입니다. 각 추적에는 앱의 여러 통합에 대한 호출이 포함될 수 있습니다. 예를 들어, 사용자가 제품 카탈로그 웹 페이지를 요청하면 웹 UI 마이크로 서비스는 요청을 수신할 수 있으며, 이는 사용자에게 웹 페이지를 반환하기 전에 인증 마이크로 서비스, 카탈로그 마이크로 서비스 및 Redis Cache를 호출할 수 있습니다.

.NET Aspire 대시보드의 추적 목록을 보여 주는 스크린샷.

각 추적은 카탈로그 마이크로 서비스 호출과 같은 범위로 구성됩니다. 시스템은 타이밍 및 부모 정보와 함께 각 범위를 기록하므로 어떤 통합이 빠르게 응답하고 어떤 통합이 지연을 일으키는지 확인할 수 있습니다. 각 범위에 대한 자세한 내용을 확인할 수 있습니다.

.NET Aspire 대시보드의 개별 추적을 보여 주는 스크린샷.

구조화된 로그와 마찬가지로 원본을 선택하고 필터를 적용하여 진단하려는 특정 문제에 대한 추적을 드릴다운하고 찾을 수 있습니다.

대시보드의 메트릭

메트릭은 시간이 지남에 따라 달라지는 값으로, 앱 통합에 의해 기록됩니다. 예를 들어, 메트릭은 요청 및 응답 기간이나 카탈로그 마이크로 서비스에 대한 활성 연결 수를 기록할 수 있습니다. 일부 메트릭은 .NET에 기본 제공되어 있고 일부는 OpenTelemetry SDK 라이브러리와 함께 제공되며 개발자는 해당 통합에 고유한 사용자 지정 OpenTelemetry 메트릭을 추가할 수 있습니다.

.NET Aspire 대시보드에는 시간에 따른 메트릭의 변화를 조사하고 표시하는 데 사용할 수 있는 메트릭 섹션이 포함되어 있습니다.

예를 들어, http.server.active_requests 메트릭은 특정 순간에 처리 중인 요청 수를 표시합니다.

.NET Aspire 대시보드의 활성 요청 메트릭 그래프를 보여 주는 스크린샷.

http.server.request.duration 메트릭은 특정 순간에 앱이 얼마나 반응하는지 표시합니다.

.NET Aspire 대시보드의 요청 기간 메트릭 그래프를 보여 주는 스크린샷.

각 그래프 아래에서 그래프를 대상으로 하는 필터를 지정할 수 있습니다. 예를 들어, 이 그래프는 홈페이지 경로에 대한 요청에 대한 요청 기간 메트릭을 보여 줍니다.

필터가 적용된 .NET Aspire 대시보드의 요청 기간 메트릭 그래프를 보여 주는 스크린샷.

자세한 정보