예: Azure Monitor 및 Application Insights에서 OpenTelemetry 사용
선택할 수 있는 많은 상용 APM(애플리케이션 성능 관리) 시스템이 있습니다. Azure에서 기본 애플리케이션 모니터링 제품은 Azure Monitor의 일부인 Application Insights입니다. 통합 APM 제품의 장점 중 하나는 다양한 가시성 데이터 원본의 상관 관계를 지정할 수 있다는 것입니다. Application Insights에는 다양한 보기 및 분석 기능이 있습니다.
1. Application Insights 배포판 추가
Azure Monitor를 사용하여 ASP.NET 환경을 더 쉽게 만들기 위해 OpenTelemetry를 구성하는 대부분의 작업을 수행하는 래퍼 패키지(OTel parlance의 Distro라고 함)가 제공됩니다.
이 예제는 OTLP 연습을 기반으로 합니다. 1-5단계에 따라 OTLP 내보내기를 사용하여 애플리케이션 코드를 만듭니다. 이 예제에서는 Application Insights로 데이터를 보내도록 코드를 확장합니다.
5단계에서 동일한 프로젝트를 수행하고 다음 NuGet 패키지를 추가합니다.
<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>
참고 항목
버전을 사용 가능한 최신 버전으로 바꾸기
2. 내보내기 설정
다음 OTel 초기화 코드를 다음 앞에 builder.Build();
추가합니다.
if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
otel.UseAzureMonitor();
}
UseAzureMonitor()
는 Application Insights에 대한 공통 계측 라이브러리와 내보내기를 추가하는 매직입니다. 사용자 지정 Meter
및 ActivitySource
이름을 등록에 추가하기만 하면 됩니다.
Application Insights와 동일한 OTel 초기화가 OTLP에 대해 작동합니다. 차이점은 선택한 내보내기입니다. 동일한 애플리케이션에서 둘 다 사용하고 적절한 환경 변수를 정의하여 둘 중에서 선택할 수 있습니다.
3. 연결 문자열 지정
아직 Azure 고객이 아닌 경우 https://azure.microsoft.com/free/에서 체험 계정을 만들 수 있습니다. Azure Portal에 로그인하고 기존 Application Insights 리소스를 선택하거나 https://ms.portal.azure.com/#create/Microsoft.AppInsights를 사용하여 새 리소스를 만듭니다.
Application Insights는 포털 UI의 오른쪽 위에 있는 계측 키 및 연결 문자열을 통해 데이터를 저장하고 처리하는 데 사용할 인스턴스를 식별합니다.
Azure App Service를 사용하는 경우 이 연결 문자열은 환경 변수로 애플리케이션에 자동으로 전달됩니다. 다른 서비스의 경우 또는 로컬로 실행할 때 환경 변수를 사용 APPLICATIONINSIGHTS_CONNECTION_STRING
하거나 appsettings.json 전달해야 합니다. 로컬로 실행하려면 appsettings.development.json 값을 추가하는 것이 가장 쉽습니다.
"AzureMonitor": {
"ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}
참고 항목
값을 인스턴스의 값으로 바꿉니다.
4. Application Insights에서 앱 검사
애플리케이션을 실행하면 원격 분석이 Application Insights로 전송됩니다. 이제 애플리케이션에 대한 로그, 메트릭, 분산 추적을 가져와야 합니다. Azure Portal에서 Application Insights 리소스를 엽니다.
.NET