라이브 메트릭 스트림: 1초 대기 시간으로 모니터링 및 진단Live Metrics Stream: Monitor & Diagnose with 1-second latency

Application Insights의 라이브 메트릭 스트림을 사용하여 프로덕션 웹 애플리케이션에서 실시간 심장 박동을 검사합니다.Probe the beating heart of your live, in-production web application by using Live Metrics Stream from Application Insights. 메트릭과 성능 카운터를 선택 및 필터링하여 서비스에 지장 없이 실시간으로 확인합니다.Select and filter metrics and performance counters to watch in real time, without any disturbance to your service. 실패한 요청 및 예외 샘플에서 스택 추적을 검사합니다.Inspect stack traces from sample failed requests and exceptions. 프로파일러와함께, 스냅 샷 디버거.Together with Profiler, Snapshot debugger. 라이브 메트릭 스트림은 라이브 웹 사이트에 대한 강력하고 비 침습적 진단 도구를 제공합니다.Live Metrics Stream provides a powerful and non-invasive diagnostic tool for your live web site.

라이브 메트릭 스트림을 사용하여 다음을 수행할 수 있습니다.With Live Metrics Stream, you can:

  • 릴리스되는 동안 성능 및 실패 수를 확인하여 수정된 부분의 유효성을 검사합니다.Validate a fix while it is released, by watching performance and failure counts.
  • 테스트 로드의 영향을 확인하고 문제를 실시간으로 진단합니다.Watch the effect of test loads, and diagnose issues live.
  • 확인하려는 메트릭을 선택 및 필터링하여 특정 테스트 세션에 중점을 두거나 알려진 문제를 필터링합니다.Focus on particular test sessions or filter out known issues, by selecting and filtering the metrics you want to watch.
  • 예외 추적이 발생하면 가져옵니다.Get exception traces as they happen.
  • 필터를 사용하여 가장 관련성이 높은 KPI를 찾아 봅니다.Experiment with filters to find the most relevant KPIs.
  • 모든 Windows 성능 카운터를 실시간 모니터링합니다.Monitor any Windows performance counter live.
  • 문제가 있는 서버를 쉽게 식별하고 해당 서버로의 모든 KPI/라이브 피드만 필터링합니다.Easily identify a server that is having issues, and filter all the KPI/live feed to just that server.

라이브 메트릭 스트림 비디오Live Metrics Stream video

라이브 메트릭은 현재 ASP.NET, ASP.NET 코어, Azure 함수, Java 및 Node.js 앱에 대해 지원됩니다.Live Metrics are currently supported for ASP.NET, ASP.NET Core, Azure Functions, Java, and Node.js apps.

시작Get started

  1. 웹앱에 Application Insights를 아직 설치하지 않은 경우 지금 수행합니다.If you haven't yet install Application Insights in your web app, do that now.

  2. 표준 Application Insights 패키지 외에 Microsoft.ApplicationInsights.PerfCounterCollector는 라이브 메트릭 스트림을 활성화하는 데 필요합니다.In addition to the standard Application Insights packages Microsoft.ApplicationInsights.PerfCounterCollector is required to enable Live Metrics stream.

  3. Application Insights 패키지의 최신 버전으로 업데이트합니다.Update to the latest version of the Application Insights package. Visual Studio에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 Nuget 패키지 관리를 선택합니다.In Visual Studio, right-click your project and choose Manage Nuget packages. 업데이트 탭을 열고, 모든 Microsoft.ApplicationInsights.* 패키지를 선택합니다.Open the Updates tab, and select all the Microsoft.ApplicationInsights.* packages.

    응용 프로그램을 다시 배포 합니다.Redeploy your app.

  4. Azure Portal에서 앱에 대한 Application Insights 리소스를 연 다음 라이브 스트림을 엽니다.In the Azure portal, open the Application Insights resource for your app, and then open Live Stream.

  5. 필터에 고객 이름과 같은 중요한 데이터를 사용할 경우 컨트롤 채널을 보호합니다.Secure the control channel if you might use sensitive data such as customer names in your filters.

