啟用 CloudWatch Application Signals - Amazon CloudWatch

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

啟用 CloudWatch Application Signals

使用 CloudWatch Application Signals 自動檢測您的應用程式, AWS 以便您可以根據業務目標追蹤應用程式效能。Application Signals 為您提供 Java 應用程式、其相依性及其優勢的統一、以應用程式為中心的檢視。如需詳細資訊,請參閱Application Signals

CloudWatch Application Signals 利用 CloudWatch 代理程式從自動檢測的應用程式中接收指標和追蹤,選擇性地套用規則以降低高基數,然後將處理過的遙測資料發佈到 CloudWatch。可以使用代理程式組態檔案,為 CloudWatch 代理程式提供專門針對 Application Signals 的自訂組態。首先,代理程式組態檔案的 logs 區段內的 metrics_collected 區段下方會顯示 application_signals 區段,指定 CloudWatch 代理程式將從您的自動檢測應用程式中接收指標。同樣,代理程式組態檔案的 traces 區段內的 traces_collected 區段下方會顯示 application_signals 區段,指定 CloudWatch 代理程式可從您的自動檢測應用程式中接收追蹤。此外,您可以選擇性地傳遞自訂組態規則,以減少發佈本節所述的高基數遙測。

  • 對於 Amazon EKS 叢集,當您安裝 Amazon CloudWatch Observability EKS 附加元件時,預設會啟用 CloudWatch 代理程式,以便從您的自動檢測應用程式中接收指標和追蹤。如果您想要選擇性地傳遞自訂組態規則,可以在建立或使用其他組態更新 Amazon EKS 附加元件時,在自訂代理程式組態中傳遞至該附加元件來實現,如 (選用) 額外組態 中所述。

  • 對於包括 Amazon EC2 在內的其他支援平台,必須使用代理程式組態來啟動 CloudWatch 代理程式,它可透過指定 application_signals 區段以及本節稍後所述的任何自訂組態規則來啟用 Application Signals。

以下是 CloudWatch 代理程式組態檔案中與 CloudWatch Application Signals 相關的欄位概觀。

  • logs

    • metrics_collected – 此欄位包含若干區段,用於指定代理程式來收集日誌,以啟用 CloudWatch Application Signals 和 Container Insights 等使用案例,它們具有 Amazon EKS 的增強可觀測性。

      注意

      之前,此區段也用於指定代理程式來收集採用內嵌指標格式的日誌。不再需要這些設定。

      • application_signals(選用) 指定您要啟用 CloudWatch Application Signals,以便從自動檢測的應用程式中接收指標,從而提升 CloudWatch Application Signals。

        • rules (選用) 規則陣列,用於有條件地選取指標和追蹤,並套用動作以處理高基數案例。每個規則可以包含下列欄位:

          • rule_name (選用) 規則的名稱。

          • selectors (選用) 一組指標和追蹤維度比對器。每個選取器都必須提供下列欄位:

            • dimension 如果 selectors 不為空,則為必填欄位。這會指定要用作篩選條件的指標和追蹤維度。

            • match 如果 selectors 不為空,則為必填欄位。用於比對指定的維度值的萬用字元模式。

          • action (選用) 要套用至符合指定選取器之指標和追蹤的動作。action 的值必須是下列其中一個關鍵字:

            • keep 指定僅將指標和追蹤傳送至 CloudWatch (如果與 selectors 相符)。

            • drop 指定丟棄與 selectors 相符的指標和追蹤。

            • replace 指定取代與 selectors 相符的指標和追蹤維度。它們根據 replacements 部分進行取代。

          • replacementsactionreplace 時需要。當 actionreplace 時,維度和值對陣列將套用至符合指定 selectors 的指標和追蹤。每個取代都必須提供下列欄位:

            • target_dimension 如果 replacements 不為空,則為必填欄位。指定需要取代的維度。

            • value 如果 replacements 不為空,則為必填欄位。用來取代 target_dimension 原始值的值。

        • limiter (選用) 使用本節來限制 Application Signals 傳送至 CloudWatch 的指標和維度,以最佳化您的成本。

          • disabled (選用) 如果 true,則會停用指標限制功能。預設為 false

          • drop_threshold (選用) 一個 CloudWatch 代理程式可在一個輪換間隔內匯出的每個服務的不同指標數量上限。預設值為 500。

          • rotation_interval (選用) 限制器為差異計數重設指標記錄的間隔。這表示為字串,具有數字序列和單位尾碼。支援分數。支援的單位字尾為 smhusmsns

            預設值為1h一小時。

          • log_dropped_metrics (選用) 指定代理程式是否應在捨棄 Application Signals 指標時將日誌寫入 CloudWatch 代理程式日誌。預設值為 false

            注意

            若要啟用此記錄, agent區段中的 debug 參數也必須設定為 true

  • traces

    • traces_collected

      • application_signals 選用。指定此選項可讓 CloudWatch 代理程式從您的自動檢測應用程式中接收追蹤,以便提升 CloudWatch Application Signals。

注意

即使在 logs 區段中所包含的 metrics_collected 區段下指定自訂 application_signals 規則,它們也會隱式地套用至 traces_collected 區段。相同的規則集將套用至指標和追蹤。

當有多個具有不同動作的規則時,它們會依照下列順序套用:keepdrop、然後 replace

以下是套用自訂規則的完整 CloudWatch 代理程式組態檔案範例。

{ "logs": { "metrics_collected": { "application_signals": { "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep" }, { "rule_name": "drop01", "selectors": [ { "dimension": "Operation", "match": "GET /api/customer/owners/*" } ], "action": "drop" }, { "rule_name": "replace01", "selectors": [ { "dimension": "Operation", "match": "PUT /api/customer/owners/*/pets/*" }, { "dimension": "RemoteOperation", "match": "PUT /owners" } ], "replacements": [ { "target_dimension": "Operation", "value": "PUT /api/customer/owners/{ownerId}/pets{petId}" } ], "action": "replace" } ] } } }, "traces": { "traces_collected": { "application_signals": {} } } }

對於上一個範例組態檔案,rules 會按如下方式處理:

  1. 規則 keep01 可確保維度 Servicepet-clinic-frontend 和維度 RemoteServicecustomers-service 的任何指標和追蹤被保留。

  2. 對於套用 keep01 後已處理的指標和追蹤,drop01 規則可確保捨棄維度 OperationGET /api/customer/owners/* 的指標和追蹤。

  3. 對於套用 drop01 後已處理的指標和追蹤,replace01 規則會更新維度 OperationPUT /api/customer/owners/*/pets/* 和維度 RemoteOperationPUT /owners 的指標和追蹤,而它們的 Operation 維度現在會被取代為 PUT /api/customer/owners/{ownerId}/pets{petId}

以下是 CloudWatch 組態檔案的完整範例,可透過將指標限制變更為 100、啟用捨棄指標的記錄,以及將輪換間隔設定為兩小時,來管理 Application Signals 中的基數。

{ "logs": { "metrics_collected": { "application_signals": { "limiter": { "disabled": false, "drop_threshold": 100, "rotation_interval": "2h", "log_dropped_metrics": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }