AZ-204에서 Application Insights는 모니터링 도메인의 핵심입니다. 앱이 실제로 어떻게 동작하는지 실시간으로 파악할 수 있게 해주는 서비스입니다.
Application Insights란?
Application Insights는 자동차의 대시보드 계기판과 같습니다. 운전 중에 속도, 연료, 엔진 온도를 한눈에 볼 수 있듯이, Application Insights를 사용하면 웹 앱의 성능, 오류, 사용 패턴을 실시간으로 모니터링할 수 있습니다.
Azure Monitor의 기능 중 하나로, 웹 애플리케이션에 특화된 APM(Application Performance Management) 도구입니다.
| 기능 | 설명 | 예시 | |------|------|------| | 성능 모니터링 | 응답 시간, 처리량 측정 | API 응답이 평균 200ms | | 오류 추적 | 예외 발생 기록 및 분석 | NullReferenceException 5건/시간 | | 사용 패턴 분석 | 사용자 행동 파악 | 결제 페이지 이탈률 30% | | 종속성 모니터링 | 외부 서비스 호출 추적 | DB 쿼리, 외부 API 지연 |
계측 (Instrumentation)
계측이란 앱에 "센서"를 붙이는 과정입니다. 자동차에 센서를 부착해야 계기판에 데이터가 표시되듯, 앱에도 계측 코드를 추가해야 Application Insights가 데이터를 수집할 수 있습니다.
SDK 계측 (수동)
코드에 직접 Application Insights SDK를 추가합니다. 더 세밀한 제어가 가능합니다.
자동 계측 (코드리스)
코드 수정 없이 Azure App Service 설정만으로 활성화합니다. 빠르고 간편하지만 사용자 지정 이벤트는 추가할 수 없습니다.
수집되는 데이터 종류:
요청 (Requests): HTTP 요청/응답 정보 종속성 (Dependencies): DB, 외부 API 호출 예외 (Exceptions): 처리되지 않은 오류 페이지 뷰 (Page Views): 브라우저에서 수집 (JavaScript SDK 필요) 사용자 지정 이벤트 (Custom Events): 개발자가 직접 추가
분산 추적 (Distributed Tracing)
마이크로서비스 환경에서는 하나의 요청이 여러 서비스를 거칩니다. 예를 들어 쇼핑몰 주문 처리는 주문 서비스 → 재고 서비스 → 결제 서비스 → 배송 서비스 순으로 흐릅니다.
분산 추적은 이 전체 흐름을 하나의 실로 연결해서 추적하는 기능입니다. 택배 배송 추적처럼, 요청이 어느 서비스에서 얼마나 걸렸는지 한눈에 파악할 수 있습니다.
핵심 개념
| 개념 | 설명 | |------|------| | 애플리케이션 맵 (Application Map) | 서비스 간 호출 관계를 시각적 지도로 표시 | | 엔드투엔드 트랜잭션 (End-to-End Transaction) | 하나의 요청이 거친 전체 경로와 각 단계별 시간 표시 | | 상관 관계 ID (Correlation ID) | 서비스 간 요청을 연결하는 고유 식별자 |
애플리케이션 맵에서는 각 서비스 노드와 연결 선이 표시되며, 오류율이 높거나 응답이 느린 구간을 색상으로 강조합니다.
가용성 테스트 (Availability Tests)
가용성 테스트는 앱이 살아있는지 주기적으로 확인하는 "건강 검진"입니다. 전 세계 여러 위치에서 자동으로 앱에 요청을 보내고, 응답이 없거나 느리면 경고를 발생시킵니다.
| 테스트 유형 | 설명 | 언제 사용? | |-----------|------|----------| | URL Ping | URL에 GET 요청, 응답 코드/시간 확인 | 가장 기본적인 헬스체크 | | Standard | SSL 인증서 유효성, HTTP 메서드 선택 가능 | URL Ping보다 세밀한 검사 | | 사용자 지정 TrackAvailability | 코드로 직접 가용성 결과 전송 | 복잡한 로그인 시나리오 등 |
가용성 테스트 결과는 "가용성" 탭에서 확인하며, 실패 시 Action Group을 통해 이메일/SMS 알림을 받을 수 있습니다.
라이브 메트릭 (Live Metrics)
라이브 메트릭은 앱의 실시간 상태를 보여주는 "심전도 모니터"입니다. 새 버전을 배포한 직후, 문제가 생기면 즉시 파악하기 위해 사용합니다.
1초 미만의 지연으로 요청 수, 응답 시간, CPU 사용률을 실시간 표시 배포 직후 이상 여부 즉시 확인 예외 발생 시 라이브 스트림에 실시간 표시
경고 (Alerts)
경고는 앱에 문제가 생겼을 때 자동으로 알림을 보내는 기능입니다. 소방 경보기처럼, 이상 상황이 감지되면 바로 알려줍니다.
경고 구성 요소
| 구성 요소 | 역할 | 예시 | |---------|------|------| | 경고 규칙 (Alert Rule) | 어떤 조건에서 경고를 발생시킬지 정의 | 응답 시간 > 2초 지속 5분 | | 조건 유형 | 메트릭 기반 또는 로그 쿼리 기반 | CPU > 80% / 오류 로그 발생 | | Action Group | 경고 발생 시 취할 행동과 대상 | 이메일, SMS, Webhook, Azure Function |
Action Group은 여러 경고 규칙에서 재사용할 수 있어, 팀 전체에 알림을 보내는 표준 방법을 하나로 관리할 수 있습니다.
시험 핵심 정리
"웹 앱 성능/오류/사용 패턴 모니터링" -- Application Insights (Azure Monitor의 기능)
"코드 없이 App Service에서 Application Insights 활성화" -- 자동 계측 (Auto-instrumentation)
"개발자가 직접 비즈니스 이벤트 기록" -- TelemetryClient.TrackEvent()
"마이크로서비스 요청 흐름을 시각적 지도로 표시" -- 애플리케이션 맵 (Application Map)
"하나의 요청이 거친 전체 서비스 경로 확인" -- 엔드투엔드 트랜잭션
"URL에 주기적으로 GET 요청해서 앱 생존 확인" -- URL Ping 테스트
"복잡한 시나리오(로그인 등) 가용성 테스트" -- TrackAvailability()
"배포 직후 실시간으로 요청/오류 확인" -- 라이브 메트릭 (Live Metrics)
"특정 조건 충족 시 이메일/SMS 발송" -- 경고 규칙 + Action Group
"여러 경고 규칙에서 같은 알림 대상 재사용" -- Action Group