다음을 통해 공유


원격 분석 .NET.NET Aspire

.NET .NET Aspire 주요 목표 중 하나는 앱이 쉽게 디버그하고 진단할 수 있도록 하는 것입니다. .NET .NET Aspire 통합은 .NETOpenTelemetry SDK를 사용하여 로깅, 트레이싱 및 메트릭 구성을 자동으로 설정하며, 이는 관찰 가능성의 기둥으로 알려져 있습니다.

  • 로깅: 로그 이벤트는 앱 실행 시 발생하는 작업을 설명합니다. 기준 집합은 기본적으로 .NET.NET Aspire 통합에 대해 사용하도록 설정되며, 요청 시 보다 광범위한 로깅을 사용하도록 설정하여 특정 문제를 진단할 수 있습니다.

  • 추적: 추적은 여러 컴퓨터 또는 프로세스에 분산되어 있더라도 동일한 논리 작업의 일부인 로그 이벤트(예: 단일 요청 처리)의 상관 관계를 지정합니다.

  • 메트릭: 메트릭은 앱의 성능 및 상태 특성을 간단한 숫자 값으로 노출합니다. 결과적으로 성능 오버헤드가 낮고, 많은 서비스가 텔레메트리를 항상 켜진 상태로 구성합니다. 또한 잠재적인 문제가 감지될 때 경고를 트리거하는 데 적합합니다.

이러한 유형의 원격 분석을 함께 사용하면 다양한 모니터링 및 분석 도구를 사용하여 애플리케이션의 동작 및 성능에 대한 인사이트를 얻을 수 있습니다. 지원 서비스에 따라 일부 통합은 이러한 기능 중 일부만 지원할 수 있습니다.

.NET Aspire OpenTelemetry 통합

.NET OpenTelemetry SDKILogger, Activity, MeterInstrument<T>포함하여 여러 .NET API에서 데이터를 수집하는 기능이 포함되어 있습니다. 이러한 API는 로깅, 추적 및 메트릭과 같은 원격 분석 기능에 해당합니다. .NET Aspire 프로젝트는 ServiceDefaults 프로젝트에서 OpenTelemetry SDK 구성을 정의합니다. 자세한 내용은 .NET.NET Aspire 서비스 기본값참조하세요.

기본적으로 ConfigureOpenTelemetry 메서드는 앱에 대한 로깅, 추적 및 메트릭을 사용하도록 설정합니다. 또한 다른 모니터링 도구에서 수집할 수 있도록 이러한 데이터 포인트에 대한 내보내기를 추가합니다.

모니터링을 위해 OpenTelemetry 데이터 내보내기

.NET OpenTelemetry SDK를 사용하면 이 원격 분석 데이터를 데이터 저장소 또는 보고 도구로 쉽게 내보낼 수 있습니다. 원격 분석 내보내기 메커니즘은 OTLP(OpenTelemetry 프로토콜)를 사용하여 REST 또는 gRPC를 통해 원격 분석 데이터를 전송하기 위한 표준화된 접근 방식을 제공합니다. 또한 ConfigureOpenTelemetry 메서드는 데이터 제공자를 등록하여 원격 분석 데이터를 Prometheus 또는 Azure Monitor와 같은 다른 모니터링 도구에 제공합니다. 자세한 내용은 OpenTelemetry 구성참조하세요.

OpenTelemetry 환경 변수

는 telemetry 수집 및 내보내기의 중요한 동작을 설정하는 데 사용되는 알려진 환경 변수의 목록을 가지고 있습니다. .NET SDK를 포함한 OpenTelemetry SDK는 이러한 변수 읽기를 지원합니다.

.NET Aspire 프로젝트는 내보낸 원격 분석에서 앱의 이름과 ID를 구성하고 데이터를 내보내도록 OTLP server 주소 엔드포인트를 설정하는 환경 변수를 사용하여 시작됩니다. 예를 들어:

  • OTEL_SERVICE_NAME = myfrontend
  • OTEL_RESOURCE_ATTRIBUTES = service.instance.id=1a5f9c1e-e5ba-451b-95ee-ced1ee89c168
  • OTEL_EXPORTER_OTLP_ENDPOINT = http://localhost:4318

환경 변수는 로컬 개발에서 자동으로 설정됩니다.

.NET .NET Aspire 로컬 개발

.NET Aspire 프로젝트를 만들 때 .NET Aspire 대시보드는 기본적으로 앱 원격 분석을 보기 위한 UI를 제공합니다. 원격 분석 데이터는 OTLP를 사용하여 대시보드로 전송되고, 대시보드는 원격 분석 데이터를 수신하고 메모리에 저장하는 OTLP server 구현합니다. .NET .NET Aspire 디버깅 워크플로는 다음과 같습니다.

  • 개발자는 디버깅을 사용하여 프로젝트를 시작하고 F5누릅니다.
  • .NET .NET Aspire 대시보드 및 DCP(개발자 컨트롤 플레인)가 시작됩니다.
  • 앱 구성은 AppHost 프로젝트에서 실행됩니다.
    • OpenTelemetry 환경 변수는 앱 구성 중에 .NET 프로젝트에 자동으로 추가됩니다.
    • DCP는 내보낸 원격 분석 데이터에 있는 앱의 이름(OTEL_SERVICE_NAME) 및 ID(OTEL_RESOURCE_ATTRIBUTES)를 제공합니다.
    • OTLP 엔드포인트는 대시보드에서 시작한 HTTP/2 포트입니다. 이 엔드포인트는 각 프로젝트의 OTEL_EXPORTER_OTLP_ENDPOINT 환경 변수에 설정됩니다. 이는 프로젝트에 원격 분석을 다시 대시보드로 내보내도록 지시합니다.
    • 대시보드에서 데이터를 빠르게 사용할 수 있도록 내보내기 간격(OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL)이 적습니다. 작은 값은 로컬 개발에서 효율성보다 대시보드 응답성의 우선 순위를 지정하는 데 사용됩니다.
  • DCP는 구성된 프로젝트, 컨테이너 및 실행 파일을 시작합니다.
  • 시작하면 앱이 대시보드에 원격 분석 데이터를 보냅니다.
  • 대시보드는 모든 .NET.NET Aspire 프로젝트의 거의 실시간 원격 분석을 표시합니다.

이러한 모든 단계는 내부적으로 수행되므로 대부분의 경우 개발자는 이 프로세스의 작동을 확인하기 위해 앱을 실행하기만 하면 됩니다.

.NET .NET Aspire 배포

.NET Aspire 배포 환경은 해당 환경에 적합한 OpenTelemetry 환경 변수를 구성해야 합니다. 예를 들어 환경의 로컬 OTLP 수집기 또는 모니터링 서비스에 OTEL_EXPORTER_OTLP_ENDPOINT을 구성해야 합니다.

.NET .NET Aspire 원격 분석은 OTLP를 지원하는 환경에서 가장 적합합니다. OTEL_EXPORTER_OTLP_ENDPOINT 구성되지 않은 경우 OTLP 내보내기가 비활성화됩니다.

자세한 내용은 .NET.NET Aspire 배포를 참조하세요.