本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 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 附加元件時,在自訂代理程式組態中傳遞至該附加元件來實現,如 (選用) 額外組態 中所述。
-
對於適用於 OpenShift on AWS (ROSA) 的 RedHat,當您使用 Helm Chart 安裝 CloudWatch 代理程式運算子時,CloudWatch 代理程式預設為啟用,以接收來自自動檢測應用程式的指標和追蹤。如果您想要選擇性傳入自訂組態規則,您可以使用 Helm Chart 傳入自訂代理程式組態,如 中所述(選用) 額外組態。
-
對於包括 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部分進行取代。
-
-
replacements在action為replace時需要。當action為replace時,維度和值對陣列將套用至符合指定selectors的指標和追蹤。每個取代都必須提供下列欄位:-
target_dimension如果replacements不為空,則為必填欄位。指定需要取代的維度。 -
value如果replacements不為空,則為必填欄位。用來取代target_dimension原始值的值。
-
-
-
limiter(選用) 使用本節來限制 Application Signals 傳送至 CloudWatch 的指標和維度,以最佳化您的成本。-
disabled(選用) 如果為true,則會停用指標限制功能。預設為false。 -
drop_threshold(選用) 一個 CloudWatch 代理程式可在一個輪換間隔內匯出的每個服務的不同指標數目上限。預設值為 500。 -
rotation_interval(選用) 限制器為差異計數重設指標記錄的間隔。這以字串表示,其中包含一系列數字和單位尾碼。支援分數。支援的單位尾碼為s、m、h、us、ms和ns預設值為
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 區段。相同的規則集將套用至指標和追蹤。
當有多個具有不同動作的規則時,它們會依照下列順序套用:keep、drop、然後 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 會按如下方式處理:
-
規則
keep01可確保維度Service為pet-clinic-frontend和維度RemoteService為customers-service的任何指標和追蹤被保留。 -
對於套用
keep01後已處理的指標和追蹤,drop01規則可確保捨棄維度Operation為GET /api/customer/owners/*的指標和追蹤。 -
對於套用
drop01後已處理的指標和追蹤,replace01規則會更新維度Operation為PUT /api/customer/owners/*/pets/*和維度RemoteOperation為PUT /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": {} } } } }