メニュー
Elastic Load Balancing
Application Load Balancers

Application Load Balancer の CloudWatch メトリクス

Elastic Load Balancing は、ロードバランサーとターゲットに関するデータポイントを Amazon CloudWatch に発行します。CloudWatch を使用すると、それらのデータポイントについての統計を、順序付けられた時系列データのセット (メトリクスと呼ばれる) として取得できます。メトリクスは監視対象の変数、データポイントは時間の経過と共に変わる変数の値と考えることができます。たとえば、指定した期間中のロードバランサーの正常なターゲットの合計数を監視することができます。各データポイントには、タイムスタンプと、オプションの測定単位が関連付けられています。

メトリクスを使用して、システムが正常に実行されていることを確認できます。たとえば、メトリクスが許容範囲外になる場合、CloudWatch アラームを作成して、指定されたメトリクスを監視し、アクション (E メールアドレスに通知を送信するなど) を開始することができます。

Elastic Load Balancing は、リクエストがロードバランサーを経由する場合のみ、メトリクスを CloudWatch に報告します。ロードバランサーを経由するリクエストがある場合、Elastic Load Balancing は 60 秒間隔でメトリクスを測定し、送信します。ロードバランサーを経由するリクエストがないか、メトリクスのデータがない場合、メトリクスは報告されません。

詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

Application Load Balancer Metrics

The AWS/ApplicationELB namespace includes the following metrics.

Metric Description
ActiveConnectionCount

The total number of concurrent TCP connections active from clients to the load balancer and from the load balancer to targets.

Statistics: The most useful statistic is Sum.

ClientTLSNegotiationErrorCount

The number of TLS connections initiated by the client that did not establish a session with the load balancer. Possible causes include a mismatch of ciphers or protocols.

Statistics: The most useful statistic is Sum.

HealthyHostCount

The number of targets that are considered healthy.

Statistics: The most useful statistics are Average, Minimum, and Maximum.

HTTPCode_ELB_4XX_Count

The number of HTTP 4XX client error codes that originate from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests have not been received by the target. This count does not include any response codes generated by the targets.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

HTTPCode_ELB_5XX_Count

The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the targets.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

HTTPCode_Target_2XX_Count, HTTPCode_Target_3XX_Count, HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count

The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

IPv6ProcessedBytes

The total number of bytes processed by the load balancer over IPv6.

IPv6RequestCount

The number of IPv6 requests received by the load balancer.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

NewConnectionCount

The total number of new TCP connections established from clients to the load balancer and from the load balancer to targets.

Statistics: The most useful statistic is Sum.

ProcessedBytes

The total number of bytes processed by the load balancer over IPv4 and IPv6.

RejectedConnectionCount

The number of connections that were rejected because the load balancer had reached its maximum number of connections.

Statistics: The most useful statistic is Sum.

RequestCount

The number of requests received by the load balancer. This includes requests over IPv4 and IPv6.

Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

TargetConnectionErrorCount

The number of connections that were not successfully established between the load balancer and target.

Statistics: The most useful statistic is Sum.

TargetResponseTime

The time elapsed, in seconds, after the request leaves the load balancer until a response from the target is received. This is equivalent to the target_processing_time field in the access logs.

Statistics: The most useful statistics are Average and pNN.NN (percentiles).

TargetTLSNegotiationErrorCount

The number of TLS connections initiated by the load balancer that did not establish a session with the target. Possible causes include a mismatch of ciphers or protocols.

Statistics: The most useful statistic is Sum.

UnHealthyHostCount

The number of targets that are considered unhealthy.

Statistics: The most useful statistics are Average, Minimum, and Maximum.

Metric Dimensions for Application Load Balancers

To filter the metrics for your Application Load Balancer, use the following dimensions.

Dimension Description
AvailabilityZone

Filter the metric data by Availability Zone.

LoadBalancer

Filter the metric data by load balancer. Specify the load balancer as follows: app/load-balancer-name/1234567890123456 (the final portion of the load balancer ARN).

TargetGroup

