라이브 메트릭: 1초의 대기 시간으로 모니터링 및 진단

Application Insights에서 라이브 메트릭(QuickPulse라고도 함)을 사용하여 실시간 프로덕션 웹 애플리케이션을 모니터링합니다. 메트릭 및 성능 카운터를 선택하고 필터링하여 서비스에 대한 방해 없이 실시간으로 시청할 수 있습니다. 샘플 실패 요청 및 예외에서 스택 추적을 검사할 수도 있습니다. 프로파일러스냅샷 디버거와 함께 라이브 메트릭은 라이브 웹 사이트에 강력하고 비침습적인 진단 도구를 제공합니다.

참고 항목

라이브 메트릭은 TLS 1.2만 지원합니다. 자세한 내용은 문제 해결을 참조하십시오.

라이브 메트릭을 사용하여 다음을 수행할 수 있습니다.

  • 릴리스되는 동안 성능 및 실패 수를 확인하여 수정된 부분의 유효성을 검사합니다.
  • 테스트 로드의 영향을 확인하고 문제를 실시간으로 진단합니다.
  • 확인하려는 메트릭을 선택 및 필터링하여 특정 테스트 세션에 중점을 두거나 알려진 문제를 필터링합니다.
  • 예외 추적이 발생하면 가져옵니다.
  • 필터를 사용하여 가장 관련성이 높은 KPI를 찾아 봅니다.
  • 모든 Windows 성능 카운터를 실시간 모니터링합니다.
  • 문제가 있는 서버를 쉽게 식별하고 해당 서버로의 모든 KPI/라이브 피드만 필터링합니다.

Screenshot that shows the Live Metrics tab.

라이브 메트릭은 현재 ASP.NET, ASP.NET Core, Azure Functions, Java 및 Node.js 앱에 대해 지원됩니다.

참고 항목

라이브 메트릭이 표시하는 모니터링되는 서버 인스턴스 수는 애플리케이션에 할당된 실제 인스턴스 수보다 적을 수 있습니다. 이러한 불일치는 대부분의 최신 웹 서버는 리소스를 절약하기 위해 일정 기간 동안 요청을 받지 않는 애플리케이션을 언로드하기 때문입니다. 라이브 메트릭은 현재 애플리케이션을 실행 중인 서버의 개수만 계산하므로 프로세스를 이미 언로드한 서버는 해당 합계에 포함되지 않습니다.

시작하기

Important

Application Insights를 사용하도록 설정하려면 Azure Portal에서 활성화되고 앱이 최신 버전의 Application Insights NuGet 패키지를 사용하는지 확인합니다. NuGet 패키지가 없으면 일부 원격 분석이 Application Insights로 전송되지만 해당 원격 분석은 라이브 메트릭에 표시되지 않습니다.

  1. 언어별 지침에 따라 라이브 메트릭을 사용하도록 설정합니다.

  2. Azure Portal에서 앱에 대한 Application Insights 리소스를 엽니다. 그런 다음, 라이브 스트림을 엽니다.

  3. 필터에 고객 이름과 같은 중요한 데이터를 사용할 경우 컨트롤 채널을 보호합니다.

참고 항목

2025년 3월 31일에 계측 키 수집에 대한 지원이 종료됩니다. 계측 키 수집은 계속 작동하지만 더 이상 기능에 대한 업데이트 또는 지원을 제공하지 않습니다. 연결 문자열로 전환하여 새로운 기능을 활용합니다.

모든 .NET 애플리케이션에 대해 코드를 사용하여 라이브 메트릭 사용

참고 항목

라이브 메트릭은 .NET 애플리케이션에 권장되는 지침을 사용하여 온보딩할 때 기본적으로 사용하도록 설정됩니다.

수동으로 라이브 메트릭을 구성하려면 다음을 수행합니다.

  1. NuGet 패키지 Microsoft.ApplicationInsights.PerfCounterCollector를 설치합니다.
  2. 다음 샘플 콘솔 앱 코드는 라이브 메트릭을 설정하는 방법을 보여 줍니다.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

// Create a TelemetryConfiguration instance.
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
QuickPulseTelemetryProcessor quickPulseProcessor = null;
config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
    .Use((next) =>
    {
        quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
        return quickPulseProcessor;
    })
    .Build();

var quickPulseModule = new QuickPulseTelemetryModule();

// Secure the control channel.
// This is optional, but recommended.
quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(config);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);

// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to set up Live Metrics.
TelemetryClient client = new TelemetryClient(config);

// This sample runs indefinitely. Replace with actual application logic.
while (true)
{
    // Send dependency and request telemetry.
    // These will be shown in Live Metrics.
    // CPU/Memory Performance counter is also shown
    // automatically without any additional steps.
    client.TrackDependency("My dependency", "target", "http://sample",
        DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
    client.TrackRequest("My Request", DateTimeOffset.Now,
        TimeSpan.FromMilliseconds(230), "200", true);
    Task.Delay(1000).Wait();
}

위의 샘플은 콘솔 앱에 대한 것이지만 모든 .NET 애플리케이션에서 동일한 코드를 사용할 수 있습니다. 원격 분석 모듈을 자동으로 수집하기 위해 다른 원격 분석 모듈을 사용하도록 설정한 경우 해당 모듈을 초기화하는 데 사용되는 것과 동일한 구성이 라이브 메트릭 모듈에도 사용되는지 확인하는 것이 중요합니다.

라이브 메트릭은 메트릭 탐색기 및 Log Analytics와 어떻게 다른가요?

기능 라이브 스트림 메트릭 탐색기 및 Log Analytics
대기 시간 데이터가 1초 내에 표시됩니다. 몇 분에 걸쳐 집계됩니다.
보존 없음 데이터가 차트에 있는 동안 지속된 후 삭제됩니다. 데이터가 90일 동안 유지됩니다.
주문형 라이브 메트릭 창이 열려 있는 동안에만 데이터가 스트리밍됩니다. SDK가 설치되고 사용하도록 설정될 때마다 데이터가 전송됩니다.
Free 라이브 스트림 데이터는 무료입니다. 가격 책정에 따라 다릅니다.
샘플링 선택한 모든 메트릭 및 카운터가 전송되고 오류 및 스택 추적이 샘플링되며 이벤트를 샘플링할 수 있습니다.
컨트롤 채널 필터 제어 신호가 SDK로 전송되며 이 채널을 보호하는 것이 좋습니다. 통신은 포털로, 단방향으로 진행됩니다.

메트릭 선택 및 필터링

이러한 기능은 ASP.NET, ASP.NET Core 및 Azure Functions(v2)에서 사용할 수 있습니다.

포털에서 Application Insights 원격 분석에 임의 필터를 적용하여 사용자 지정 KPI를 라이브로 모니터링할 수 있습니다. 차트 위로 마우스를 가져가면 표시되는 필터 컨트롤을 선택합니다. 다음 차트는 URLDuration 특성에 필터를 적용하여 사용자 지정 요청 수 KPI를 그래프로 나타냅니다. 언제든지 지정한 조건과 일치하는 원격 분석의 라이브 피드를 표시하는 스트림 미리 보기 섹션을 사용하여 필터의 유효성을 검사합니다.

Screenshot that shows the Filter request rate.

Count와 다른 값을 모니터링할 수 있습니다. 옵션은 Application Insights 원격 분석이 될 수 있는 스트림 유형에 따라 달라집니다. 요청, 종속성, 예외, 추적, 이벤트 또는 메트릭 등이 옵션으로 제공됩니다. 이것은 사용자 고유의 사용자 지정 측정일 수도 있습니다.

Screenshot that shows the Query Builder on Request Rate with a custom metric.

Application Insights 원격 분석과 함께 모든 Windows 성능 카운터를 모니터링할 수도 있습니다. 스트림 옵션에서 선택하고 성능 카운터의 이름을 제공합니다.

라이브 메트릭은 각 서버에서 로컬로 집계된 후 모든 서버에서 집계됩니다. 해당 드롭다운 목록에서 다른 옵션을 선택하여 한 옵션의 기본값을 변경할 수 있습니다.

샘플 원격 분석: 사용자 지정 라이브 진단 이벤트

기본적으로 이벤트의 라이브 피드는 실패한 요청 및 종속성 호출, 예외, 이벤트 및 추적의 샘플을 보여 줍니다. 필터 아이콘을 선택하면 특정 시점에 적용된 조건을 확인할 수 있습니다.

Screenshot that shows the Filter button.

메트릭과 마찬가지로, Application Insights 원격 분석 유형 중 하나에 대해 임의 조건을 지정할 수 있습니다. 이 예제에서는 특정 요청 실패 및 이벤트를 선택합니다.

Screenshot that shows the Query Builder.

참고 항목

현재 예외 메시지 기반 조건의 경우 가장 바깥쪽 예외 메시지를 사용하세요. 앞의 예에서 내부 예외 메시지("<--" 구분 기호 뒤)로 양성 예외를 필터링하려면 "클라이언트 연결이 끊겼습니다." "요청 내용 읽기 오류" 기준이 포함되지 않은 메시지를 사용합니다.

라이브 피드의 항목을 선택하여 세부 정보를 확인합니다. 일시 중지를 선택하거나 아래로 스크롤하고 항목을 선택하여 피드를 일시 중지할 수 있습니다. 맨 위로 다시 스크롤하거나 일시 중지된 상태에서 수집된 항목의 카운터를 선택하면 라이브 피드가 계속됩니다.

Screenshot that shows the Sample telemetry window with an exception selected and the exception details displayed at the bottom of the window.

서버 인스턴스별 필터링

특정 서버 역할 인스턴스를 모니터링하려는 경우 서버별로 필터링할 수 있습니다. 필터링하려면 서버에서 서버 이름을 선택합니다.

Screenshot that shows the Sampled live failures.

컨트롤 채널 보호

라이브 메트릭 사용자 지정 필터를 사용하면 Azure Portal에서 라이브 메트릭 보기로 스트리밍되는 애플리케이션의 원격 분석을 제어할 수 있습니다. 필터 조건은 Application Insights SDK로 계측된 앱으로 전송됩니다. 필터 값은 고객 ID와 같은 중요한 정보를 잠재적으로 포함할 수 있습니다. 이 값을 보호하고 권한 없는 애플리케이션에 대한 잠재적 공개를 방지하려면 다음 두 가지 옵션을 사용할 수 있습니다.

  • 권장:Microsoft Entra 인증을 사용하여 라이브 메트릭 채널을 보호합니다.
  • 레거시(더 이상 권장되지 않음): “레거시 옵션” 섹션에 설명된 대로 비밀 API 키를 구성하여 인증된 채널을 설정합니다.

참고 항목

2025년 9월 30일에 라이브 메트릭 원격 분석을 Application Insights로 스트리밍하는 데 사용되는 API 키가 사용 중지됩니다. 해당 날짜 이후에는 API 키를 사용하는 애플리케이션에서 Application Insights 리소스에 라이브 메트릭 데이터를 보낼 수 없습니다. Application Insights로의 라이브 메트릭 스트리밍에 대한 인증된 원격 분석 수집은 Application Insights에 대한 Microsoft Entra 인증을 통해 수행해야 합니다.

인증된 채널을 설정하지 않고도 사용자 지정 필터를 사용해 볼 수 있습니다. 필터 아이콘 중 하나를 선택하고 연결된 서버를 인증합니다. 이 옵션을 선택하면 새 세션마다 1번씩 또는 새 서버가 온라인 상태가 될 때마다 연결된 서버에 권한을 부여해야 합니다.

Warning

보안되지 않은 채널의 사용을 강력히 권장하지 않으며 사용을 시작한 지 6개월 후에 이 옵션을 사용하지 않도록 설정합니다. 연결된 서버 인증 대화 상자에는 이 옵션이 사용하지 않도록 설정되는 날짜가 표시됩니다.

Screenshot that shows the Authorize connected servers dialog.

레거시 옵션: API 키 만들기

  1. API 액세스 탭을 선택한 다음, API 키 만들기를 선택합니다.

    Screenshot that shows selecting the API Access tab and the Create API key button.

  2. SDK 컨트롤 채널 인증 확인란을 선택한 다음, 키 생성을 선택합니다.

    Screenshot that shows the Create API key pane. Select Authenticate SDK control channel checkbox and then select Generate key.

구성에 API 키 추가

ASP.NET, ASP.NET Core, WorkerService 및 Azure Functions 앱에 대한 구성에 API 키를 추가할 수 있습니다.

Program.cs 파일에서 다음 네임스페이스를 추가합니다.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

그런 다음, 다음 서비스 등록을 추가합니다.

// Existing code which includes services.AddApplicationInsightsTelemetry() to enable Application Insights.
builder.Services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

ASP.NET Core 애플리케이션을 구성하는 방법에 대한 자세한 내용은 ASP.NET Core에서 원격 분석 모듈 구성을 참조하세요.

WorkerService

WorkerService 애플리케이션의 경우 다음 지침을 따릅니다.

다음 네임스페이스를 추가합니다.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

다음으로, services.AddApplicationInsightsTelemetryWorkerService 호출 전에 다음 줄을 추가합니다.

    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

WorkerServices 애플리케이션을 구성하는 방법에 대한 자세한 내용은 WorkerServices에서 원격 분석 모듈 구성을 참조하세요.

Azure Functions 앱

Azure Functions 앱(v2)의 경우 환경 변수를 사용하여 API 키로 채널을 보호할 수 있습니다.

Application Insights 리소스 내에서 API 키를 만들고 Azure Functions 앱에 대한 설정>구성으로 이동합니다. 새 애플리케이션 설정을 선택하고 APPINSIGHTS_QUICKPULSEAUTHAPIKEY의 이름 및 API 키에 해당하는 값을 입력합니다.

지원되는 기능 표

언어 기본 메트릭 성능 메트릭 사용자 지정 필터링 샘플 원격 분석 프로세스별 CPU 분할
.NET Framework 지원됨(LTS) 지원됨(LTS) 지원됨(LTS) 지원됨(LTS) 지원됨(LTS)
.NET Core(대상=.NET Framework) 지원됨(LTS) 지원됨(LTS) 지원됨(LTS) 지원됨(LTS) 지원됨(LTS)
.NET Core(대상=.NET Core) 지원됨(LTS) 지원됨* 지원됨(LTS) 지원됨(LTS) 지원되지 않음
Azure Functions v2 지원됨 지원 지원 지원됨 지원되지 않음
Java 지원됨(V2.0.0 이상) 지원됨(V2.0.0 이상) 지원되지 않음 지원됨(V3.2.0+) 지원되지 않음
Node.js 지원됨 (V1.3.0 이상) 지원됨 (V1.3.0 이상) 지원되지 않음 지원됨 (V1.3.0 이상) 지원되지 않음
Python 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음 지원되지 않음

기본 메트릭에는 요청, 종속성 및 예외 비율이 포함됩니다. 성능 메트릭(성능 카운터)에는 메모리 및 CPU가 포함됩니다. 샘플 원격 분석은 실패한 요청 및 종속성, 예외, 이벤트 및 추적에 대한 자세한 정보 스트림을 표시합니다.

PerfCounters 지원은 .NET Framework를 대상으로 하지 않는 .NET Core의 여러 버전에서 약간씩 다릅니다.

  • PerfCounters 메트릭은 Windows용 Azure App Service(ASP.NET Core SDK 버전 2.4.1 이상)에서 실행할 때 지원됩니다.
  • PerfCounter는 .NET Core LTS 이상을 대상으로 하는 앱에 대해 모든 Windows 컴퓨터에서 앱이 실행 중일 때 지원됩니다.
  • PerfCounters는 앱이 최신 버전에서 ‘어떤 위치에서’anywhere(Linux, Windows, Linux용 App Service, 컨테이너 등) 실행되더라도 지원되지만 .NET Core LTS 이상을 대상으로 하는 앱에 대해서만 지원됩니다.

문제 해결

라이브 메트릭은 다른 Application Insights 원격 분석과 다른 IP 주소를 사용합니다. 방화벽에서 해당 포트가 열려 있는지 확인합니다. 라이브 메트릭의 나가는 포트가 서버의 방화벽에서 열려 있는지도 확인합니다.

Azure TLS 1.2 마이그레이션 발표에 설명된 대로 Live Metrics는 이제 TLS 1.2만 지원합니다. 이전 버전의 TLS를 사용하는 경우 라이브 메트릭에 데이터가 표시되지 않습니다. .NET Framework 4.5.1 기반 애플리케이션의 경우 최신 TLS 버전을 지원하려면 클라이언트에서 TLS(전송 계층 보안) 1.2 사용 - Configuration Manager를 참조하세요.

.NET에 대한 구성 누락

  1. 최신 버전의 NuGet 패키지 Microsoft.ApplicationInsights.PerfCounterCollector를 사용하고 있는지 확인합니다.

  2. ApplicationInsights.config 파일을 편집합니다.

    • 연결 문자열이 사용 중인 Application Insights 리소스를 가리키는지 확인합니다.
    • QuickPulseTelemetryModule 구성 옵션을 찾습니다. 나열되지 않으면 추가합니다.
    • QuickPulseTelemetryProcessor 구성 옵션을 찾습니다. 나열되지 않으면 추가합니다.
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. 애플리케이션을 다시 시작합니다.

“데이터에 일시적으로 액세스할 수 없습니다” 상태 메시지

라이브 메트릭으로 이동할 때 상태 “데이터에 일시적으로 액세스할 수 없습니다.” 상태 메시지가 있는 배너가 나타날 수 있습니다. 상태에 대한 업데이트는 https://aka.ms/aistatus에 게시됩니다.

‘Azure 상태’ 페이지에 대한 링크를 따라 Application Insights에 영향을 주는 활성화 중단이 있는지 확인합니다. 중단이 발생하지 않은 경우 방화벽 및 브라우저 확장이 라이브 메트릭에 대한 액세스를 차단하지 않는지 확인합니다. 예를 들어, 일부 인기 있는 광고 차단 확장은 *.monitor.azure.com에 대한 연결을 차단합니다. 라이브 메트릭의 전체 기능을 사용하려면 광고 차단 확장을 사용 안 함으로 설정하거나 *.livediagnostics.monitor.azure.com 도메인에 대한 제외 규칙을 광고 차단, 방화벽 등에 추가합니다.

livediagnostics.monitor.azure.com에 대한 요청 수가 예기치 않게 많습니다.

Application Insights SDK는 REST API를 사용하여 웹 애플리케이션에 대한 라이브 메트릭을 제공하는 QuickPulse 엔드포인트와 통신합니다. SDK는 기본값으로 5초에 한 번씩 엔드포인트를 폴링하여 Azure Portal에서 라이브 메트릭 창을 보고 있는지 검사합니다.

라이브 메트릭 창을 열면 SDK가 더 높은 빈도 모드로 전환되어 새 메트릭을 1초마다 QuickPulse로 보냅니다. 이를 통해 1초 대기 시간으로 라이브 애플리케이션을 모니터링하고 진단할 수 있지만 더 많은 네트워크 트래픽을 생성할 수도 있습니다. 트래픽의 정상적인 흐름을 복원하려면 라이브 메트릭 창에서 벗어납니다.

참고 항목

QuickPulse 엔드포인트에 대한 SDK의 REST API 호출은 Application Insights에서 추적되지 않으며 종속성 호출 또는 기타 메트릭에 영향을 미치지 않습니다. 그러나 다른 네트워크 모니터링 도구에서 볼 수 있습니다.

다음 단계