Azure App Service에서 앱 모니터링Monitor apps in Azure App Service

Azure App ServiceAzure Portal에서 웹 앱, 모바일 및 API 앱에 대 한 기본 제공 모니터링 기능을 제공 합니다.Azure App Service provides built-in monitoring functionality for web apps, mobile, and API apps in the Azure portal.

Azure Portal에서 앱에 대 한 할당량메트릭 을 검토 하 고, 계획을 App Service 하 고, 경고설정 하 고 규칙 기반 메트릭을 자동 크기 조정 할 수 있습니다.In the Azure portal, you can review quotas and metrics for an app and App Service plan, and set up alerts and autoscaling rules based metrics.

할당량 이해Understand quotas

App Service를 호스트로 사용하는 앱에는 사용 가능한 리소스에 대한 특정 한도가 적용됩니다.Apps that are hosted in App Service are subject to certain limits on the resources they can use. 이러한 한도는 해당 앱과 연결된 App Service 계획으로 정의됩니다.The limits are defined by the App Service plan that's associated with the app.

참고

App Service 체험 및 공유(미리 보기) 호스팅 플랜은 다른 App Service 앱과 동일한 Azure 가상 머신에서 실행되는 기본 계층입니다.App Service Free and Shared (preview) hosting plans are base tiers that run on the same Azure virtual machines as other App Service apps. 일부 앱은 다른 고객에게 속할 수 있습니다.Some apps might belong to other customers. 이러한 계층은 개발 및 테스트 목적으로만 사용할 수 있습니다.These tiers are intended to be used only for development and testing purposes.

앱이 무료 또는 공유 계획에 호스트되는 경우 앱에서 사용할 수 있는 리소스에 대한 한도는 할당량으로 정의됩니다.If the app is hosted in a Free or Shared plan, the limits on the resources that the app can use are defined by quotas.

앱이 기본, 표준 또는 프리미엄 계획에 호스팅되는 경우 사용할 수 있는 리소스에 대한 한도는 크기(작음, 중간, 큼) 및 App Service 계획의 인스턴스 수(1, 2, 3 등)로 설정됩니다.If the app is hosted in a Basic, Standard, or Premium plan, the limits on the resources that they can use are set by the size (Small, Medium, Large) and instance count (1, 2, 3, and so on) of the App Service plan.

무료 또는 공유 앱의 할당량은 다음과 같습니다.Quotas for Free or Shared apps are:

할당량Quota 설명Description
CPU(짧음)CPU (Short) 5분 간격으로 이 앱에 허용되는 CPU의 양입니다.The amount of CPU allowed for this app in a 5-minute interval. 이 할당량은 5분마다 재설정됩니다.This quota resets every five minutes.
CPU(일)CPU (Day) 하루에 이 앱에 허용되는 총 CPU 양입니다.The total amount of CPU allowed for this app in a day. 이 할당량은 자정 UTC에 24시간마다 재설정됩니다.This quota resets every 24 hours at midnight UTC.
메모리Memory 이 앱에 허용되는 총 메모리 양입니다.The total amount of memory allowed for this app.
대역폭Bandwidth 하루에 이 앱에 허용되는 나가는 총 대역폭 양입니다.The total amount of outgoing bandwidth allowed for this app in a day. 이 할당량은 자정 UTC에 24시간마다 재설정됩니다.This quota resets every 24 hours at midnight UTC.
있어Filesystem 허용되는 총 스토리지 양입니다.The total amount of storage allowed.

Basic, StandardPremium 에서 호스트 되는 앱에 적용 가능한 유일한 할당량은 파일 시스템입니다.The only quota applicable to apps that are hosted in Basic, Standard, and Premium is Filesystem.

다양한 App Service SKU에 사용할 수 있는 특정 할당량, 한도 및 기능에 대한 자세한 내용은 Azure 구독 서비스 제한을 참조하세요.For more information about the specific quotas, limits, and features available to the various App Service SKUs, see Azure Subscription service limits.

할당량 적용Quota enforcement

앱이 CPU(짧음), CPU(일), 대역폭 할당량을 초과하는 경우 할당량이 재설정될 때까지 앱이 중지됩니다.If an app exceeds the CPU (short), CPU (Day), or bandwidth quota, the app is stopped until the quota resets. 이 시간 중에는 들어오는 모든 요청에서 HTTP 403 오류가 발생합니다.During this time, all incoming requests result in an HTTP 403 error.

403 오류 메시지

앱 메모리 할당량을 초과 하면 앱이 일시적으로 중지 됩니다.If the app Memory quota is exceeded, the app is stopped temporarily.

파일 시스템 할당량을 초과하는 경우 모든 쓰기 작업이 실패합니다.If the Filesystem quota is exceeded, any write operation fails. 쓰기 작업 실패에는 로그에 대한 쓰기가 포함됩니다.Write operation failures include any writes to logs.

App Service 계획을 업그레이드하여 앱에서 할당량을 늘리거나 제거할 수 있습니다.You can increase or remove quotas from your app by upgrading your App Service plan.

메트릭 이해Understand metrics

참고

파일 시스템 사용량 은 전역적으로 롤아웃 되는 새 메트릭입니다. 비공개 미리 보기에 대 한 액세스 권한이 부여 되지 않은 경우에는 데이터가 필요 하지 않습니다.File System Usage is a new metric being rolled out globally, no data is expected unless you've been granted access for private preview.

중요

메트릭 집계와의 혼동을 피하기 위해 평균 응답 시간은 사용 되지 않습니다.Average Response Time will be deprecated to avoid confusion with metric aggregations. 응답 시간 을 대체 항목으로 사용 합니다.Use Response Time as a replacement.

참고

앱에 대 한 메트릭에는 앱의 SCM 사이트에 대 한 요청 (Kudu)이 포함 됩니다.Metrics for an app include the requests to the app's SCM site(Kudu). 여기에는 Kudu을 사용 하 여 사이트의 logstream을 볼 수 있는 요청이 포함 됩니다.This includes requests to view the site's logstream using Kudu. Logstream 요청은 몇 분에 걸쳐 있을 수 있으며이는 요청 시간 메트릭에 영향을 줍니다.Logstream requests may span several minutes, which will affect the Request Time metrics. 자동 크기 조정 논리에서 이러한 메트릭을 사용 하는 경우 사용자는이 관계를 알고 있어야 합니다.Users should be aware of this relationship when using these metrics with autoscale logic.

메트릭은 앱 또는 App Service 계획의 동작에 대한 정보를 제공합니다.Metrics provide information about the app or the App Service plan's behavior.

앱에 사용 가능한 메트릭은 다음과 같습니다.For an app, the available metrics are:

메트릭Metric 설명Description
응답 시간Response Time 앱에서 요청을 처리 하는 데 걸린 시간 (초)입니다.The time taken for the app to serve requests, in seconds.
평균 응답 시간 (사용 되지 않음)Average Response Time (deprecated) 앱에서 요청을 처리 하는 데 걸린 평균 시간 (초)입니다.The average time taken for the app to serve requests, in seconds.
평균 메모리 작업 집합Average memory working set 앱에 사용된 메가바이트(MiB) 크기의 평균 메모리 양입니다.The average amount of memory used by the app, in megabytes (MiB).
연결Connections 샌드박스(w3wp.exe 및 해당 자식 프로세스)에 있는 바인딩된 소켓의 수입니다.The number of bound sockets existing in the sandbox (w3wp.exe and its child processes). 바인딩된 소켓은 bind()/connect() API를 호출하여 만들어지며, 해당 소켓이 CloseHandle()/closesocket()으로 닫힐 때까지 유지됩니다.A bound socket is created by calling bind()/connect() APIs and remains until said socket is closed with CloseHandle()/closesocket().
CPU 시간CPU Time 앱에서 사용한 CPU의 양(초)입니다.The amount of CPU consumed by the app, in seconds. 이 메트릭에 대 한 자세한 내용은 cpu 시간 및 cpu 비율을 참조 하세요.For more information about this metric, see CPU time vs CPU percentage.
현재 어셈블리Current Assemblies 이 애플리케이션의 모든 AppDomains에 로드된 어셈블리의 현재 개수입니다.The current number of Assemblies loaded across all AppDomains in this application.
데이터의Data In 앱에서 사용한 들어오는 대역폭 양(MiB)입니다.The amount of incoming bandwidth consumed by the app, in MiB.
데이터 출력Data Out 앱에서 사용한 나가는 대역폭 양(MiB)입니다.The amount of outgoing bandwidth consumed by the app, in MiB.
파일 시스템 사용량File System Usage 앱에서 사용 하는 파일 시스템 할당량의 백분율입니다.Percentage of filesystem quota consumed by the app.
Gen 0 가비지 수집Gen 0 Garbage Collections 앱 프로세스가 시작된 이후 0세대 개체가 가비지 수집된 횟수입니다.The number of times the generation 0 objects are garbage collected since the start of the app process. 상위 세대 GC에는 모든 하위 세대 GC가 포함됩니다.Higher generation GCs include all lower generation GCs.
Gen 1 가비지 수집Gen 1 Garbage Collections 앱 프로세스가 시작된 이후 1세대 개체가 가비지 수집된 횟수입니다.The number of times the generation 1 objects are garbage collected since the start of the app process. 상위 세대 GC에는 모든 하위 세대 GC가 포함됩니다.Higher generation GCs include all lower generation GCs.
Gen 2 가비지 수집Gen 2 Garbage Collections 앱 프로세스가 시작된 이후 2세대 개체가 가비지 수집된 횟수입니다.The number of times the generation 2 objects are garbage collected since the start of the app process.
핸들 개수Handle Count 앱 프로세스에서 현재 열려 있는 총 핸들 수입니다.The total number of handles currently open by the app process.
Http 2xxHttp 2xx 결과로 나타나는 HTTP 상태 코드가 200 이상, 300 미만인 요청 수입니다.The count of requests resulting in an HTTP status code ≥ 200 but < 300.
Http 3xxHttp 3xx 결과로 나타나는 HTTP 상태 코드가 300 이상, 400 미만인 요청 수입니다.The count of requests resulting in an HTTP status code ≥ 300 but < 400.
Http 401Http 401 결과로 HTTP 401 상태 코드가 나타나는 요청의 수입니다.The count of requests resulting in HTTP 401 status code.
Http 403Http 403 결과로 HTTP 403 상태 코드가 나타나는 요청의 수입니다.The count of requests resulting in HTTP 403 status code.
Http 404Http 404 결과로 HTTP 404 상태 코드가 나타나는 요청의 수입니다.The count of requests resulting in HTTP 404 status code.
Http 406Http 406 결과로 HTTP 406 상태 코드가 나타나는 요청의 수입니다.The count of requests resulting in HTTP 406 status code.
Http 4xxHttp 4xx 결과로 나타나는 HTTP 상태 코드가 400 이상, 500 미만인 요청 수입니다.The count of requests resulting in an HTTP status code ≥ 400 but < 500.
Http 서버 오류Http Server Errors 결과로 나타나는 HTTP 상태 코드가 500 이상, 600 미만인 요청 수입니다.The count of requests resulting in an HTTP status code ≥ 500 but < 600.
초당 IO 기타 바이트 수IO Other Bytes Per Second 응용 프로그램 프로세스가 데이터를 포함 하지 않는 i/o 작업 (예: 제어 작업)에 바이트를 발급 하는 속도입니다.The rate at which the app process is issuing bytes to I/O operations that don't involve data, such as control operations.
초당 IO 기타 작업 수IO Other Operations Per Second 앱 프로세스가 읽기 또는 쓰기 작업이 아닌 i/o 작업을 실행 하는 속도입니다.The rate at which the app process is issuing I/O operations that aren't read or write operations.
초당 IO 읽기 바이트 수IO Read Bytes Per Second 앱 프로세스에서 I/O 작업의 바이트를 읽는 속도입니다.The rate at which the app process is reading bytes from I/O operations.
초당 IO 읽기 작업 수IO Read Operations Per Second 앱 프로세스에서 읽기 I/O 작업을 실행하는 속도입니다.The rate at which the app process is issuing read I/O operations.
초당 IO 쓰기 바이트 수IO Write Bytes Per Second 앱 프로세스에서 I/O 작업에 바이트를 쓰는 속도입니다.The rate at which the app process is writing bytes to I/O operations.
초당 IO 쓰기 작업 수IO Write Operations Per Second 앱 프로세스에서 쓰기 I/O 작업을 실행하는 속도입니다.The rate at which the app process is issuing write I/O operations.
메모리 작업 집합Memory working set 현재 앱에 사용된 메모리 양(MiB)입니다.The current amount of memory used by the app, in MiB.
전용 바이트Private Bytes Private Bytes는 앱 프로세스가 할당 하 여 다른 프로세스와 공유할 수 없는 메모리의 현재 크기 (바이트)입니다.Private Bytes is the current size, in bytes, of memory that the app process has allocated that can't be shared with other processes.
요청Requests 결과 HTTP 상태 코드에 관계 없이 총 요청 수입니다.The total number of requests regardless of their resulting HTTP status code.
애플리케이션 큐의 요청 수Requests In Application Queue 애플리케이션 요청 큐의 요청 수입니다.The number of requests in the application request queue.
스레드 수Thread Count 앱 프로세스에서 현재 활성 상태인 스레드의 수입니다.The number of threads currently active in the app process.
총 앱 도메인Total App Domains 이 애플리케이션에 로드된 AppDomains의 현재 수입니다.The current number of AppDomains loaded in this application.
언로드된 총 앱 도메인Total App Domains Unloaded 애플리케이션이 시작된 이후 언로드된 총 AppDomains 수입니다.The total number of AppDomains unloaded since the start of the application.

