CloudWatch Application Load Balancer 的指標 - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudWatch Application Load Balancer 的指標

Elastic Load Balancing 將資料點發佈到 Amazon CloudWatch 用於負載平衡器和目標。 CloudWatch可讓使用一組時間序列資料的形式來擷取這些資料點的相關統計資料,也就是指標。您可以將指標視為要監控的變數,且資料點是該變數在不同時間點的值。例如,您可以監控負載平衡器在一段指定期間內的運作狀態良好的目標總數量。每個資料點都有關聯的時間戳記和可選的測量單位。

您可以使用指標來確認系統的運作符合預期。例如,您可以建立 CloudWatch 若指標超過您認為能夠接受的範圍,警示來監控指定的指標並執行動作 (例如傳送通知到電子郵件地址)。

Elastic Load Balancing 回報指標 CloudWatch 只有當請求穿越負載平衡器時。如果有請求進出負載平衡器,Elastic Load Balancing 會以 60 秒為間隔來測量並傳送其指標。如果沒有請求流經負載平衡器,或者指標沒有資料,則不會回報該指標。

如需詳細資訊,請參閱亞馬遜 CloudWatch 使用者指南

Application Load Balancer 指標

AWS/ApplicationELB 命名空間包含下列負載平衡器指標。

指標 描述
ActiveConnectionCount

從用戶端到負載平衡器以及從負載平衡器到目標的並行作用中 TCP 連線總數。

警示條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

ClientTLSNegotiationErrorCount

由於 TLS 錯誤而未與負載平衡器建立工作階段之用戶端所啟動的 TLS 連線數目。可能的原因包括密碼或通訊協定不相符,或用戶端無法驗證伺服器憑證並關閉連線。

警示條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ConsumedLCUs

負載平衡器所使用的負載平衡器容量單位 (LCU) 數目。您需要按每小時使用的 LCU 數目付費。如需詳細資訊,請參閱 Elastic Load Balancing 定價

警示條件:一律報

統計資料:全部

維度

  • LoadBalancer

DesyncMitigationMode_NonCompliant_Request_Count

不符合 RFC 7230 的請求數量。

警示條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

DroppedInvalidHeaderRequestCount

在傳送請求之前,負載平衡器移除具有無效標頭欄位的 HTTP 標頭的請求數目。只有在 routing.http.drop_invalid_header_fields.enabled 屬性設定為 true 時,負載平衡器才會移除這些標頭。

警示條件:有一個非零值

統計資料:全部

維度

  • AvailabilityZone, LoadBalancer

ForwardedInvalidHeaderRequestCount

由 HTTP 標頭具有無效標頭欄位的負載平衡器所傳送的請求數目。只有在 routing.http.drop_invalid_header_fields.enabled 屬性設定為 false 時,負載平衡器才會轉送具有這些標頭的請求。

警示條件:一律報

統計資料:全部

維度

  • AvailabilityZone, LoadBalancer

GrpcRequestCount

透過 IPv4 和 IPv6 處理的 gRPC 請求數量。

警示條件:有一個非零值

統計資料:最實用的統計資料為SumMinimumMaximum,以及Average全部返回 1.

維度

  • LoadBalancer

HTTP_Fixed_Response_Count

成功的固定回應動作次數。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTP_Redirect_Count

成功的重新導向動作次數。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTP_Redirect_Url_Limit_Exceeded_Count

因為回應位置標頭中的 URL 大於 8K 而無法完成的重新導向動作數。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_3XX_Count

源自於負載平衡器的 HTTP 3XX 重新導向代碼數目。此計數不包含目標產生的回應碼。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_4XX_Count

源自於負載平衡器的 HTTP 4XX 用戶端錯誤碼數目。此計數不包含目標產生的回應碼。

要求的格式不正確或不完整時,會產生用戶端錯誤。除了負載平衡器傳回 HTTP 460 錯誤碼的情況之外,目標沒有收到這些要求。此計數未包含目標所產生的任何回應碼。

警示條件:有一個非零值

統計資料:最實用的統計資料為SumMinimumMaximum,以及Average全部返回 1.

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_5XX_Count

源自於負載平衡器的 HTTP 5XX 伺服器錯誤碼數目。此計數未包含目標所產生的任何回應碼。

警示條件:有一個非零值

