Application Insights 개요

Application Insights는 Azure Monitor 의 확장이며 APM(애플리케이션 성능 모니터링) 기능을 제공합니다. APM 도구는 다음과 같은 방법으로 개발, 테스트 및 프로덕션까지 애플리케이션을 모니터링하는 데 유용합니다.

  • 애플리케이션의 성능을 사전에 파악합니다.
  • 애플리케이션 실행 데이터를 사후에 검토하여 인시던트의 원인을 확인합니다.

Azure Portal Application Insights를 보여 주는 스크린샷

애플리케이션 활동 및 상태를 설명하는 메트릭 및 애플리케이션 원격 분석 데이터 수집과 함께 Application Insights를 사용하여 애플리케이션 추적 로깅 데이터를 수집하고 저장할 수 있습니다.

로그 추적이 다른 원격 분석과 연결되어 활동에 대해 자세히 볼 수 있습니다. 기존 앱에 추적 로깅을 추가하려면 로그에 대한 대상만 제공해야 합니다. 로깅 프레임워크를 변경할 필요가 거의 없습니다.

Application Insights는 그 외에 다음과 같은 기능을 제공합니다.

  • 라이브 메트릭: 호스트 환경에 영향을 주지 않고 배포된 애플리케이션의 활동을 실시간으로 관찰합니다.
  • 가용성: 가상 트랜잭션 모니터링이라고도 합니다. 애플리케이션의 외부 엔드포인트를 조사하여 시간에 따른 전반적인 가용성 및 응답성을 테스트합니다.
  • GitHub 또는 Azure DevOps 통합: Application Insights 데이터의 컨텍스트에서 GitHub 또는 Azure DevOps 작업 항목을 만듭니다.
  • 사용법: 사용자에게 인기 있는 기능과 사용자가 애플리케이션을 상호 작용하고 사용하는 방법을 이해합니다.
  • 스마트 검색: 사전 원격 분석 분석을 통해 자동으로 오류 및 변칙을 검색합니다.

Application Insights는 분산 구성 요소 상관 관계라고도 하는 분산 추적을 지원합니다. 이 기능을 사용하면 특정 실행 또는 트랜잭션의 엔드 투 엔드 흐름을 검색 하고 시각화 할 수 있습니다. 분산 구성 요소 또는 마이크로 서비스로 빌드된 애플리케이션에는 작업을 처음부터 끝까지 추적하는 기능이 중요합니다.

애플리케이션 맵을 사용하면 애플리케이션 아키텍처의 상위 수준 하향식 보기와 구성 요소 상태 및 응답성에 대한 시각적 참조를 한눈에 볼 수 있습니다.

환경 전체에서 애플리케이션 또는 구성 요소를 다루는 데 필요한 Application Insights 리소스의 수를 이해하려면 Application Insights 배포 계획 가이드를 참조하세요.

Application Insights를 어떻게 사용하나요?

Application Insights는 자동 침입 (에이전트)을 통해 또는 Application Insights SDK 또는 Azure Monitor OpenTelemetry Distro 를 애플리케이션 코드에 추가하여 사용하도록 설정됩니다. 많은 언어가 지원됩니다. 애플리케이션은 Azure, 온-프레미스 또는 다른 클라우드에서 호스팅될 수 있습니다. 어떤 유형의 계측이 가장 적합한지 알아보려면 애플리케이션 계측을 어떻게 할까요? 참조하세요.

Application Insights 에이전트 또는 SDK는 데이터를 Azure로 보내기 전에 원격 분석 및 메트릭을 전처리합니다. 그런 다음, Azure Monitor 로그(Log Analytics)에 저장되기 전에 추가로 수집 및 처리됩니다. 이러한 이유에서 Application Insights를 사용하려면 Azure 계정이 필요합니다.

Application Insights 사용을 시작하는 가장 쉬운 방법은 Azure Portal 및 기본 제공 시각적 환경을 사용하는 것입니다. 고급 사용자는 기본 데이터를 직접 쿼리하여 Azure Monitor 대시보드통합 문서를 통해 사용자 지정 시각화를 빌드할 수 있습니다.