데이터가 없나요?No data? 서버 방화벽을 확인합니다.Check your server firewall

라이브 메트릭 스트림의 나가는 포트가 서버의 방화벽에서 열려 있는지 확인합니다.Check the outgoing ports for Live Metrics Stream are open in the firewall of your servers.

라이브 메트릭 스트림과 메트릭 탐색기 및 분석과의 차이점How does Live Metrics Stream differ from Metrics Explorer and Analytics?

라이브 스트림Live Stream 메트릭 탐색기 및 분석Metrics Explorer and Analytics
대기 시간Latency 데이터가 1초 내에 표시됨Data displayed within one second 몇 분에 걸쳐 집계됨Aggregated over minutes
보존 없음No retention 데이터가 차트에 있는 동안 지속된 후 삭제됨Data persists while it's on the chart, and is then discarded 데이터가 90일 동안 유지됨Data retained for 90 days
주문형On demand 라이브 메트릭을 여는 동안 데이터가 스트리밍됨Data is streamed while you open Live Metrics SDK가 설치되고 사용될 때마다 데이터가 전송됨Data is sent whenever the SDK is installed and enabled
무료Free 라이브 스트림 데이터 무료There is no charge for Live Stream data 가격 책정에 따라 다름Subject to pricing
샘플링Sampling 선택한 모든 메트릭 및 카운터가 전송되고All selected metrics and counters are transmitted. 오류 및 스택 추적이 샘플링되며Failures and stack traces are sampled. TelemetryProcessors가 적용되지 않음TelemetryProcessors are not applied. 이벤트가 샘플링될 수 있음Events may be sampled
컨트롤 채널Control channel 필터 제어 신호가 SDK로 전송되며Filter control signals are sent to the SDK. 이 채널을 보호하는 것이 좋습니다.We recommend you secure this channel. 통신은 포털에 대한 한 가지 방법입니다.Communication is one way, to the portal

메트릭 선택 및 필터링Select and filter your metrics

(ASP.NET, ASP.NET Core 및 Azure Functions(v2)와 함께 사용할 수 있습니다.)(Available with ASP.NET, ASP.NET Core, and Azure Functions (v2).)

포털에서 Application Insights 원격 분석에 임의 필터를 적용하여 사용자 지정 KPI를 라이브로 모니터링할 수 있습니다.You can monitor custom KPI live by applying arbitrary filters on any Application Insights telemetry from the portal. 차트 위로 마우스를 가져가면 표시되는 필터 컨트롤을 클릭합니다.Click the filter control that shows when you mouse-over any of the charts. 다음 차트는 URL 및 기간 특성에 필터를 적용하여 사용자 지정 요청 수 KPI를 그래프로 나타냅니다.The following chart is plotting a custom Request count KPI with filters on URL and Duration attributes. 언제든지 지정한 조건과 일치하는 원격 분석의 라이브 피드를 표시하는 스트림 미리 보기 섹션을 사용하여 필터의 유효성을 검사합니다.Validate your filters with the Stream Preview section that shows a live feed of telemetry that matches the criteria you have specified at any point in time.

사용자 지정 요청 KPI

Count와 다른 값을 모니터링할 수 있습니다.You can monitor a value different from Count. 옵션은 Application Insights 원격 분석이 될 수 있는 스트림 유형에 따라 달라집니다. 요청, 종속성, 예외, 추적, 이벤트 또는 메트릭 등이 옵션으로 제공됩니다.The options depend on the type of stream, which could be any Application Insights telemetry: requests, dependencies, exceptions, traces, events, or metrics. 이것은 사용자 고유의 사용자 지정 측정일 수 있습니다.It can be your own custom measurement:

값 옵션

Application Insights 원격 분석 외에, 스트림 옵션 중에서 선택하고 성능 카운터의 이름을 제공하여 Windows 성능 카운터도 모니터링할 수도 있습니다.In addition to Application Insights telemetry, you can also monitor any Windows performance counter by selecting that from the stream options, and providing the name of the performance counter.