統計資料:最實用的統計資料為SumMinimumMaximum,以及Average全部返回 1.

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

HTTPCode_ELB_500_Count

源自於負載平衡器的 HTTP 500 錯誤碼數目。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

HTTPCode_ELB_502_Count

源自於負載平衡器的 HTTP 502 錯誤碼數目。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

HTTPCode_ELB_503_Count

源自於負載平衡器的 HTTP 503 錯誤碼數目。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

HTTPCode_ELB_504_Count

源自於負載平衡器的 HTTP 504 錯誤碼數目。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

IPv6ProcessedBytes

負載平衡器透過 IPv6 所處理的位元組總數。此計數包含在 ProcessedBytes 中。

報告條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

IPv6RequestCount

負載平衡器收到的 IPv6 要求數目。

報告條件:有一個非零值

統計資料:最實用的統計資料為SumMinimumMaximum,以及Average全部返回 1.

維度

  • LoadBalancer

NewConnectionCount

從用戶端到負載平衡器以及從負載平衡器到目標建立的新 TCP 連線總數。

報告條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

NonStickyRequestCount

負載平衡器因為無法使用現有的黏性工作階段而選擇新目標時的請求數目。例如,請求是來自新用戶端的第一個請求且黏性 Cookie 不存在、黏性 Cookie 存在但未指定已向此目標群組註冊的目標、黏性 Cookie 的格式不正確或過期,或內部錯誤使負載平衡器無法讀取黏性 Cookie。

報告條件:系統會在目標群組上啟用。

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ProcessedBytes

負載平衡器透過 IPv4 和 IPv6 (HTTP 標頭和 HTTP 承載) 處理的位元組總數。此計數包含進出用戶端和 Lambda 函數的流量,以及來自身分識別提供者 (IdP) 的流量 (如果使用者身份驗證已啟用)。

報告條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

RejectedConnectionCount

因負載平衡器已達其連線數目上限而拒絕的連線數目。

報告條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

RequestCount

透過 IPv4 與 IPv6 處理的要求數目。只有在負載平衡器節點能夠選擇目標的要求時,此測量結果才會增加。在選擇目標之前被拒絕的要求不會反映在此測量結果中。

報告條件:一律報

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • TargetGroup, LoadBalancer

RuleEvaluations

具有一小時平均要求率之負載平衡器所處理的規則數目。

報告條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

AWS/ApplicationELB 命名空間包含下列目標指標。

指標 描述
HealthyHostCount

視為健康的目標數目。

報告條件:報告運作狀態檢查是否已啟用

統計資料:最有用的統計數據是AverageMinimum,以及Maximum

維度

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

HTTPCode_Target_2XX_Count, HTTPCode_Target_3XX_Count, HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count

目標所產生的 HTTP 回應碼數目。這未包含負載平衡器所產生的任何回應碼。

報告條件:有一個非零值

統計資料:最實用的統計資料為SumMinimumMaximum,以及Average全部返回 1.

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

RequestCountPerTarget

目標群組中每個目標所收到的平均要求數目。您必須使用 TargetGroup 維度指定目標群組。如果目標是 Lambda 函數,則此指標不適用。

警示條件:一律報

統計資料:唯一有效的統計資料為Sum。這代表平均值而不是總和。

維度

  • TargetGroup

  • TargetGroup, LoadBalancer

TargetConnectionErrorCount

負載平衡器與目標之間未成功建立的連線數目。如果目標是 Lambda 函數,則此指標不適用。

警示條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

TargetResponseTime

要求離開負載平衡器之後到收到目標回應之前所經歷的時間 (秒)。這等同於存取日誌中的 target_processing_time 欄位。

警示條件:有一個非零值

統計資料:最有用的統計數據是AveragepNN.NN(百分位數)。

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

TargetTLSNegotiationErrorCount

未與目標建立工作階段之負載平衡器所啟動的 TLS 連線數目。可能的原因包含晶片或協定不相符。如果目標是 Lambda 函數,則此指標不適用。

警示條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

UnHealthyHostCount

視為不健康的目標數目。

警示條件:報告運作狀態檢查是否已啟用

統計資料:最有用的統計數據是AverageMinimum,以及Maximum

維度

  • TargetGroup, LoadBalancer

  • TargetGroup, AvailabilityZone, LoadBalancer

