Application Insights 개요
Application Insights는 Azure Monitor가 확장된 것으로서, 애플리케이션 성능 모니터링("APM") 기능이 있습니다. APM 도구는 다음과 같은 방법으로 개발, 테스트 및 프로덕션까지 애플리케이션을 모니터링하는 데 유용합니다.
- 애플리케이션의 성능을 사전에 파악합니다.
- 애플리케이션 실행 데이터를 사후에 검토하여 인시던트의 원인을 확인합니다.
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, 온-프레미스 또는 다른 클라우드에서 호스트될 수 있습니다. 어떤 유형의 계측이 가장 적합한지 알아보려면 애플리케이션을 계측하는 어떻게 할까요?를 참조하세요.
Application Insights 에이전트 또는 SDK는 원격 분석 및 메트릭을 미리 처리한 후에 추가로 수집 및 처리되는 Azure로 데이터를 보낸 다음 Azure Monitor 로그(Log Analytics)에 저장됩니다. 이러한 이유에서 Application Insights를 사용하려면 Azure 계정이 필요합니다.
Application Insights 사용을 시작하는 가장 쉬운 방법은 Azure Portal 및 기본 제공 시각적 환경을 사용하는 것입니다. 고급 사용자는 직접 기본 데이터를 쿼리하여 Azure Monitor 대시보드 및 통합 문서를 통해 사용자 지정 시각화를 빌드할 수 있습니다.
상위 수준을 보려면 애플리케이션 맵부터 시작하는 것이 좋습니다. 검색 환경을 사용하여 형식 및 날짜 시간별로 원격 분석 및 데이터의 범위를 빠르게 좁히거나 데이터(예: 로그 추적) 내에서 검색하고 지정된 상관 관계가 있는 관심 작업으로 필터링합니다.
성능 보기를 사용하여 분석으로 이동 – 애플리케이션 또는 API 및 다운스트림 종속성이 어떻게 수행되는지에 대한 심층적인 통찰을 얻고, 대표 샘플을 찾아 종단 간 탐색을 실시합니다. 또한 오류 보기로 사전에 조치 - 오류와 심사 오류 및 예외를 생성하는 구성 요소 또는 작업을 파악합니다. 기본 제공 보기는 애플리케이션 상태를 사전에 추적하고 사후 근본 원인을 분석할 때 유용합니다.
Azure Monitor 경고를 만들어 애플리케이션 또는 구성 요소 부분이 설정된 기준에서 벗어나는 경우 잠재적인 문제를 신호로 보냅니다.
Application Insights 가격 책정은 소비가 기준이므로 사용하는 항목에 대해서만 비용을 지불합니다. 가격 책정에 대한 자세한 내용은 Azure Monitor 가격 책정 페이지 및 비용을 최적화하는 방법을 참조하세요.
애플리케이션을 어떻게 계측할까요?
자동 계측은 기본 계측 방법입니다. 개발자 투자가 필요 없으며 SDK 업데이트와 관련된 향후 오버헤드가 없습니다. 소스 코드에 액세스할 수 없는 애플리케이션을 계측하는 유일한 방법이기도 합니다.
다음 경우에만 Application Insights SDK를 설치해야 합니다.
- 사용자 지정 이벤트 및 메트릭이 필요한 경우
- 원격 분석 흐름을 제어해야 하는 경우
- 자동 계측을 사용할 수 없는 경우(일반적으로 언어 또는 플랫폼 제한으로 인해)
SDK를 사용하려면 앱에 작은 계측 패키지를 설치한 다음 웹 페이지 내에서 웹앱, 모든 백그라운드 구성 요소 및 JavaScript를 계측합니다. 앱 및 해당 구성 요소는 Azure에서 호스팅할 필요가 없습니다. 계측은 앱을 모니터링하고, 고유한 토큰을 사용하여 원격 분석 데이터를 Azure Application Insights 리소스로 보냅니다. 앱 성능에 미치는 영향은 작습니다. 추적 호출은 차단되지 않으며 일괄 처리를 통해 별도의 스레드로 전송됩니다.
Azure App Service .NET, Azure App Service .NET Core, Azure Functions 및 Azure Virtual Machines에 통합 자동 계측을 사용할 수 있습니다.
Azure Monitor Application Insights 에이전트는 온-프레미스 가상 머신에서 실행되는 워크로드에 사용할 수 있습니다.
모든 자동 계측 지원 환경, 언어 및 리소스 공급자에 대한 자세한 보기를 여기에서 확인할 수 있습니다.
그 외 시나리오는 Application Insights SDK가 필요합니다.
미리 보기 Open Telemetry 제품도 사용할 수 있습니다.
지원되는 언어
이 섹션에서는 지원되는 시나리오를 간략하게 설명합니다.
지원되는 플랫폼 및 프레임워크
이 섹션에서는 지원되는 모든 플랫폼 및 프레임워크를 나열합니다.
Azure 서비스 통합(포털 사용, Azure Resource Manager 배포)
- Azure Virtual Machines 및 Azure Virtual Machine Scale Sets
- Azure App Service
- Azure Functions
- Azure Spring Apps
- 웹 역할과 작업자 역할을 모두 포함하는 Azure Cloud Services
자동 계측(코드 변경 없이 사용하도록 설정)
수동 계측/SDK(일부 코드 변경 필요)
- ASP.NET
- ASP.NET Core
- Node.JS
- Python
- JavaScript - 웹
- Windows 데스크톱 애플리케이션, 서비스 및 작업자 역할
- 유니버설 Windows 앱(App Center)
- Android(App Center)
- iOS(App Center)
참고
OpenTelemetry 기반 계측은 C#, Node.js 및 Python용 미리 보기로 제공됩니다. 각 언어의 공식 설명서 시작 부분에 언급된 제한 사항을 검토합니다. 전체 기능 환경이 필요한 경우 기존 Application Insights SDK를 사용합니다.
로깅 프레임워크
- ILogger
- Log4Net, NLog 또는 System.Diagnostics.Trace
- Log4J, Logback 또는 java.util.logging
- LogStash 플러그 인
- Azure Monitor
내보내기 및 데이터 분석
지원되지 않는 SDK
커뮤니티에서 지원하는 몇 가지 다른 Application Insights SDK가 있습니다. 그러나 Azure Monitor는 이 페이지에 나열된 지원되는 계측 옵션을 사용할 때만 지원을 제공합니다. 다른 언어에 대한 지원을 확대할 수 있는 기회를 지속적으로 평가하고 있습니다. 최신 SDK 뉴스를 보려면 Application Insights용 Azure 업데이트를 따릅니다.
질문과 대답
자주 묻는 질문을 검토합니다.
문제 해결
Application Insights에 대한 전용 문제 해결 문서를 검토합니다.
도움말 및 지원
Microsoft Q&A 질문 포럼
Microsoft Q&A 답변 포럼에 일반 질문을 게시합니다.
Stack Overflow
Application Insights 태그를 사용하여 Stack Overflow에 코딩 질문을 게시합니다.
사용자 의견
UserVoice에서 엔지니어링 팀에 대한 제품 피드백을 남겨 둡니다.