Azure App Service에 대한 애플리케이션 모니터링의 개요
이제 Azure App Service에서 실행되는 ASP.NET, ASP.NET Core, Java 및 Node.js를 기반으로 하는 웹 애플리케이션에서 모니터링을 사용하도록 설정하는 것이 그 어느 때보다 쉬워졌습니다. 이전에는 수동으로 앱을 계측해야 했지만 이제 최신 확장/에이전트가 기본적으로 App Service 이미지에 기본 제공됩니다.
Application Insights 사용
App Service에서 호스팅되는 애플리케이션에 대한 모니터링을 사용하도록 설정하는 방법에는 두 가지가 있습니다.
자동 계측 애플리케이션 모니터링(ApplicationInsightsAgent).
이 방법으로 가장 쉽게 사용하도록 설정할 수 있고 코드 변경이나 고급 구성이 필요하지 않습니다. 이 방법을 “런타임” 모니터링이라고도 합니다. App Service의 경우 최소한 이 수준의 모니터링을 사용하도록 설정하는 것이 좋습니다. 특정 시나리오를 기반으로 수동 계측을 통한 고급 모니터링이 필요한지 여부를 평가할 수 있습니다.
자동 계측을 사용하도록 설정하면 기본 설정으로 Application Insights가 사용할 수 있습니다(샘플링도 포함됨). Azure AppInsights: 샘플링: 모든 데이터 100%를 설정한 경우에도 이 설정은 무시됩니다.
지원되는 자동 계측 시나리오의 전체 목록은 지원되는 환경, 언어 및 리소스 공급자를 참조하세요.
자동 계측 모니터링에는 다음 플랫폼이 지원됩니다.
Application Insights SDK를 설치하여 코드를 통해 애플리케이션을 수동으로 계측합니다.
이 방식은 훨씬 더 사용자 지정이 가능하지만 다음 방식이 필요합니다. .NET Core용 SDK, .NET, Node.js, Python 및 Java용 독립형 에이전트. 이 방법은 또한 최신 버전의 패키지에 대한 업데이트를 직접 관리해야 함을 의미합니다.
자동 계측 모니터링을 사용하여 기본적으로 캡처되지 않는 이벤트/종속성을 추적하기 위해 사용자 지정 API 호출을 수행해야 하는 경우 이 방법을 사용해야 합니다. 자세한 내용은 사용자 지정 이벤트 및 메트릭용 Application Insights API를 참조하세요.
자동 계측 모니터링과 수동 SDK 기반 계측이 모두 감지되면 .NET에서는 수동 계측 설정만 적용되는 반면 Java에서는 자동 계측만 원격 분석을 내보냅니다. 이 방법은 중복 데이터가 전송되는 것을 방지하기 위한 것입니다.
참고 항목
스냅샷 디버거 및 프로파일러는 .NET 및 .Net Core에서만 사용할 수 있습니다.
릴리스 정보
이 섹션에는 Application Insights를 사용한 런타임 계측을 위한 Azure Web Apps 확장의 릴리스 정보가 포함되어 있습니다.
현재 사용 중인 확장의 버전을 찾으려면 https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights
로 이동합니다.
릴리스 정보
2.8.44
- .NET/.NET Core: ApplicationInsights .NET SDK를 2.20.1로 업그레이드했습니다.
2.8.43
- .NET/.NET Core, Java 및 Node.js 패키지를 서로 다른 App Service Windows 사이트 확장으로 구분합니다.
2.8.42
- JAVA 확장: 2.5.1에서 Java Agent 3.2.0으로 업그레이드되었습니다.
- Node.js 확장: AI SDK가 2.1.7에서 2.1.8로 업데이트되었습니다. 사용자 및 시스템 할당 Microsoft Entra 관리 ID에 대한 지원이 추가되었습니다.
- .NET Core: .NET 시작 후크를 사용하는 자체 포함 배포 및 .NET 6.0 지원이 추가되었습니다.
2.8.41
- Node.js 확장: AI SDK가 2.1.3에서 2.1.7로 업데이트되었습니다.
- .NET Core: 지원되지 않는 버전(2.1)이 제거되었습니다. 지원되는 버전은 3.1 및 5.0입니다.
2.8.40
- JAVA 확장: 3.0.2에서 Java Agent 3.1.1(GA)으로 업그레이드되었습니다.
- Node.js 확장: AI SDK가 1.8.8에서 2.1.3으로 업데이트되었습니다.
2.8.39
- .NET Core: .NET Core 5.0 지원이 추가되었습니다.
2.8.38
- JAVA 확장: 2.5.1에서 Java 에이전트 3.0.2(GA)로 업그레이드되었습니다.
- Node.js 확장: AI SDK가 1.8.7에서 1.8.8로 업데이트되었습니다.
- .NET Core: 지원되지 않는 버전(2.0, 2.2, 3.0)이 제거되었습니다. 지원되는 버전은 2.1 및 3.1입니다.
2.8.37
- AppSvc Windows 확장: .NET Core를 모든 버전의 System.Diagnostics.DiagnosticSource.dll과 함께 작동할 수 있게 되었습니다.
2.8.36
- AppSvc Windows 확장: .NET Core에서 AI SDK와의 상호 운용을 사용하도록 설정했습니다.
2.8.35
- AppSvc Windows 확장: .NET Core 3.1 지원이 추가되었습니다.
2.8.33
- .NET, .NET Core, Java 및 Node.js 에이전트 및 Windows 확장: 소버린 클라우드를 지원합니다. 연결 문자열을 사용하여 소버린 클라우드로 데이터를 보낼 수 있습니다.
2.8.31
- ASP.NET Core 에이전트는 Application Insights SDK의 문제가 해결되었습니다. 런타임이
System.Diagnostics.DiagnosticSource.dll
의 잘못된 버전을 로드한 경우 코드 없는 확장이 애플리케이션을 중단하지 않고 백오프합니다. 이 문제를 해결하려면 고객은 bin 폴더에서System.Diagnostics.DiagnosticSource.dll
을 제거하거나ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24
를 설정하여 이전 버전의 확장을 사용해야 합니다. 그렇지 않으면 애플리케이션 모니터링이 사용하도록 설정되지 않습니다.
2.8.26
- ASP.NET Core 에이전트: 업데이트된 Application Insights SDK와 관련된 문제가 해결되었습니다. ApplicationInsights.dll이 이미 bin 폴더에 있는 경우 에이전트가
AiHostingStartup
로드를 시도하지 않습니다. 이렇게 하면 Assembly<AiHostingStartup>. GetTypes()를 통해 리플렉션과 관련된 문제가 해결됩니다. - 알려진 문제: 다른 버전의
DiagnosticSource
dll이 로드되면System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
예외가 throw될 수 있습니다. 예를 들어 게시 폴더에System.Diagnostics.DiagnosticSource.dll
이 있는 경우 이런 상황이 발생할 수 있습니다. 해결하려면 앱 서비스 ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24에서 앱 설정을 지정하여 이전 버전의 확장을 사용합니다.
2.8.24
- 다시 패키지된 2.8.21 버전입니다.
2.8.23
- ASP.NET Core 3.0 코드리스 모니터링 지원이 추가되었습니다.
- 런타임 버전 2.1, 2.2 및 3.0의 ASP.NET Core SDK가 2.8.0으로 업데이트되었습니다. .NET Core 2.0을 대상으로 하는 앱은 계속 SDK 2.1.1을 사용합니다.
2.8.14
- .NET Core 2.1, 2.2를 대상으로 하는 앱의 경우 ASP.NET Core SDK 버전이 2.3.0에서 최신 버전(2.6.1)으로 업데이트되었습니다. .NET Core 2.0을 대상으로 하는 앱은 계속 SDK 2.1.1을 사용합니다.
2.8.12
ASP.NET Core 2.2 앱을 지원합니다.
애플리케이션이 이미 SDK로 계측된 경우에도 ASP.NET Core 확장에서 SDK를 삽입하는 버그가 수정되었습니다. 2.1 및 2.2 앱의 경우 이제 애플리케이션 폴더에 ApplicationInsights.dll이 있으면 확장이 백오프됩니다. 2.0 앱의 경우 ApplicationInsights가
UseApplicationInsights()
호출을 사용하도록 설정된 경우에만 확장이 백오프됩니다.ASP.NET Core 앱에 대한 불완전한 HTML 응답이 영구적으로 해결되었습니다. 이 수정 사항은 이제 .NET Core 2.2 앱에서 작동하도록 확장되었습니다.
ASP.NET Core 앱(
APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting
)에 대한 JavaScript 삽입을 해제하는 지원이 추가되었습니다. ASP.NET Core에서 명시적으로 해제하지 않는 한 JavaScript 삽입은 기본적으로 "옵트아웃" 모드에 있습니다. (현재 동작을 유지하기 위해 기본 설정이 수행됩니다.)ikey가 없는 경우에도 삽입을 유발하는 ASP.NET Core 확장 버그가 수정되었습니다.
원격 분석에서 잘못된 SDK 버전을 유발하던 SDK 버전 접두사 논리의 버그가 수정되었습니다.
원격 분석이 수집된 방법을 식별하기 위해 ASP.NET Core 앱에 대한 SDK 버전 접두사가 추가되었습니다.
미리 설치된 확장의 버전을 올바르게 표시하도록 SCM- ApplicationInsights 페이지가 수정되었습니다.
2.8.10
- ASP.NET Core 앱에 대한 불완전한 HTML 응답이 해결되었습니다.
자주 묻는 질문
이 섹션에서는 일반적인 질문에 대한 답변을 제공합니다.
Application Insights에서 내 프로젝트를 어떻게 수정하나요?
세부 정보는 프로젝트의 유형에 따라 달라집니다. 웹 애플리케이션의 경우:
- 프로젝트에 다음 파일이 추가됩니다.
- ApplicationInsights.config
- ai.js
- 다음 NuGet 패키지가 설치됩니다.
- Application Insights API: 핵심 API
- 웹 애플리케이션용 Application Insights API: 서버에서 원격 분석을 보내는 데 사용
- JavaScript 애플리케이션용 Application Insights API: 클라이언트에서 원격 분석을 보내는 데 사용
- 패키지에는 다음 어셈블리가 포함됩니다.
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.Platform
- 항목 삽입 위치:
- Web.config
- packages.config
- (새 프로젝트의 경우에만 기존 프로젝트에 Application Insights를 수동으로 추가합니다.) 클라이언트 및 서버 코드에 코드 조각을 삽입하여 Application Insights 리소스 ID로 해당 코드를 초기화합니다. 예를 들어 MVC 앱에서 기본 페이지 Views/Shared/_Layout.cshtml에 코드가 삽입됩니다.
다음 단계
App Service에서 실행되는 .NET Core, .NET, Java, Nodejs 또는 Python 애플리케이션에 대해 자동 계측 애플리케이션 모니터링을 사용하도록 설정하는 방법을 알아봅니다.