Filter the metric data by target group. Specify the target group as follows: targetgroup/target-group-name/1234567890123456 (the final portion of the target group ARN).

Application Load Balancer メトリクスの統計

CloudWatch では、Elastic Load Balancing で発行されたメトリクスのデータポイントに基づいて統計が提供されます。統計とは、メトリクスデータを指定した期間で集約したものです。統計を要求した場合、返されるデータストリームはメトリクス名とディメンションによって識別されます。ディメンションは、メトリクスを一意に識別する名前/値のペアです。たとえば、特定のアベイラビリティーゾーンで起動されたロードバランサーの配下のすべての正常な EC2 インスタンスの統計をリクエストできます。

Minimum 統計と Maximum 統計には、個々のロードバランサーノードによって報告される最小値と最大値が反映されます。たとえば、ロードバランサーノードが 2 つあるとします。一方のノードは、HealthyHostCountMinimum が 2、Maximum が 10、Average が 6 で、もう一方のノードは HealthyHostCountMinimum が 1、Maximum が 5、Average が 3 です。このため、ロードバランサーの Minimum は 1、Maximum は 10、Average は約 4 です。

Sum 統計は、すべてのロードバランサーノードにおける集計値です。メトリクスには期間あたり複数のレポートが含まれているため、Sum はすべてのロードバランサーノードで集計されたメトリクスのみに適用されます。

SampleCount 統計は測定されたサンプルの数です。メトリクスはサンプリング間隔とイベントに基づいて集計されるため、通常、この統計は有用ではありません。たとえば、HealthyHostCountSampleCount は、正常なホストの数ではなく各ロードバランサーノードが報告するサンプル数に基づいています。

パーセンタイルは、データセットにおける値の相対的な位置を示します。小数点以下最大 2 桁を使用して、任意のパーセンタイルを指定できます (p95.45 など)。たとえば、95 パーセンタイルは、95 パーセントのデータがこの値を下回っており、5 パーセントがこの値を上回っていることを意味します。パーセンタイルは、異常を分離するためによく使用されます。たとえば、アプリケーションがほとんどのリクエストをキャッシュから 1 ~ 2 ミリ秒で処理するのに、キャッシュが空の場合は 100 ~ 200 ミリ秒になるとします。最大値は最も速度が遅い場合を反映し、約 200 ミリ秒になります。平均値はデータの分散を示してはいません。パーセンタイルで、アプリケーションのパフォーマンスのより有益なビューが得られます。99 番目のパーセンタイルを Auto Scaling のトリガーあるいは CloudWatch アラームとして使用すると、2 ミリ秒以上の処理時間がかかるリクエストが 1% を超えないようターゲットを設定できます。

ロードバランサーの CloudWatch メトリクスを表示する

Amazon EC2 コンソールを使用して、ロードバランサーに関する CloudWatch メトリクスを表示できます。これらのメトリクスは、モニタリング用のグラフのように表示されます。ロードバランサーがアクティブでリクエストを受信しているときにのみ、モニタリング用のグラフにデータポイントが表示されます。

または、CloudWatch コンソールを使用してロードバランサーのメトリクスを表示できます。

Amazon EC2 コンソールを使用してメトリクスを表示するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ターゲットグループによってフィルタリングされたメトリクスを表示するには、以下の作業を実行します。

    1. ナビゲーションペインで、[Target Groups] を選択します。

    2. ターゲットグループを選択し、[Monitoring] タブを選択します。

    3. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択します。

    4. 1 つのメトリクスの大きいビューを取得するには、グラフを選択します。以下のメトリクスが利用可能です。

      • 正常なホスト — HealthyHostCount

      • 非正常なホスト — UnHealthyHostCount

      • 平均レイテンシー — TargetResponseTime

      • 合計リクエスト数 — RequestCount

      • バックエンド接続エラー — TargetConnectionErrorCount

      • ターゲット TLS ネゴシエーションエラー — TargetTLSNegotiationErrorCount

      • 合計 HTTP 2XX — HTTPCode_Target_2XX

      • 合計 HTTP 3XX — HTTPCode_Target_3XX

      • 合計 HTTP 4XX — HTTPCode_Target_4XX

      • 合計 HTTP 5XX — HTTPCode_Target_5XX

  3. ロードバランサーでフィルタリングされたメトリクスを表示するには、以下の操作を実行します。

    1. ナビゲーションペインで、[Load Balancers] を選択します。

    2. ロードバランサーを選択し、[Monitoring] タブを選択します。

    3. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択します。

    4. 1 つのメトリクスの大きいビューを取得するには、グラフを選択します。以下のメトリクスが利用可能です。

      • 平均レイテンシー — TargetResponseTime

      • 合計リクエスト数 — RequestCount

      • 新規接続数 — NewConnectionCount

      • 有効接続数 — ActiveConnectionCount

      • プロセスされたバイト数 — ProcessedBytes

      • ターゲット接続エラー — TargetConnectionErrorCount

      • 却下された接続の合計 — RejectedConnectionCount

      • クライアント TLS ネゴシエーションエラー — ClientTLSNegotiationErrorCount

      • ターゲット TLS ネゴシエーションエラー — TargetTLSNegotiationErrorCount

      • 合計 HTTP 2XX — HTTPCode_Target_2XX_Count

      • 合計 HTTP 3XX — HTTPCode_Target_3XX_Count

      • 合計 HTTP 4XX — HTTPCode_Target_4XX_Count

      • 合計 HTTP 5XX — HTTPCode_Target_5XX_Count

      • Sum ELB HTTP 4XXs — HTTPCode_ELB_4XX_Count

      • Sum ELB HTTP 5XXs — HTTPCode_ELB_5XX_Count

CloudWatch コンソールを使用してメトリクスを表示するには

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで メトリクスを選択します。

  3. 名前空間に [ApplicationELB] を選択します。

  4. (オプション) すべてのディメンションでメトリクスを表示するには、検索フィールドに名称を入力します。

  5. (オプション) ディメンション別に検索するには、次のいずれかを選択します。

    • ロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • ターゲットグループにレポートされるメトリクスのみを表示するには、[Per AppELB, per TG Metrics] を選択します。1 つのターゲットグループのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • アベイラビリティーゾーン別に、ロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB, per AZ Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのアベイラビリティーゾーンのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • アベイラビリティーゾーンとターゲットグループ別にロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB, per AZ, per TG Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのターゲットグループのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのアベイラビリティーゾーンのメトリクスを表示するには、検索フィールドにその名前を入力します。

AWS CLI を使ってメトリクスを表示するには

使用可能なメトリクスを表示するには、次の list-metrics コマンドを使用します。

Copy
aws cloudwatch list-metrics --namespace AWS/ApplicationELB

AWS CLI を使用してメトリクスの統計を取得するには

get-metric-statistics コマンドを使用して、指定されたメトリクスとディメンションの統計情報を取得します。 CloudWatch は、ディメンションの一意の組み合わせをそれぞれ別のメトリクスとして扱うことに注意してください。特に発行されていないディメンションの組み合わせを使用した統計を取得することはできません。メトリクス作成時に使用した同じディメンションを指定する必要があります。

Copy
aws cloudwatch get-metric-statistics --namespace AWS/ApplicationELB \ --metric-name UnHealthyHostCount --statistics Average --period 3600 \ --dimensions Name=LoadBalancer,Value=app/my-load-balancer/50dc6c495c0c9188 \ Name=TargetGroup,Value=targetgroup/my-targets/73e2d6bc24d8a067 \ --start-time 2016-04-18T00:00:00Z --end-time 2016-04-21T00:00:00Z

出力例を次に示します。

Copy
{ "Datapoints": [ { "Timestamp": "2016-04-18T22:00:00Z", "Average": 0.0, "Unit": "Count" }, { "Timestamp": "2016-04-18T04:00:00Z", "Average": 0.0, "Unit": "Count" }, ... ], "Label": "UnHealthyHostCount" }