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, PythonJava용 독립형 에이전트. 이 방법은 또한 최신 버전의 패키지에 대한 업데이트를 직접 관리해야 함을 의미합니다.

    자동 계측 모니터링을 사용하여 기본적으로 캡처되지 않는 이벤트/종속성을 추적하기 위해 사용자 지정 API 호출을 수행해야 하는 경우 이 방법을 사용해야 합니다. 자세한 내용은 사용자 지정 이벤트 및 메트릭용 Application Insights API를 참조하세요.

자동 계측 모니터링과 수동 SDK 기반 계측이 모두 감지되면 .NET에서는 수동 계측 설정만 적용되는 반면 Java에서는 자동 계측만 원격 분석을 내보냅니다. 이 방법은 중복 데이터가 전송되는 것을 방지하기 위한 것입니다.

참고 항목

스냅샷 디버거 및 프로파일러는 .NET 및 .Net Core에서만 사용할 수 있습니다.

릴리스 정보

이 섹션에는 Application Insights를 사용한 런타임 계측을 위한 Azure Web Apps 확장의 릴리스 정보가 포함되어 있습니다.

현재 사용 중인 확장의 버전을 찾으려면 https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights로 이동합니다.

릴리스 정보

2.8.44

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()를 통해 리플렉션과 관련된 문제가 해결됩니다.
  • 알려진 문제: 다른 버전의 DiagnosticSourcedll이 로드되면 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 애플리케이션에 대해 자동 계측 애플리케이션 모니터링을 사용하도록 설정하는 방법을 알아봅니다.