.NET Aspire에서 OpenTelemetry 사용
.NET Aspire를 통해 .NET Aspire 프로젝트를 만들 때 OpenTelemetry 지원을 자동으로 포함하여 클라우드 네이티브 앱의 동작을 기록할 수 있습니다.
아웃도어 장비 소매업체에서 일한다고 상상해 보세요. 원격 분석 데이터를 기록하기로 결정했습니다. 이제 .NET Aspire가 원격 분석에 어떻게 도움이 되는지 알아보려고 합니다.
이 단원에서는 .NET Aspire와 OpenTelemetry API 간의 통합에 대해 알아봅니다.
.NET Aspire 및 OpenTelemetry
.NET Aspire의 디자인 및 구현의 주요 목표는 클라우드 네이티브 앱에서 쉽게 모니터링하고 문제를 해결할 수 있도록 하는 것입니다. 템플릿에서 새 앱을 만들거나 .NET Aspire 오케스트레이션에 기존 앱을 추가할 때마다 OpenTelemetry API를 사용하고 원격 측정 데이터의 원본을 자동으로 설정하여 전체 앱을 관찰하고 완전히 계측할 수 있도록 .NET Aspire에서 간소화합니다.
.NET Aspire 통합에는 원격 분석에 대한 기본 제공 지원도 있습니다.
.NET Aspire는 로컬로 디버그할 때 .NET Aspire 대시보드를 제공합니다. 이 웹 인터페이스에는 로그, 그래픽 형식의 메트릭 및 타임라인의 추적을 표시하는 다양한 도구가 포함되어 있습니다.
.NET Aspire의 OpenTelemetry 구성
.NET Aspire 솔루션에서 OpenTelemetry를 추가하고 구성하는 코드는 ServiceDefaults 프로젝트에 있습니다. Extensions.cs 파일에서 다음을 찾습니다.
- 로깅, 메트릭 및 추적 서비스를 추가하는
ConfigureOpenTelemetry()
메서드. - OTLP(OpenTelemetry Protocol) 내보내기를 추가하는
AddOpenTelemetryExporters()
메서드. - .NET에 기본 제공되는 모든 메트릭을 추가하는
AddBuiltInMeters()
메서드.
다른 내보내기 또는 메트릭을 추가하지 않으려면 이 코드를 그대로 둘 수 있습니다.
다음을 수행하려면 이 코드를 확장해야 합니다.
- 메트릭 또는 분산 추적 데이터의 추가 원본(예: 사용자 지정 메트릭)을 추가합니다.
- Application Insights 또는 Grafana와 같은 APM(애플리케이션 성능 관리) 시스템에 원격 분석 데이터를 보내는 내보내기를 추가합니다.
원격 분석 내보내기
OpenTelemetry는 기록하는 데이터를 다양한 도구로 내보낼 수 있으므로 필요한 분석을 지원하는 데이터를 선택할 수 있습니다.
일반적인 원격 분석 내보내기 대상은 다음과 같습니다.
- Aspire 대시보드. 이 모듈의 뒷부분에서 대시보드에 대해 자세히 알아봅니다.
- Prometheus 및 Grafana와 같은 다른 APM(애플리케이션 성능 관리) 도구.
- Azure Application Insights. Azure Monitor의 이 기능은 Azure 내 및 클라우드 네이티브 앱과 같은 다른 원본의 많은 원본에서 동작 데이터를 분석하고 표시할 수 있습니다.