라이브 메트릭은 각 서버에서 로컬로 집계된 후 모든 서버에서 집계됩니다.Live metrics are aggregated at two points: locally on each server, and then across all servers. 해당 드롭다운 목록에서 다른 옵션을 선택하여 기본값을 변경할 수 있습니다.You can change the default at either by selecting other options in the respective drop-downs.

샘플 원격 분석: 사용자 지정 라이브 진단 이벤트Sample Telemetry: Custom Live Diagnostic Events

기본적으로 이벤트의 라이브 피드는 실패한 요청 및 종속성 호출, 예외, 이벤트 및 추적의 샘플을 보여 줍니다.By default, the live feed of events shows samples of failed requests and dependency calls, exceptions, events, and traces. 필터 아이콘을 클릭하면 특정 시점에 적용된 조건을 확인할 수 있습니다.Click the filter icon to see the applied criteria at any point in time.

기본 라이브 피드

메트릭과 마찬가지로, Application Insights 원격 분석 유형 중 하나에 대해 임의 조건을 지정할 수 있습니다.As with metrics, you can specify any arbitrary criteria to any of the Application Insights telemetry types. 이 예제에서는 특정 요청 실패, 추적 및 이벤트를 선택합니다.In this example, we are selecting specific request failures, traces, and events. 모든 예외 및 종속성 오류도 선택합니다.We are also selecting all exceptions and dependency failures.

사용자 지정 라이브 피드

참고: 현재 예외 메시지 기반 조건의 경우 가장 바깥쪽 예외 메시지를 사용하세요.Note: Currently, for Exception message-based criteria, use the outermost exception message. 앞에 나온 예제에서 안쪽 예외 메시지("<--" 구분 기호 다음에 나옴) "클라이언트 연결이 끊어졌습니다."를 포함하는 심각하지 않은 예외를 필터링하기 위해서는In the preceding example, to filter out the benign exception with inner exception message (follows the "<--" delimiter) "The client disconnected." "요청 콘텐츠를 읽는 동안 오류 발생" 조건을 포함하지 않는 메시지를 사용합니다.use a message not-contains "Error reading request content" criteria.

라이브 피드 항목을 클릭하여 세부 정보를 확인합니다.See the details of an item in the live feed by clicking it. 일시 중지를 클릭하거나, 아래로 스크롤하거나, 항목을 클릭하여 피드를 일시 중지할 수 있습니다.You can pause the feed either by clicking Pause or simply scrolling down, or clicking an item. 맨 위로 다시 스크롤하거나 일시 중지된 상태에서 수집된 항목의 카운터를 클릭하면 라이브 피드가 계속됩니다.Live feed will resume after you scroll back to the top, or by clicking the counter of items collected while it was paused.

샘플링된 라이브 실패

서버 인스턴스별 필터링Filter by server instance

특정 서버 역할 인스턴스를 모니터링하려는 경우 서버별로 필터링할 수 있습니다.If you want to monitor a particular server role instance, you can filter by server.

샘플링된 라이브 실패

컨트롤 채널 보호Secure the control channel

지정한 사용자 지정 필터 조건이 Application Insights SDK의 라이브 메트릭 구성 요소에 다시 전송됩니다.The custom filters criteria you specify are sent back to the Live Metrics component in the Application Insights SDK. 필터는 customerid와 같은 잠재적으로 중요한 정보를 포함할 수 있습니다.The filters could potentially contain sensitive information such as customerIDs. 계측 키 외에도 비밀 API 키를 사용해서 채널 보안을 유지할 수 있습니다.You can make the channel secure with a secret API key in addition to the instrumentation key.

API 키 만들기Create an API Key

API 키 만들기

구성에 API 키 추가Add API key to Configuration

클래식 ASP.NETClassic ASP.NET

applicationinsights.config 파일에서 QuickPulseTelemetryModule에 AuthenticationApiKey를 추가합니다.In the applicationinsights.config file, add the AuthenticationApiKey to the QuickPulseTelemetryModule:


<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector">
      <AuthenticationApiKey>YOUR-API-KEY-HERE</AuthenticationApiKey>
