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 리소스에 원격 분석을 보내는 방법을 보여 줍니다.
Application Insights 사용 방법
Application Insights를 시작하는 데는 여러 가지 방법이 있습니다. 가장 적합한 항목으로 시작하고 나중에 다른 항목을 추가할 수 있습니다.
필수 구성 요소
Azure 계정이 필요합니다. Application Insights는 Azure에서 호스트되며 분석 및 프레젠테이션을 위해 Azure로 원격 분석을 보냅니다. Azure 구독이 없는 경우 체험 등록을 할 수 있습니다. 조직에 이미 Azure 구독이 있는 경우 관리자가 사용자를 추가할 수 있습니다.
기본 Application Insights 요금제는 앱에 상당한 사용량이 될 때까지 요금이 부과되지 않습니다.
시작하기
런타임에 Application Insights를 사용하려면 서버에서 웹앱을 계측할 수 있습니다. 이 방법은 앱 코드에 대한 업데이트를 방지하므로 이미 배포된 앱에 적합합니다.
자세한 내용과 지침은 다음 문서를 참조하세요.
- Azure App Service에 대한 애플리케이션 모니터링 개요
- Azure 가상 머신 및 Azure 가상 머신 확장 집합에 Azure Monitor Application Insights 에이전트 배포
- 온-프레미스 서버용 Azure Monitor Application Insights 에이전트 배포
- Java 애플리케이션에 대한 Azure Monitor OpenTelemetry 기반 자동 계측
개발 시 Application Insights를 앱 코드에 추가할 수도 있습니다. 이 방법을 사용하면 원격 분석 컬렉션을 사용자 지정하고 추가할 수 있습니다.
자세한 내용과 지침은 다음 문서를 참조하세요.
- ASP.NET 웹 사이트용 Application Insights 구성
- ASP.NET Core 애플리케이션용 Application Insights
- .NET 콘솔 애플리케이션용 Application Insights
- 웹 페이지용 Application Insights
- Application Insights를 사용하여 Node.js 서비스 및 앱 모니터링
- Python 애플리케이션용 Azure Monitor 설정
지원되는 모든 언어, 플랫폼 및 프레임워크는 지원되는 언어를 참조하세요.
Monitor
Application Insights를 설정한 후 앱을 모니터링합니다.
- 가용성 웹 테스트를 설정합니다.
- 단체방에 대한 기본값 애플리케이션 대시보드를 사용하여 부하, 응답성 및 성능을 추적합니다. 종속성, 페이지 로드 및 AJAX 호출을 모니터링합니다.
- 가장 느리고 대부분 실패한 요청을 검색합니다.
- 새 릴리스를 배포할 때 라이브 스트림을 보고 성능 저하를 즉시 인식합니다.
검색 및 진단
경고를 수신하거나 문제를 검색한 경우:
- 얼마나 많은 사용자가 영향을 받는지 평가합니다.
- 오류는 예외, 종속성 호출 및 추적과 연관이 있습니다.
- 프로파일러, 스냅샷, 스택 덤프 및 추적 로그를 검사합니다.
측정, 학습 및 빌드
- 고객이 새 사용자 환경 또는 비즈니스 기능을 사용하는 방법을 측정하도록 계획합니다.
- 코드에 사용자 지정 원격 분석을 작성합니다.
- 배포하는 새로운 각 기능의 효율성을 측정합니다.
- 원격 분석에서 얻은 증거를 기반으로 다음 개발 주기를 결정합니다.
Application Insights에서 모니터링하는 항목
Application Insights는 개발 팀이 앱 성능 및 사용량을 이해하는 데 도움이 됩니다. Application Insights는 다음을 모니터링합니다.
요청 속도, 응답 시간 및 실패율
하루 중 어떤 시간에, 어떤 사용자 위치에서, 어떤 페이지가 가장 인기 있는지 확인합니다. 어떤 페이지가 가장 성능이 우수한지 확인합니다. 더 많은 요청이 있을 때 응답 시간과 실패율이 높으면 리소스 문제가 있을 수 있습니다.
외부 서비스로 인해 속도가 느려지는지 확인하기 위한 종속성 횟수, 응답 시간 및 실패율
예외
집계된 통계를 분석하거나 특정 인스턴스를 선택하여 스택 추적 및 관련 요청을 자세히 분석합니다. Application Insights가 서버 및 브라우저 예외를 모두 보고합니다.
사용자의 브라우저에서 보고된 페이지 보기 및 로드 성능
속도, 응답 시간 및 실패율을 포함하여 웹 페이지의 AJAX 호출
사용자 및 세션 수
CPU, 메모리 및 네트워크 사용량과 같은 Windows 또는 Linux 서버 컴퓨터의 성능 카운터
Docker 또는 Azure의 호스트 진단
앱의 진단 추적 로그를 통해 추적 이벤트와 요청의 상관 관계를 지정할 수 있습니다
판매된 항목과 같은 비즈니스 이벤트를 추적하는 클라이언트 또는 서버 코드의 사용자 지정 이벤트 및 메트릭
Application Insights 데이터의 위치
Application Insights 원격 분석을 탐색하는 방법에는 여러 가지가 있습니다. 자세한 내용은 다음 문서를 참조하세요.
-
앱의 일반적인 원격 분석 패턴에 맞게 조정하고 일반적인 패턴을 벗어난 경우 트리거되는 자동 경고를 설정합니다. 특정 수준의 사용자 지정 또는 표준 메트릭에 대해 경고를 설정할 수도 있습니다. 자세한 내용은 Azure Monitor를 사용하여 로그 경고 만들기, 보기 및 관리를 참조하세요.
-
주요 메트릭 및 경고가 포함된 앱의 구성 요소를 살펴봅니다.
Application Insights를 사용하여 라이브 Azure App Service 앱 프로파일링
샘플링된 요청의 실행 프로필을 검사합니다.
Application Insights를 사용하여 사용량 분석
사용자 구분 및 재방문 주기를 분석합니다.
-
인스턴스 데이터에 대한 트랜잭션 검색을 적용합니다. 요청, 예외, 종속성 호출, 로그 추적 및 페이지 보기와 같은 이벤트를 검색하고 필터링할 수 있습니다.
-
요청, 실패 및 예외의 비율과 응답 시간, 페이지 로드 시간과 같은 집계된 데이터를 탐색, 필터링 및 분할할 수 있습니다.
-
여러 리소스의 데이터를 결합하고 다른 사용자와 공유합니다. 다중 구성 요소 앱에서 사용하거나 단체방에 연속으로 표시하는 데 사용합니다.
라이브 메트릭 스트림: 1초 대기 시간으로 모니터링 및 진단
새 빌드를 배포할 때 이러한 실시간에 가까운 성능 표시기를 확인하여 모든 항목이 예상대로 작동하는지 알 수 있습니다.
-
강력한 KQL(Kusto 쿼리 언어)을 사용하여 앱의 성능 및 사용량에 대해 질문합니다.
Visual Studio의 Application Insights를 사용하여 애플리케이션 디버그
코드에서 성능 데이터를 보고 스택 추적에서 코드로 이동합니다.
-
스냅샷 디버거를 사용하여 매개 변수 값으로 라이브 작업에서 샘플링된 스냅샷을 디버그합니다.
Application Insights에서 Power BI 공급
사용 현황 메트릭을 다른 비즈니스 인텔리전스와 통합합니다.
Application Insights REST API를 사용하여 사용자 지정 솔루션 빌드
메트릭 및 원시 데이터에 대한 쿼리를 실행하는 코드를 작성합니다.
Application Insights에서 원격 분석 내보내기
연속 내보내기를 사용하여 도착하자마자 원시 데이터를 스토리지로 대량으로 내보냅니다.
다음 단계
- 페이지 보기, AJAX 및 기타 클라이언트 쪽 원격 분석에 대해 웹 페이지를 계측 합니다.
- Visual Studio App Center와 통합하여 모바일 앱 사용을 분석 합니다.
- Application Insights 서버에서 웹 사이트에 대한 URL ping 테스트를 사용하여 가용성을 모니터링합니다.
문제 해결
FAQ
자주 묻는 질문을 검토합니다.
Microsoft Q&A 질문 포럼
Microsoft Q&A 답변 포럼에 질문을 게시합니다.
Stack Overflow
Application Insights 태그를 사용하여 Stack Overflow에 코딩 질문을 게시합니다.
사용자 의견
UserVoice에서 엔지니어링 팀에 대한 제품 피드백을 남겨 둡니다.