Application Insights 개요

Application Insights는 확장 가능한 APM(애플리케이션 성능 관리)과 라이브 웹앱에 대한 모니터링을 제공하는 Azure Monitor의 기능입니다. 개발자 및 DevOps 전문가는 Application Insights를 사용하여 다음을 수행할 수 있습니다.

  • 성능 변칙을 자동으로 검색합니다.
  • 강력한 분석 도구를 사용하여 문제를 진단하는 데 도움이 됩니다.
  • 사용자가 앱을 사용하여 실제로 수행하는 작업을 확인합니다.
  • 앱 성능 및 유용성을 지속적으로 개선하는 데 도움이 됩니다.

Application Insights:

  • .NET, Node.js, Java 및 Python을 비롯한 다양한 플랫폼을 지원합니다.
  • 온-프레미스, 하이브리드 또는 퍼블릭 클라우드에서 호스트되는 앱에서 작동합니다.
  • DevOps 프로세스와 통합됩니다.
  • 많은 개발 도구에 대한 연결점이 있습니다.
  • Visual Studio App Center를 통합하여 모바일 앱에서 원격 분석을 모니터링하고 분석할 수 있습니다.

Application Insights 작동 방법

Application Insights를 사용하려면 앱에 SDK(작은 계측 패키지)를 설치하거나 Application Insights 에이전트를 사용하여 Application Insights를 사용하도록 설정합니다. Application Insights 에이전트를 지원하는 언어 및 플랫폼은 지원되는 언어를 참조하세요.

웹앱, 모든 백그라운드 구성 요소 및 웹 페이지 자체의 JavaScript를 계측할 수 있습니다. 앱 및 해당 구성 요소는 Azure에서 호스팅할 필요가 없습니다.

계측은 앱을 모니터링하고, 고유한 계측 키를 사용하여 원격 분석 데이터를 Azure Application Insights 리소스로 보냅니다. 앱 성능에 미치는 영향은 적습니다. 추적 호출은 차단되지 않으며, 별도의 스레드로 일괄 처리 및 전송합니다.

호스트 환경에서 성능 카운터, Azure 진단 또는 Docker 로그와 같은 원격 분석을 끌어올 수 있습니다. 웹 서비스에 주기적으로 가상 요청을 보내는 웹 테스트를 설정할 수도 있습니다. 이러한 모든 원격 분석 스트림은 Azure Monitor에 통합되어 있습니다. Azure Portal에서 강력한 분석 및 검색 도구를 원시 데이터에 적용할 수 있습니다.

다음 다이어그램에서는 앱의 Application Insights 계측이 Application Insights 리소스에 원격 분석을 보내는 방법을 보여 줍니다.

Diagram that shows Application Insights instrumentation in an app sending telemetry to an Application Insights resource.

Application Insights 사용 방법

Application Insights를 시작하는 데는 여러 가지 방법이 있습니다. 가장 적합한 항목으로 시작하고 나중에 다른 항목을 추가할 수 있습니다.

필수 구성 요소

  • Azure 계정이 필요합니다. Application Insights는 Azure에서 호스트되며 분석 및 프레젠테이션을 위해 Azure로 원격 분석을 보냅니다. Azure 구독이 없는 경우 체험 등록을 할 수 있습니다. 조직에 이미 Azure 구독이 있는 경우 관리자가 사용자를 추가할 수 있습니다.

  • 기본 Application Insights 요금제는 앱에 상당한 사용량이 될 때까지 요금이 부과되지 않습니다.

시작하기

런타임에 Application Insights를 사용하려면 서버에서 웹앱을 계측할 수 있습니다. 이 방법은 앱 코드에 대한 업데이트를 방지하므로 이미 배포된 앱에 적합합니다.

자세한 내용과 지침은 다음 문서를 참조하세요.

개발 시 Application Insights를 앱 코드에 추가할 수도 있습니다. 이 방법을 사용하면 원격 분석 컬렉션을 사용자 지정하고 추가할 수 있습니다.

자세한 내용과 지침은 다음 문서를 참조하세요.

지원되는 모든 언어, 플랫폼 및 프레임워크는 지원되는 언어를 참조하세요.

Monitor

Application Insights를 설정한 후 앱을 모니터링합니다.

  • 가용성 웹 테스트를 설정합니다.
  • 단체방에 대한 기본값 애플리케이션 대시보드를 사용하여 부하, 응답성 및 성능을 추적합니다. 종속성, 페이지 로드 및 AJAX 호출을 모니터링합니다.
  • 가장 느리고 대부분 실패한 요청을 검색합니다.
  • 새 릴리스를 배포할 때 라이브 스트림을 보고 성능 저하를 즉시 인식합니다.

검색 및 진단

경고를 수신하거나 문제를 검색한 경우:

  • 얼마나 많은 사용자가 영향을 받는지 평가합니다.
  • 오류는 예외, 종속성 호출 및 추적과 연관이 있습니다.
  • 프로파일러, 스냅샷, 스택 덤프 및 추적 로그를 검사합니다.

측정, 학습 및 빌드

  • 고객이 새 사용자 환경 또는 비즈니스 기능을 사용하는 방법을 측정하도록 계획합니다.
  • 코드에 사용자 지정 원격 분석을 작성합니다.
  • 배포하는 새로운 각 기능의 효율성을 측정합니다.
  • 원격 분석에서 얻은 증거를 기반으로 다음 개발 주기를 결정합니다.

Application Insights에서 모니터링하는 항목

Application Insights는 개발 팀이 앱 성능 및 사용량을 이해하는 데 도움이 됩니다. Application Insights는 다음을 모니터링합니다.

  • 요청 속도, 응답 시간 및 실패율

    하루 중 어떤 시간에, 어떤 사용자 위치에서, 어떤 페이지가 가장 인기 있는지 확인합니다. 어떤 페이지가 가장 성능이 우수한지 확인합니다. 더 많은 요청이 있을 때 응답 시간과 실패율이 높으면 리소스 문제가 있을 수 있습니다.

  • 외부 서비스로 인해 속도가 느려지는지 확인하기 위한 종속성 횟수, 응답 시간 및 실패율

  • 예외

    집계된 통계를 분석하거나 특정 인스턴스를 선택하여 스택 추적 및 관련 요청을 자세히 분석합니다. Application Insights가 서버 및 브라우저 예외를 모두 보고합니다.

  • 사용자의 브라우저에서 보고된 페이지 보기 및 로드 성능

  • 속도, 응답 시간 및 실패율을 포함하여 웹 페이지의 AJAX 호출

  • 사용자 및 세션 수

  • CPU, 메모리 및 네트워크 사용량과 같은 Windows 또는 Linux 서버 컴퓨터의 성능 카운터

  • Docker 또는 Azure의 호스트 진단

  • 앱의 진단 추적 로그를 통해 추적 이벤트와 요청의 상관 관계를 지정할 수 있습니다

  • 판매된 항목과 같은 비즈니스 이벤트를 추적하는 클라이언트 또는 서버 코드의 사용자 지정 이벤트 및 메트릭

Application Insights 데이터의 위치

Application Insights 원격 분석을 탐색하는 방법에는 여러 가지가 있습니다. 자세한 내용은 다음 문서를 참조하세요.

다음 단계

문제 해결

FAQ

자주 묻는 질문을 검토합니다.

Microsoft Q&A 질문 포럼

Microsoft Q&A 답변 포럼에 질문을 게시합니다.

Stack Overflow

Application Insights 태그를 사용하여 Stack Overflow에 코딩 질문을 게시합니다.

사용자 의견

UserVoice에서 엔지니어링 팀에 대한 제품 피드백을 남겨 둡니다.