</Add>

또는 코드에서 QuickPulseTelemetryModule에 설정합니다.Or in code, set it on the QuickPulseTelemetryModule:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using Microsoft.ApplicationInsights.Extensibility;

             TelemetryConfiguration configuration = new TelemetryConfiguration();
            configuration.InstrumentationKey = "YOUR-IKEY-HERE";

            QuickPulseTelemetryProcessor processor = null;

            configuration.TelemetryProcessorChainBuilder
                .Use((next) =>
                {
                    processor = new QuickPulseTelemetryProcessor(next);
                    return processor;
                })
                        .Build();

            var QuickPulse = new QuickPulseTelemetryModule()
            {

                AuthenticationApiKey = "YOUR-API-KEY"
            };
            QuickPulse.Initialize(configuration);
            QuickPulse.RegisterTelemetryProcessor(processor);
            foreach (var telemetryProcessor in configuration.TelemetryProcessors)
                {
                if (telemetryProcessor is ITelemetryModule telemetryModule)
                    {
                    telemetryModule.Initialize(configuration);
                    }
                }

Azure 함수 앱Azure Function Apps

Azure Function Apps(v2)의 경우 환경 변수를 통해 API 키로 채널을 고정할 수 있습니다.For Azure Function Apps (v2), securing the channel with an API key can be accomplished with an environment variable.

Application Insights 리소스 내에서 API 키를 만들고 함수 앱에 대한 애플리케이션 설정으로 이동합니다.Create an API key from within your Application Insights resource and go to Application Settings for your Function App. 새 설정 추가를 선택하고 APPINSIGHTS_QUICKPULSEAUTHAPIKEY의 이름 및 API 키에 해당하는 값을 입력합니다.Select add new setting and enter a name of APPINSIGHTS_QUICKPULSEAUTHAPIKEY and a value that corresponds to your API key.

ASP.NET 코어(코어 sDK 2.3.0 이상ASP.NET 애플리케이션 인사이트 필요)ASP.NET Core (Requires Application Insights ASP.NET Core SDK 2.3.0 or greater)

다음과 같이 startup.cs 파일을 수정합니다.Modify your startup.cs file as follows:

먼저 추가First add

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

그런 다음, ConfigureServices 메서드 내에 다음을 추가합니다.Then within the ConfigureServices method add:

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

그러나 연결된 모든 서버를 인식하고 신뢰하는 경우 인증된 채널을 사용하지 않고 사용자 지정 필터를 시도할 수 있습니다.However, if you recognize and trust all the connected servers, you can try the custom filters without the authenticated channel. 이 옵션은 6개월 동안 사용할 수 있습니다.This option is available for six months. 이 재정의는 새 세션마다 한 번씩 또는 새 서버가 온라인 상태가 될 때마다 필요합니다.This override is required once every new session, or when a new server comes online.

라이브 메트릭 인증 옵션

참고

필터 조건에 CustomerID와 같은 잠재적으로 중요한 정보를 입력하기 전에 인증된 채널을 설정하는 것이 좋습니다.We strongly recommend that you set up the authenticated channel before entering potentially sensitive information like CustomerID in the filter criteria.

지원되는 기능 표Supported features table