App Service 계획에 대해 사용 가능한 메트릭은 다음과 같습니다.For an App Service plan, the available metrics are:

참고

App Service 계획 메트릭은 기본, 표준프리미엄 계층의 계획에만 사용할 수 있습니다.App Service plan metrics are available only for plans in Basic, Standard, and Premium tiers.

메트릭Metric 설명Description
CPU 비율CPU Percentage 계획의 모든 인스턴스 간에 사용된 평균 CPU입니다.The average CPU used across all instances of the plan.
메모리 비율Memory Percentage 계획의 모든 인스턴스 간에 사용된 평균 메모리입니다.The average memory used across all instances of the plan.
데이터의Data In 계획의 모든 인스턴스 간에 사용된 평균 들어오는 대역폭입니다.The average incoming bandwidth used across all instances of the plan.
데이터 출력Data Out 계획의 모든 인스턴스 간에 사용된 평균 나가는 대역폭입니다.The average outgoing bandwidth used across all instances of the plan.
디스크 큐 길이Disk Queue Length 스토리지에 대기 중인 평균 읽기 및 쓰기 요청 수입니다.The average number of both read and write requests that were queued on storage. 디스크 큐 길이가 높으면 과도 한 디스크 i/o로 인해 속도가 저하 될 수 있는 앱을 나타냅니다.A high disk queue length is an indication of an app that might be slowing down because of excessive disk I/O.
Http 큐 길이Http Queue Length 처리하기 전에 큐에 배치해야 하는 평균 HTTP 요청 수입니다.The average number of HTTP requests that had to sit on the queue before being fulfilled. HTTP 큐 길이 값이 높거나 증가하면 계획이 과부하 상태에 있음을 나타냅니다.A high or increasing HTTP Queue length is a symptom of a plan under heavy load.

CPU 시간 및 CPU 비율CPU time vs CPU percentage