對於註冊為目標的 Lambda 函數,AWS/ApplicationELB 命名空間包含下列指標。

指標 描述
LambdaInternalError

因為負載平衡器或 AWS Lambda 的內部問題而失敗的 Lambda 函數請求數。若要取得錯誤原因代碼,請查看存取日誌的 error_reason 欄位。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • TargetGroup

  • TargetGroup, LoadBalancer

LambdaTargetProcessedBytes

負載平衡器針對 Lambda 函數的請求和回應所處理的位元組總數。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

LambdaUserError

Lambda 函數因為 Lambda 函數有問題而失敗的請求數。例如,負載平衡器沒有叫用函數的許可、負載平衡器從函數收到的 JSON 格式不正確或遺漏必要欄位,或請求內文或回應的大小超過大小上限 1 MB。若要取得錯誤原因代碼,請查看存取日誌的 error_reason 欄位。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • TargetGroup

  • TargetGroup, LoadBalancer

AWS/ApplicationELB 命名空間包含下列使用者身份驗證指標。

指標 描述
ELBAuthError

由於身份驗證動作設定錯誤、負載平衡器無法與 IdP 建立連線,或負載平衡器由於內部錯誤而無法完成身份驗證流程,因而無法完成的使用者身份驗證數量。若要取得錯誤原因代碼,請查看存取日誌的 error_reason 欄位。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthFailure

由於 IdP 拒絕使用者存取或授權碼使用多次,因而無法完成的使用者身份驗證數量。若要取得錯誤原因代碼,請查看存取日誌的 error_reason 欄位。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthLatency

向 IdP 查詢 ID 字符和使用者資訊所經歷的時間 (毫秒)。如果其中一或多項操作失敗,此為失敗的時間。

警示條件:有一個非零值

統計資料:所有統計數據都是有意義的。

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthRefreshTokenSuccess

負載平衡器使用 IdP 提供的重新整理字符而成功重新整理使用者宣告的次數。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthSuccess

成功的身份驗證動作次數。此指標在身份驗證工作流程結束時、負載平衡器從 IdP 擷取到使用者宣告之後遞增。

警示條件:有一個非零值

統計資料:最實用的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

ELBAuthUserClaimsSizeExceeded

已設定的 IdP 傳回的使用者宣告大小超過 11K 位元組的次數。

警示條件:有一個非零值

統計資料:唯一有意義的統計資料為Sum

維度

  • LoadBalancer

  • AvailabilityZone, LoadBalancer

Application Load Balancer 的指標維度

若要篩選 Application Load Balancer 器的指標,請使用下列維度。

維度 描述
AvailabilityZone

依可用區域篩選指標資料。

LoadBalancer

依負載平衡器篩選指標資料。依照下列方式指定負載平衡器:app/load-balancer-name/1234567890123456(負載平衡器 ARN 的最終部分)。

TargetGroup

依目標群組篩選指標資料。指定目標群組,如下所示:目標群組/target-group-name/1234567890123456(目標群組 ARN 的最終部分)。

Application Load Balancer 指標的統計資料

CloudWatch 根據由 Elastic Load Balancing 發佈的指標資料點提供統計資料。統計資料是隨著指定期間的指標資料彙總。當您請求統計資料時,傳回的資料流是藉由指標名稱和維度做識別。維度是可唯一識別指標的名稱/值組。例如,您可以為所有在特定可用區域內啟動的負載平衡器後方之運作狀態良好的 EC2 執行個體請求統計資料。

MinimumMaximum 統計資料會反應由個別負載平衡器節點回報的最低與最高值。例如,假設有 2 個負載平衡器節點。一個節點有內含 Minimum 2、Maximum 10、Average 6 的 HealthyHostCount,而其他節點有內含 Minimum 1、Maximum 5、以及 Average 3 的 HealthyHostCount。因此,負載平衡器有 Minimum 1、Maximum 10、以及因為約為 4 的 Average

Sum 統計資料為來自所有負載平衡器節點的彙總值。因為指標包和各期間的多個報告,Sum 僅可用於來自所有負載平衡器節點的彙總指標。

