0Pricing
Azure Fundamentals · 강의

Application Insights

Application Insights SDK로 웹 애플리케이션을 계측하고, 애플리케이션 맵을 살펴보며, Live Metrics Stream으로 문제를 실시간 진단합니다.

Application Insights은(는) CoddyKit의 무료 Azure Fundamentals 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Azure Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

Application Insights란 무엇인가요?

Application Insights는 실제 웹 애플리케이션에 애플리케이션 성능 모니터링(APM)을 제공하는 Azure Monitor의 기능입니다. 요청, 종속성, 예외, 페이지 조회 및 사용자 지정 이벤트에 대한 원격 분석 데이터를 수집합니다. 인프라 상태를 설명하는 플랫폼 메트릭과 달리 Application Insights는 애플리케이션 코드가 수행하는 작업과 최종 사용자의 경험을 설명합니다. .NET, Node.js, Java, Python 및 브라우저 JavaScript를 지원합니다.

애플리케이션 계측하기

SDK를 설치하거나 자동 계측(코드 없는 연결이라고도 함)을 사용하여 애플리케이션에 Application Insights를 추가할 수 있습니다. App Service에서는 포털에서 Application Insights를 사용하도록 설정하면 코드 변경 없이 에이전트가 자동으로 설치됩니다. 자체 관리 애플리케이션의 경우 SDK 패키지를 추가하고 Application Insights 리소스에서 제공하는 연결 문자열(이전의 계측 키보다 권장됨)을 입력합니다.

# Enable Application Insights on an App Service app
az webapp config appsettings set \
  --name myApp \
  --resource-group myRG \
  --settings APPLICATIONINSIGHTS_CONNECTION_STRING='InstrumentationKey=...' \
             ApplicationInsightsAgent_EXTENSION_VERSION='~3'

애플리케이션 맵

애플리케이션 맵은 애플리케이션 구성 요소와 해당 종속성의 시각적 토폴로지입니다. 각 노드는 구성 요소(앱, 다운스트림 API, 데이터베이스 또는 Azure 서비스)를 나타내며, 가장자리는 평균 응답 시간, 요청 비율, 실패율이 주석으로 표시된 호출 관계를 보여 줍니다. 노드나 가장자리를 클릭하여 개별 요청 추적으로 드릴다운하고 지연 시간이나 오류가 시작된 위치를 식별할 수 있습니다.

실시간 메트릭 스트림

실시간 메트릭 스트림은 애플리케이션 성능을 지연 시간 없이 1초 미만 단위로 확인할 수 있는 실시간 보기를 제공합니다. 실시간 배포나 인시던트 조사를 수행하는 동안 들어오는 요청 비율, 응답 시간, 실패율, CPU 사용량을 발생하는 즉시 확인할 수 있습니다. 실시간 메트릭은 앱에서 Application Insights로 보안 아웃바운드 연결을 사용하므로 인바운드 방화벽 규칙을 변경할 필요가 없습니다.

분산 추적 및 종단 간 트랜잭션

분산 추적은 공유 operation_Id를 사용하여 여러 서비스의 원격 분석 데이터를 상호 연관시킵니다. 사용자 요청이 프런트 엔드 앱에 들어오면 Application Insights는 다운스트림 서비스에 추적 컨텍스트 헤더를 전달합니다. 종단 간 트랜잭션 세부 정보 보기에서는 참여하는 모든 서비스의 모든 구간을 하나의 간트 차트 타임라인으로 구성하여 마이크로서비스 아키텍처에서 시간이 정확히 어디에 소요되는지 보여 줍니다.

사용자 지정 이벤트 및 메트릭

자동으로 수집되는 원격 분석 데이터 외에도 SDK를 사용하여 사용자 지정 이벤트와 사용자 지정 메트릭을 추적할 수 있습니다. trackEvent()를 호출하여 'CheckoutCompleted' 또는 'FeatureFlagEnabled'와 같은 비즈니스 수준의 이벤트를 기록합니다. trackMetric()을 호출하여 큐 깊이나 캐시 적중률과 같은 애플리케이션별 측정값을 기록합니다. 사용자 지정 원격 분석 데이터는 동일한 Log Analytics 테이블에 표시되며 플랫폼 데이터와 함께 KQL로 쿼리할 수 있습니다.

// Node.js SDK example — tracking a custom event
const appInsights = require('applicationinsights');
appInsights.defaultClient.trackEvent({
  name: 'CheckoutCompleted',
  properties: { userId: '42', plan: 'premium' },
  measurements: { orderValue: 99.99 }
});

스마트 감지 및 실패 이상 징후

스마트 감지는 기계 학습을 사용하여 원격 분석 데이터를 자동으로 분석하고 실패율의 갑작스러운 증가, 서버 응답 시간 저하 또는 예외 수의 비정상적인 증가와 같은 비정상 패턴을 알려 줍니다. 수동으로 구성하는 임계값 경고와 달리 스마트 감지 규칙은 애플리케이션의 정상적인 동작에 맞게 조정됩니다. 경고는 구독 소유자에게 전송되며 스마트 감지 블레이드에 표시됩니다.

가용성 테스트

가용성 테스트(웹 테스트라고도 함)는 일정에 따라 전 세계 여러 Azure 지역에서 애플리케이션으로 합성 HTTP 요청을 보냅니다(최대 1분마다 실행). 이를 통해 공용 엔드포인트가 제한 시간 내에 예상 HTTP 상태 코드로 응답하는지 확인합니다. 여러 위치에서 동시에 테스트가 실패하면 경고가 발생합니다. 이를 통해 내부 인프라와 독립적으로 외부에서 내부를 확인하는 모니터링을 수행할 수 있습니다.

# Create a URL ping availability test via CLI
az monitor app-insights web-test create \
  --name 'HomepagePing' \
  --resource-group myRG \
  --app-component myAppInsightsResource \
  --defined-web-test-kind ping \
  --request-url 'https://myapp.azurewebsites.net/' \
  --locations '[{"Id":"us-ca-sjc-azr"},{"Id":"emea-gb-db3-azr"}]' \
  --frequency 300 \
  --timeout 30

데이터 양을 제어하는 샘플링

샘플링은 요청의 일부만 기록하면서 통계적 정확도를 유지하여 Application Insights로 전송되는 원격 분석 데이터의 양을 줄입니다. 적응형 샘플링은 목표 수집률을 유지하도록 샘플링 비율을 자동으로 조정합니다. 고정 비율 샘플링은 고정된 백분율을 적용합니다. 샘플링된 원격 분석 데이터에는 표시가 추가되므로, 메트릭 보기에서 개수와 비율을 표시할 때 샘플링 계수를 자동으로 보정합니다.

사용자 및 세션 분석

Application Insights에는 브라우저 계측 애플리케이션을 위한 기본 제공 사용량 분석 기능이 포함되어 있습니다. 사용자 창에는 고유 사용자 수가 표시되고, 세션은 사용자의 이용 흐름을 추적하며, 퍼널은 여러 단계의 흐름에서 이탈이 발생하는 지점을 시각화하고, 유지율 차트에는 시간에 따라 다시 방문하는 사용자 수가 표시됩니다. 이러한 도구는 운영 모니터링과 함께 전환율과 사용자 참여를 최적화하려는 제품 팀에 특히 유용합니다.

Application Insights 및 Log Analytics 테이블

Application Insights 데이터는 Log Analytics 작업 영역의 전용 테이블에 저장됩니다. 전용 테이블에는 requests, exceptions, dependencies, traces, pageViews, customEvents, customMetrics가 있습니다. Application Insights가 작업 영역 기반 모드(새 리소스의 기본값)로 구성되어 있으면 이러한 테이블을 다른 작업 영역 데이터와 조인할 수 있습니다. 예를 들어 AzureActivity에 기록된 Key Vault 액세스 거부와 애플리케이션 예외를 서로 연관 지을 수 있습니다.

// KQL — find the top 10 slowest dependencies in the last hour
dependencies
| where timestamp > ago(1h)
| where success == false or duration > 2000
| summarize AvgDuration = avg(duration), FailCount = countif(success==false)
    by name, type
| top 10 by AvgDuration desc

빠른 확인

이 단원에서 배운 Microsoft Azure Fundamentals(AZ-900) 개념에 대한 이해도를 확인해 보세요.

단원 요약

이 단원에서는 다음을 배웠습니다. Application Insights는 요청률, 오류 및 종속성에 대해 APM 수준의 원격 분석 데이터를 제공하고, Application Map과 분산 추적은 마이크로서비스 토폴로지를 처음부터 끝까지 시각화하며, 가용성 테스트는 전 세계 여러 위치에서 공용 엔드포인트를 확인합니다. 다음으로는 팀과 운영 가시성을 공유하기 위한 Azure Dashboards와 Workbooks를 살펴보겠습니다.

자주 묻는 질문

“Application Insights” 강의는 무료인가요?

네 — “Application Insights” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Azure Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

“Application Insights”에서 뭘 배우나요?

Application Insights SDK로 웹 애플리케이션을 계측하고, 애플리케이션 맵을 살펴보며, Live Metrics Stream으로 문제를 실시간 진단합니다. 브라우저에서 직접 실행하는 실습 코드로 Azure Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Azure Fundamentals을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Azure Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“Application Insights” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Azure Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Azure Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Azure Monitor 메트릭 및 경고
  2. Log Analytics 및 KQL 기초
  3. Application Insights
  4. Azure 대시보드 및 통합 문서
← Azure Fundamentals(으)로 돌아가기