

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# インスタンスメトリクス
<a name="health-enhanced-metrics"></a>

インスタンスメトリクスは、環境にあるインスタンスの健全性に関する情報を提供します。[Elastic Beanstalk ヘルスエージェント](health-enhanced.md#health-enhanced-agent)は、各インスタンスで実行されます。ヘルスエージェントはインスタンスに関するメトリクスを収集し、中継された Elastic Beanstalk はそのメトリクスを分析して環境内のインスタンスの状態を特定します。

オンインスタンス Elastic Beanstalk ヘルスエージェントは、ウェブサーバーログとオペレーティングシステムからインスタンスに関するメトリクスを収集します。Linux ベースのプラットフォームでウェブサーバー情報を取得するために、Elastic Beanstalk はウェブサーバーのログを読み取り、解析します。Windows Server プラットフォームでは、Elastic Beanstalk はこの情報を IIS ウェブサーバーから直接受け取ります。ウェブサーバーは、着信 HTTP リクエストに関する情報 (届いたリクエストの数、エラーとなった数、解決までの時間) を提供します。オペレーティング システムはインスタンスのリソース状態についてのスナップショット情報を提供します。プロセスタイプごとの CPU 負荷および配信経過時間。

ヘルスエージェントはウェブサーバーとオペレーティングシステムのメトリクスを収集し、10 秒ごとに Elastic Beanstalk に中継します。Elastic Beanstalk は中継されたデータを分析し、その結果を使用して、各インスタンスと環境のヘルスステータスを更新します。

**Topics**
+ [ウェブサーバーのメトリクス](#health-enhanced-metrics-server)
+ [オペレーティングシステムのメトリクス](#health-enhanced-metrics-os)
+ [Windows サーバー上の IIS でのウェブサーバーメトリクスキャプチャ](health-enhanced-metrics-server-iis.md)

## ウェブサーバーのメトリクス
<a name="health-enhanced-metrics-server"></a>

Linux ベースのプラットフォームで、Elastic Beanstalk ヘルスエージェントは、ウェブコンテナまたは環境内の各インスタンスでリクエストを処理するサーバーによって生成されたログからウェブサーバーメトリクスを読み取ります。Elastic Beanstalk プラットフォームは、人間が読み取れる形式と機械による読み取りが可能な形式の 2 つのログを生成するように設定されています。機械による読み取りが可能なログは、ヘルスエージェントによって 10 秒ごとに Elastic Beanstalk に中継されます。

Elastic Beanstalk で使用されるログ形式の詳細については、「[拡張ヘルスログ形式](health-enhanced-serverlogs.md)」を参照してください。

Windows Server プラットフォームでは、Elastic Beanstalk は IIS ウェブサーバーのリクエストパイプラインにモジュールを追加し、HTTP リクエスト時間と応答コードに関するメトリクスを取得します。モジュールは、高性能のプロセス間通信 (IPC) チャネルを使用して、これらのメトリクスをインスタンス上のヘルスエージェントに送信します。実装の詳細については、「[Windows サーバー上の IIS でのウェブサーバーメトリクスキャプチャ](health-enhanced-metrics-server-iis.md)」を参照してください。報告されたウェブサーバーのメトリクス

`RequestCount`  
直前の 10 秒間にウェブサーバーによって処理されたリクエストの 1 秒あたりの数。EB CLI と [環境の状態ページ](health-enhanced-console.md#health-enhanced-console-healthpage) に表示される平均 `r/sec` (1 秒ごとのリクエスト) として表示されます。

`Status2xx``Status3xx``Status4xx``Status5xx`  
直前の 10 秒間に各タイプのステータスコードが返されたリクエストの数。たとえば、正常なリクエストには 200 OK、リダイレクトには 301 が返され、アプリケーション内のどのリソースとも一致しない URL が入力された場合は 404 が返されます。  
EB CLI と [環境の状態ページ](health-enhanced-console.md#health-enhanced-console-healthpage) は、インスタンスへのリクエスト未処理数、そして環境内の総体的なリクエストのパーセンテージとしてこれらのメトリクスを示します。

`p99.9``p99``p95``p90``p85``p75``p50``p10`  
最近 10 秒間で最も遅かったリクエストの *x* パーセントの平均レイテンシー。*x* はこの数値と 100 との差異です。たとえば、`p99 1.403` は、直前の 10 秒間に応答が返るのが最も遅かったリクエストの 1% の平均レイテンシーが 1.403 秒であったことを示します。

## オペレーティングシステムのメトリクス
<a name="health-enhanced-metrics-os"></a>

Elastic Beanstalk ヘルスエージェントは、以下のオペレーティングシステムメトリクスを報告します。Elastic Beanstalk は、これらのメトリクスを使用して、継続的に重い負荷がかかっているインスタンスを識別します。メトリクスはオペレーティングシステムによって異なります。報告されているオペレーティングシステム (Linux)

`Running`  
インスタンスが起動してから経過した時間。

`Load 1``Load 5`  
直前の 1 分間と 5 分間の平均負荷。この期間に実行されていたプロセスの平均数を小数値で示します。表示された数が使用可能な vCPU（スレッド）の数よりも多い場合、余りは待機中だったプロセスの平均数です。  
たとえば、インスタンスタイプが 4 vCPU であり、負荷が 4.5 である場合、その期間において、平均で .5 のプロセスが待機していたことになり、その期間の 50% にわたって 1 つのプロセスが待機していたことを意味します。

`User %``Nice %``System %``Idle %``I/O Wait %`  
過去 10 秒間に CPU が各状態で費やした時間のパーセンテージ。報告されているオペレーティングシステム (Windows)

`Running`  
インスタンスが起動してから経過した時間。

`% User Time``% Privileged Time``% Idle Time`  
過去 10 秒間に CPU が各状態で費やした時間のパーセンテージ。

# Windows サーバー上の IIS でのウェブサーバーメトリクスキャプチャ
<a name="health-enhanced-metrics-server-iis"></a>

Windows Server プラットフォームでは、Elastic Beanstalk は IIS ウェブサーバーのリクエストパイプラインにモジュールを追加し、HTTP リクエスト時間と応答コードに関するメトリクスを取得します。モジュールは、高性能のプロセス間通信 (IPC) チャネルを使用して、これらのメトリクスをインスタンス上のヘルスエージェントに送信します。ヘルスエージェントは、これらのメトリクスを集計し、オペレーティングシステムメトリクスと組み合わせて、Elastic Beanstalk サービスに送信します。

## 実装の詳細
<a name="health-enhanced-metrics-server-iis.impl"></a>

IIS からメトリクスを取得するために、Elastic Beanstalk はマネージド型 [https://msdn.microsoft.com/en-us/library/system.web.ihttpmodule%28v=vs.110%29.aspx](https://msdn.microsoft.com/en-us/library/system.web.ihttpmodule%28v=vs.110%29.aspx) を実装して、[https://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest(v=vs.110).aspx](https://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest(v=vs.110).aspx) および [https://msdn.microsoft.com/en-us/library/system.web.httpapplication.endrequest(v=vs.110).aspx](https://msdn.microsoft.com/en-us/library/system.web.httpapplication.endrequest(v=vs.110).aspx) イベントをサブスクライブします。これにより、モジュールのレイテンシーと応答コード HTTP リクエストを報告するウェブリクエストはすべて IIS によって処理されます。モジュールを IIS のリクエストパイプラインに追加するために、Elastic Beanstalk は IIS の設定ファイル、`%windir%\System32\inetsrv\config\applicationHost.config` の [https://docs.microsoft.com/en-us/iis/configuration/system.webserver/modules/](https://docs.microsoft.com/en-us/iis/configuration/system.webserver/modules/) セクションにモジュールを登録します。

IIS の Elastic Beanstalk モジュールは、キャプチャされたウェブリクエストモジュールメトリクスを、`HealthD` という名前の Windows サービスであるインスタンス上のヘルスエージェントに送信します。このデータを送信するために、モジュールは [https://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding(v=vs.110).aspx](https://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding(v=vs.110).aspx) を使用します。これは、マシン上の通信に最適化された安全で信頼性の高いバインディングを提供します。