CPU 사용량을 반영하는 두 가지 메트릭이 있습니다.There are two metrics that reflect CPU usage:

Cpu 시간: 할당량 중 하나가 앱에서 사용 되는 CPU 시간 (분)으로 정의 되므로 무료 또는 공유 계획에서 호스트 되는 앱에 유용 합니다.CPU Time: Useful for apps hosted in Free or Shared plans, because one of their quotas is defined in CPU minutes used by the app.

CPU 백분율: 규모를 확장할 수 있으므로 Basic, Standard 및 Premium 요금제에서 호스트 되는 앱에 유용 합니다. CPU 백분율은 모든 인스턴스의 전체 사용량을 표시 하는 데 적합 합니다.CPU percentage: Useful for apps hosted in Basic, Standard, and Premium plans, because they can be scaled out. CPU percentage is a good indication of the overall usage across all instances.

메트릭 세분성 및 보존 정책Metrics granularity and retention policy

앱 및 app service 계획에 대 한 메트릭은 서비스에 의해 기록 및 집계 되며 이러한 규칙에 따라 유지됩니다.Metrics for an app and app service plan are logged and aggregated by the service and retained according to these rules.

Azure Portal에서 할당량 및 메트릭을 모니터링합니다.Monitoring quotas and metrics in the Azure portal

앱에 영향을 주는 다양한 할당량 및 메트릭 상태를 검토하려면 Azure Portal로 이동합니다.To review the status of the various quotas and metrics that affect an app, go to the Azure portal.

Azure Portal의 할당량 차트

할당량을 찾으려면 설정 > 할당량을 선택 합니다.To find quotas, select Settings > Quotas. 차트에서 다음을 검토할 수 있습니다.On the chart, you can review:

  1. 할당량 이름The quota name.
  2. 재설정 간격Its reset interval.
  3. 현재 한도Its current limit.
  4. 현재 값Its current value.

메트릭 차트 Azure Portal 리소스 개요 페이지에서 직접 메트릭에 액세스할 수 있습니다.Metric chart in the Azure portal You can access metrics directly from the resource Overview page. 여기에서 일부 앱 메트릭을 나타내는 차트가 표시 됩니다.Here you'll see charts representing some of the apps metrics.

이러한 차트 중 하나를 클릭 하면 사용자 지정 차트를 만들고 다양 한 메트릭을 쿼리할 수 있는 메트릭 뷰로 이동 합니다.Clicking on any of those charts will take you to the metrics view where you can create custom charts, query different metrics and much more.

메트릭에 대한 자세한 내용은 서비스 메트릭 모니터링을 참조하세요.To learn more about metrics, see Monitor service metrics.

경고 및 자동 크기 조정Alerts and autoscale

앱 또는 App Service 계획의 메트릭은 경고에 연결할 수 있습니다.Metrics for an app or an App Service plan can be hooked up to alerts. 자세한 내용은 경고 알림 받기를 참조 하세요.For more information, see Receive alert notifications.

기본 이상 App Service 계획에서 호스트 되는 App Service 앱은 자동 크기 조정을 지원 합니다.App Service apps hosted in Basic or higher App Service plans support autoscale. 자동 크기 조정을 사용하여 App Service 계획 메트릭을 모니터링하는 규칙을 구성할 수 있습니다.With autoscale, you can configure rules that monitor the App Service plan metrics. 규칙은 필요에 따라 추가 리소스를 제공할 수 있도록 인스턴스 수를 눌리거나 줄일 수 있습니다.Rules can increase or decrease the instance count, which can provide additional resources as needed. 규칙을 사용하면 앱이 과도하게 프로비전될 때 비용을 절감할 수도 있습니다.Rules can also help you save money when the app is over-provisioned.

자동 크기 조정에 대한 자세한 내용은 크기 조정 방법Azure Monitor 자동 크기 조정에 대한 모범 사례를 참조하세요.For more information about autoscale, see How to scale and Best practices for Azure Monitor autoscaling.