Azure App Service のアプリの監視Monitor apps in Azure App Service

Azure App Service では、Azure portal 上で Web アプリ、モバイル バック エンド、API アプリに対する組み込みの監視機能が提供されます。Azure App Service provides built-in monitoring functionality for web apps, mobile back ends, and API apps in the Azure portal.

Azure portal 上で、アプリのクォータメトリックの確認、App Service プランの確認、メトリックに基づくアラートスケーリングの自動的な設定を行うことができます。In the Azure portal, you can review quotas and metrics for an app, review the App Service plan, and automatically set up alerts and scaling that are based on the 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 の Free および Shared (プレビュー) ホスティング プランは、他の 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.

アプリが Free プランまたは Shared プランでホストされている場合、アプリで使用できるリソースの制限はクォータによって定義されます。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.

アプリが Basic プラン、Standard プラン、Premium プランでホストされている場合、アプリで使用できるリソースの制限は、App Service プランのサイズ (S、M、L) とインスタンス数 (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.

Free アプリまたは Shared アプリのクォータは、次のようになります。Quotas for Free or Shared apps are:

QuotaQuota 説明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 (1 日)CPU (Day) このアプリが 1 日に使用できる CPU の総量。The total amount of CPU allowed for this app in a day. このクォータは、24 時間ごとに (UTC の午前 0 時に) リセットされます。This quota resets every 24 hours at midnight UTC.
メモリMemory このアプリが使用できるメモリの総量。The total amount of memory allowed for this app.
帯域幅Bandwidth このアプリが 1 日に使用できる送信帯域幅の総量。The total amount of outgoing bandwidth allowed for this app in a day. このクォータは、24 時間ごとに (UTC の午前 0 時に) リセットされます。This quota resets every 24 hours at midnight UTC.
ファイルシステムFilesystem 使用可能なストレージの総量。The total amount of storage allowed.

Basic プラン、Standard プラン、Premium プランでホストされているアプリに適用できるクォータは、ファイルシステムのみです。The only quota applicable to apps that are hosted in Basic, Standard, and Premium plans 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 (1 日)帯域幅のクォータを超過すると、クォータがリセットされるまでアプリは停止されます。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 restarted.

ファイルシステム クォータを超えた場合は、すべての書き込み操作が失敗します。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

メトリックを利用すると、アプリまたは App Service プランの動作に関する情報が得られます。Metrics provide information about the app or the App Service plan's behavior.

アプリについて利用できるメトリックには、次のものがあります。For an app, the available metrics are:

メトリックMetric 説明Description
平均応答時間Average Response Time アプリが要求に応答するのに要した平均時間 (ミリ秒)。The average time taken for the app to serve requests, in milliseconds.
平均メモリ ワーキング セット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 このアプリケーション内のすべての AppDomain で読み込まれたアセンブリの現在の数。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.
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 200 以上 300 未満の HTTP 状態コードが結果として返された要求の数。The count of requests resulting in an HTTP status code ≥ 200 but < 300.
HTTP 3xxHttp 3xx 300 以上 400 未満の HTTP 状態コードが結果として返された要求の数。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 400 以上 500 未満の HTTP 状態コードが結果として返された要求の数。The count of requests resulting in an HTTP status code ≥ 400 but < 500.
HTTP サーバー エラーHttp Server Errors 500 以上 600 未満の HTTP 状態コードが結果として返された要求の数。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 do not 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 are neither read nor 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 is the current size, in bytes, of memory that the app process has allocated that cannot 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 現在このアプリケーションに読み込まれている AppDomain の数。The current number of AppDomains loaded in this application.
アンロード済みのアプリ ドメイン合計数Total App Domains Unloaded アプリケーションの開始以降にアンロードされた AppDomain の合計数。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 プランのメトリックは、BasicStandard および Premium レベルのプランでのみ利用できます。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 due to 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 キューが長いこと、または 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 の使用状況を反映するメトリックには、次の 2 つがあります。There are two metrics that reflect CPU usage:

CPU 時間:Free プランまたは Shared プランでホストされているアプリで役に立ちます。これらのプランのクォータの 1 つが、アプリによって使用される 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, with the following granularities and retention policies:

  • 粒度がのメトリックは 30 時間保持されます。Minute granularity metrics are retained for 30 hours.
  • 粒度が時間のメトリックは 30 日間保持されます。Hour granularity metrics are retained for 30 days.
  • 粒度がのメトリックは 30 日間保持されます。Day granularity metrics are retained for 30 days.

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 page. グラフをカスタマイズするには:To customize the chart:

  1. グラフを選択します。Select the chart.
  2. [グラフの編集] を選択します。Select Edit chart.
  3. [時間範囲] を編集します。Edit the Time Range.
  4. [グラフの種類] を編集します。Edit the Chart type.
  5. 表示するメトリックを編集します。Edit the metrics you want to display.

メトリックについて詳しくは、「サービス メトリックの監視」をご覧ください。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.

Basic、Standard、Premium の App Service プランでホストされている App Service アプリでは、自動スケーリングがサポートされています。App Service apps hosted in Basic, Standard, or Premium 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.