SampleCount 統計資料為測量而得的範本數量。因指標根據範本間隔與事件蒐集而得,此統計資料通常沒有幫助。例如,使用 HealthyHostCountSampleCount 是根據每個負載平衡器節點回報的範本數量,而非運作狀態良好的主機數量。

百分位數指出資料集之某個值的相對位置。您可以指定任何百分位數,最多使用兩位小數 (例如,p95.45)。例如,第 95 個百分位數表示 95% 的資料低於這個值,而 5% 高於這個值。百分位數通常用於隔離異常。例如,假設應用程式以 1-2 毫秒處理快取中的大部分請求,但如果快取是空的,則是 100-200 毫秒。上限會反映最慢的情況,大約 200 毫秒。平均數不表示資料的分佈。百分位數以更有意義的觀點表達應用程式的效能。使用第 99 個百分位數作為 Auto Scaling 觸發器或 CloudWatch 警示,您可以將目標訂為處理時間超過 2 毫秒的請求不超過 1%。

檢視 CloudWatch 負載平衡器的指標

您可以檢視 CloudWatch 使用 Amazon EC2 主控台的負載平衡器指標。這些指標會以監控圖表的形式顯示。若啟用負載平衡器並接收請求,監控圖表會顯示資料點。

或者,您可以使用 CloudWatch 主控台來檢視負載平衡器的指標。

使用 Amazon EC2 主控台檢視指標

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 若要檢視由目標群組篩選的指標,請執行下列動作:

    1. 在導覽窗格中,選擇 Target Groups (目標群組)

    2. 選取您的目標群組,然後選擇 Monitoring (監控) 標籤。

    3. (選用) 若要根據時間篩選結果,請選擇來自 Showing data for (顯示資料) 的時間範圍。

    4. 若要放大檢視單一指標,請選取它的圖形。

  3. 若要檢視由負載平衡器篩選的指標,請執行下列動作:

    1. 在導覽窗格中,選擇 Load Balancers (負載平衡器)

    2. 選取您的負載平衡器,然後選擇 Monitoring (監控) 標籤。

    3. (選用) 若要根據時間篩選結果,請選擇來自 Showing data for (顯示資料) 的時間範圍。

    4. 若要放大檢視單一指標,請選取它的圖形。

若要使用 來檢視指標 CloudWatch 安慰

  1. 開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Metrics (指標)。

  3. 選取 ApplicationELB 命名空間。

  4. (選用) 若要檢視所有維度的指標,請在搜尋欄位中輸入其名稱。

  5. (選用) 若要根據維度來篩選,請選取下列其中一項:

    • 若只要顯示針對負載平衡器而報告的指標,請選擇 Per AppELB Metrics (每個 AppELB 指標)。若要檢視單一負載平衡器的指標,請在搜尋欄位中輸入其名稱。

    • 若只要顯示針對目標群組而報告的指標,請選擇 Per AppELB, per TG Metrics (每個 AppELB、每個 TG 指標)。若要檢視單一目標群組的指標,請在搜尋欄位中輸入其名稱。

    • 若要依可用區域來只顯示針對負載平衡器而報告的指標,請選擇 Per AppELB, per AZ Metrics (每個 AppELB、每個 AZ 指標)。若要檢視單一負載平衡器的指標,請在搜尋欄位中輸入其名稱。若要檢視單一可用區域的指標,請在搜尋欄位中輸入其名稱。

    • 若要依可用區域和目標群組來只顯示針對負載平衡器而報告的指標,請選擇 Per AppELB, per AZ, per TG Metrics (每個 AppELB、每個 AZ、每個 TG 指標)。若要檢視單一負載平衡器的指標,請在搜尋欄位中輸入其名稱。若要檢視單一目標群組的指標,請在搜尋欄位中輸入其名稱。若要檢視單一可用區域的指標,請在搜尋欄位中輸入其名稱。

若要使用 AWS CLI 來檢視指標

使用下列 list-metrics 命令來列出可用指標:

aws cloudwatch list-metrics --namespace AWS/ApplicationELB

使用 AWS CLI 取得指標的統計資料

使用以下內容get-metric-statistics命令會取得指標和維度的統計資料。 CloudWatch 將維度的唯一組合視為個別指標。您無法使用未具體發佈的維度組合來擷取統計資料。您必須指定建立指標時所使用的相同維度。

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

下列為範例輸出:

{ "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" }