언어Language 기본 메트릭Basic Metrics 성능 메트릭Performance metrics 사용자 지정 필터링Custom filtering 샘플 원격 분석Sample telemetry 프로세스에 따라 CPU 분할CPU split by process
.NET.NET 지원(V2.7.2+)Supported (V2.7.2+) 지원(V2.7.2+)Supported (V2.7.2+) 지원(V2.7.2+)Supported (V2.7.2+) 지원(V2.7.2+)Supported (V2.7.2+) 지원(V2.7.2+)Supported (V2.7.2+)
.NET 코어(대상=.NET 프레임워크).NET Core (target=.NET Framework) 지원(V2.4.1+)Supported (V2.4.1+) 지원(V2.4.1+)Supported (V2.4.1+) 지원(V2.4.1+)Supported (V2.4.1+) 지원(V2.4.1+)Supported (V2.4.1+) 지원(V2.4.1+)Supported (V2.4.1+)
.NET 코어(대상=.NET 코어).NET Core (target=.NET Core) 지원(V2.4.1+)Supported (V2.4.1+) 지원됨*Supported* 지원(V2.4.1+)Supported (V2.4.1+) 지원(V2.4.1+)Supported (V2.4.1+) 지원되지 않음Not Supported
Azure Functions v2Azure Functions v2 지원됨Supported 지원됨Supported 지원됨Supported 지원됨Supported 지원되지 않음Not Supported
JavaJava 지원(V2.0.0 이상)Supported (V2.0.0+) 지원(V2.0.0 이상)Supported (V2.0.0+) 지원되지 않음Not Supported 지원되지 않음Not Supported 지원되지 않음Not Supported
Node.jsNode.js 지원(V1.3.0+)Supported (V1.3.0+) 지원(V1.3.0+)Supported (V1.3.0+) 지원되지 않음Not Supported 지원(V1.3.0+)Supported (V1.3.0+) 지원되지 않음Not Supported

기본 메트릭에는 요청, 종속성 및 예외 비율이 포함됩니다.Basic metrics include request, dependency, and exception rate. 성능 메트릭(성능 카운터)에는 메모리와 CPU가 포함됩니다.Performance metrics (performance counters) include memory and CPU. 샘플 원격 분석에서는 실패한 요청 및 종속성, 예외, 이벤트 및 추적에 대한 자세한 정보 스트림을 보여 주었습니다.Sample telemetry shows a stream of detailed information for failed requests and dependencies, exceptions, events, and traces.

*PerfCounter 지원은 .NET Framework를 대상으로 하지 않는 .NET Core 버전에 따라 약간 다릅니다.* PerfCounters support varies slightly across versions of .NET Core that do not target the .NET Framework:

  • PerfCounter 메트릭은 Windows용 Azure 앱 서비스에서 실행할 때 지원됩니다.PerfCounters metrics are supported when running in Azure App Service for Windows. (AspNetCore SDK 버전 2.4.1 이상)(AspNetCore SDK Version 2.4.1 or higher)
  • PerfCounter는 앱이 모든 Windows 컴퓨터(VM 또는 클라우드 서비스 또는 온프레미 등)에서 실행중일 때 지원됩니다. (AspNetCore SDK 버전 2.7.1 이상), 하지만 .NET 코어 2.0 이상 을 대상으로 하는 애플 리 케이 션에 대 한.PerfCounters are supported when app is running in ANY Windows machines (VM or Cloud Service or On-prem etc.) (AspNetCore SDK Version 2.7.1 or higher), but for apps targeting .NET Core 2.0 or higher.
  • PerfCounter는 앱이 최신 베타(예:PerfCounters are supported when app is running ANYWHERE (Linux, Windows, app service for Linux, containers, etc.) in the latest beta (i.e AspNetCore SDK 버전 2.8.0-beta1 이상) 하지만 .NET 코어 2.0 이상을 대상으로 하는 앱용.AspNetCore SDK Version 2.8.0-beta1 or higher), but for apps targeting .NET Core 2.0 or higher.

기본적으로 라이브 메트릭은 Node.js SDK에서 비활성화됩니다.By default Live Metrics is disabled in the Node.js SDK. 라이브 메트릭을 사용하려면 setSendLiveMetrics(true) SDK를 초기화할 때 구성 메서드에 추가합니다.To enable Live Metrics, add setSendLiveMetrics(true) to your configuration methods as you initialize the SDK.

문제 해결Troubleshooting

데이터가 없나요?No data? 응용 프로그램이 보호된 네트워크에 있는 경우: Live 메트릭 스트림은 다른 애플리케이션 인사이트 원격 분석과 다른 IP 주소를 사용합니다.If your application is in a protected network: Live Metrics Stream uses different IP addresses than other Application Insights telemetry. 방화벽에서 해당 포트가 열려 있는지 확인합니다.Make sure those IP addresses are open in your firewall.

다음 단계Next steps