상위 수준 보기의 경우 애플리케이션 맵 부터 시작하는 것이 좋습니다. 검색 환경을 사용하여 형식 및 날짜 시간별로 원격 분석 및 데이터의 범위를 빠르게 좁힐 수 있습니다. 또는 데이터(예: 로그 추적 포함) 내에서 검색하고 지정된 상관 관계가 있는 관심 작업으로 필터링할 수 있습니다.

두 보기는 특히 유용합니다.

  • 성능 보기: 애플리케이션 또는 API 및 다운스트림 종속성이 어떻게 수행되는지 자세히 알아봅니다. 종단 간 탐색을 위한 대표 샘플을 찾을 수도 있습니다.
  • 오류 보기: 오류 및 심사 오류 및 예외를 생성하는 구성 요소 또는 작업을 이해합니다. 기본 제공 보기는 애플리케이션 상태를 사전에 추적하고 사후 근본 원인 분석을 위해 유용합니다.

애플리케이션 또는 구성 요소 부분이 설정된 기준에서 벗어나는 경우 잠재적인 문제를 알리기 위해 Azure Monitor 경고를 만듭니다.

Application Insights 가격 책정은 사용량을 기반으로 합니다. 사용한 양만큼만 요금을 지급합니다. 가격 책정에 대한 자세한 내용은 다음을 참조하세요.

애플리케이션을 어떻게 계측할까요?

자동 침입 은 기본 계측 방법입니다. 개발자 투자가 필요 없으며 SDK 업데이트와 관련된 향후 오버헤드가 없습니다. 소스 코드에 액세스할 수 없는 애플리케이션을 계측하는 유일한 방법이기도 합니다.

다음과 같은 경우에만 Application Insights SDK를 설치해야 합니다.

SDK를 사용하려면 앱에 작은 계측 패키지를 설치한 다음 웹 페이지 내에서 웹앱, 모든 백그라운드 구성 요소 및 JavaScript를 계측합니다. 앱 및 해당 구성 요소는 Azure에서 호스팅할 필요가 없습니다.

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

통합 자동 침입은 .NET, Azure App Service .NETCore, Azure FunctionsAzure Virtual Machines Azure App Service 사용할 수 있습니다.

Azure Monitor Application Insights 에이전트는 온-프레미스 가상 머신에서 실행되는 워크로드에 사용할 수 있습니다.

지원되는 모든 자동 침입 환경, 언어 및 리소스 공급자에 대한 자세한 내용은 Azure Monitor Application Insights에 대한 자동 침입이란?을 참조하세요.

그 외 시나리오는 Application Insights SDK가 필요합니다.

미리 보기 OpenTelemetry 제품도 사용할 수 있습니다.


지원되는 언어

이 섹션에서는 지원되는 시나리오를 간략하게 설명합니다.

지원되는 플랫폼 및 프레임워크

이 섹션에서는 지원되는 모든 플랫폼 및 프레임워크를 나열합니다.

Azure 서비스 통합(포털 사용, Azure Resource Manager 배포)

자동 침입(코드 변경 없이 사용)

수동 계측/SDK(일부 코드 변경 필요)

참고

OpenTelemetry 기반 계측은 C#, Node.js 및 Python용 미리 보기로 제공됩니다. 각 언어의 공식 설명서 시작 부분에 언급된 제한 사항을 검토합니다. 전체 기능 환경이 필요한 경우 기존 Application Insights SDK를 사용합니다.

로깅 프레임워크

내보내기 및 데이터 분석

지원되지 않는 SDK

커뮤니티에서 지원하는 몇 가지 다른 Application Insights SDK가 있습니다. Azure Monitor는 이 문서에 나열된 지원되는 계측 옵션을 사용하는 경우에만 지원을 제공합니다.

다른 언어에 대한 지원을 확대할 수 있는 기회를 지속적으로 평가하고 있습니다. 최신 SDK 뉴스는 Application Insights용 Azure 업데이트를 참조하세요.


질문과 대답

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

문제 해결

Application Insights에 대한 전용 문제 해결 문서를 검토합니다.

도움말 및 지원

Azure 기술 지원

Azure 지원 문제의 경우 Azure 지원 티켓을 엽니다.

Microsoft Q&A 질문 포럼

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

Stack Overflow

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

피드백 커뮤니티

피드백 커뮤니티에서 엔지니어링 팀에 대한 제품 피드백을 그대로 니다.

다음 단계