本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Application Signals 收集的指標
Application Signals 會從您為其啟用的應用程式收集標準應用程式指標和執行時間指標。
標準應用程式指標與服務效能、延遲和可用性的最關鍵部分相關。
執行期指標會追蹤應用程式指標一段時間,包括記憶體用量、CPU 用量和垃圾收集。Application Signals 會在您已為 Application Signals 啟用的服務內容中顯示執行時間指標。當您發生操作問題時,觀察執行時間指標可協助您找出問題的根本原因。例如,您可以查看服務中的延遲峰值是否與執行時間指標中的峰值相關。
收集的標準應用程式指標
Application Signals 會從它發現的服務中收集標準應用程式指標。這些指標與服務效能的最重要方面有關:延遲、故障和錯誤。它們可協助您識別問題、監控效能趨勢並最佳化資源,以改善整體使用者體驗。
下表列出 Application Signals 收集的指標。這些指標會傳送到 ApplicationSignals
命名空間中的 CloudWatch。
指標 | 描述 |
---|---|
|
提出請求後,資料傳輸開始之前的延遲時間。 單位:毫秒 |
|
HTTP 5XX 伺服器端故障和 OpenTelemetry 跨度狀態錯誤的計數。 單位:無 |
|
HTTP 4XX 用戶端錯誤的計數。這些錯誤被認為是並非由服務問題引起的請求錯誤。因此,Application Signals 儀表板上顯示的 單位:無 |
Application Signals Availability
儀表板上顯示的指標計算為 (1 - Faults
/總)*100。總回應數包含所有回應,且衍生自 SampleCount(Latency)
。成功的回應是沒有 5XX
錯誤的所有回應。當 Application Signals 計算 Availability
時,4XX
回應會被視為成功。
收集的維度與維度組合
以下是針對每個標準應用程式指標定義的維度。如需維度的詳細資訊,請參閱 維度。
會針對服務指標和相依性指標收集不同的維度。在 Application Signals 發現的服務中,當微服務 A 呼叫微服務 B 時,微服務 B 正在提供請求。在此情況下,微服務 A 會發出相依性指標,而微服務 B 會發出服務指標。當用戶端呼叫微服務 A 時,微服務 A 會提供請求並發出服務指標。
服務指標的維度
為服務指標收集以下維度。
維度 | 描述 |
---|---|
|
服務的名稱。 值的上限為 255 個字元。 |
|
API 操作或其他活動的名稱。 最大值為 1024 個字元。目前,只有在操作名稱為 194 個字元或更少時,才能設定操作的服務層級目標。 |
|
服務執行的環境名稱。如果服務未在 Amazon EKS 上執行,您可以在 最大值為 259 個字元。 |
當您在 CloudWatch 主控台中檢視這些指標時,您可以使用下列維度組合來檢視它們:
-
[Environment, Service, Operation, [Latency, Error, Fault]]
-
[Environment, Service, [Latency, Error, Fault]]
相依性指標的維度
依存性指標會收集下列維度:
維度 | 描述 |
---|---|
|
服務的名稱。 值的上限為 255 個字元。 |
|
API 操作或其他操作的名稱。 最大值為 1024 個字元。 |
|
要叫用的遠端服務名稱。 值的上限為 255 個字元。 |
|
要叫用的 API 操作名稱。 最大值為 1024 個字元。 |
|
服務執行的環境名稱。如果服務未在 Amazon EKS 上執行,您可以在 最大值為 259 個字元。 |
|
執行相依性服務的環境名稱。當服務呼叫相依性且兩者都在相同叢集中執行時,會自動產生 最大值為 259 個字元。 |
|
遠端呼叫叫用的資源名稱。如果服務呼叫遠端 AWS 服務,則會自動產生 最大值為 1024 個字元。 |
|
遠端呼叫叫用的資源類型。只有在 已定義 最大值為 1024 個字元。 |
當您在 CloudWatch 主控台中檢視這些指標時,您可以使用下列維度組合來檢視它們:
在 Amazon EKS 叢集上執行
-
[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]
-
[Environment, Service, Operation, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, Operation, RemoteService, RemoteOperation, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteEnvironment, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]
-
[Environment, Service, RemoteService, RemoteOperation, [Latency, Error, Fault]]
-
[RemoteService [Latency, Error, Fault]]
-
[RemoteService, RemoteResourceIdentifier, RemoteResourceType [Latency, Error, Fault]]
執行期指標
Application Signals 使用 AWS Distro for OpenTelemetry SDK,自動從您的 Java 和 Python 應用程式收集 OpenTelemetry 相容指標。若要收集執行時間指標,您必須符合下列先決條件:
您的 CloudWatch 代理程式必須是 版
1.300049.1
或更新版本。如果您使用 Amazon CloudWatch 可觀測性 EKS 附加元件,則其必須為版本
2.30-eksbuild.1
或更新版本。如果您更新附加元件,則必須重新啟動應用程式。對於 Java 應用程式,您必須執行
1.32.5
或更新版本的適用於 Java 的 AWS Distro for OpenTelemetry SDK。對於 Python 應用程式,您必須執行適用於 Python 的 AWS Distro for OpenTelemetry SDK
0.7.0
或更新版本。對於 .Net 應用程式,您必須執行適用於 .Net 的 AWS Distro for OpenTelemetry SDK
1.6.0
或更新版本。
不會收集 Node.js 應用程式的執行時間指標。
執行時間指標會計入 Application Signals 成本中。如需 CloudWatch 定價的詳細資訊,請參閱 Amazon CloudWatch 定價
注意
已知問題
Java SDK 1.32.5 版中的執行時間指標集合已知無法使用 JBoss Wildfly 的應用程式。此問題延伸到 Amazon CloudWatch 可觀測性 EKS 附加元件,影響2.3.0-eksbuild.1
透過 的版本2.6.0-eksbuild.1
。此問題已在 Java SDK 版本 v1.32.6
和 Amazon CloudWatch Observability EKS 附加元件版本 中修正v3.0.0-eksbuild.1
。
如果您受到影響,請升級 Java SDK 版本,或透過將環境變數OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
新增至應用程式來停用執行時間指標集合。
Java 執行期指標
Application Signals 會從您為 Application Signals 啟用的 Java 應用程式收集下列 JVM 指標。所有執行時間指標都會傳送至 ApplicationSignals
命名空間中的 CloudWatch,並使用 Service
和 Environment
維度集收集。
指標名稱 | 描述 | 有意義的統計資料 |
---|---|---|
|
JVM 垃圾收集動作期間彙總指標。 單位:毫秒 |
總和、平均值、最小值、最大值 |
|
舊世代的 JVM 垃圾回收動作持續時間的彙總指標。僅適用於 G1。 單位:毫秒 |
總和、平均值、最小值、最大值 |
|
新世代 JVM 垃圾回收動作持續時間的彙總指標。僅適用於 G1。 單位:毫秒 |
總和、平均值、最小值、最大值 |
|
JVM 垃圾回收動作數量的彙總指標。 單位:無 |
總和、平均值、最小值、最大值 |
|
舊世代的 JVM 垃圾回收動作數量的彙總指標。僅適用於 G1。 單位:無 |
總和、平均值、最小值、最大值 |
|
新世代 JVM 垃圾回收動作數量的彙總指標。僅適用於 G1。 單位:無 |
總和、平均值、最小值、最大值 |
|
使用的記憶體堆積量。 單位:位元組 |
平均、最小值、最大值 |
|
使用的記憶體數量,如此集區上最近的垃圾回收事件之後所測量。 單位:位元組 |
平均、最小值、最大值 |
|
舊世代使用的記憶體數量。 單位:位元組 |
平均、最小值、最大值 |
|
倖存者空間使用的記憶體堆積量。 單位:位元組 |
平均、最小值、最大值 |
|
加密空間使用的記憶體量。 單位:位元組 |
平均、最小值、最大值 |
|
使用的非堆積記憶體數量。 單位:位元組 |
平均、最小值、最大值 |
|
執行執行緒的數量,包括協助程式和非協助程式執行緒。 單位:無 |
總和、平均值、最小值、最大值 |
|
已載入的類別數量。 單位:無 |
總和、平均值、最小值、最大值 |
|
程序使用的 CPU 時間,如 JVM 所報告。 單位:無 (Nanoseconds) |
總和、平均值、最小值、最大值 |
|
程序最近使用的 CPU,如 JVM 所報告。 單位:無 |
平均、最小值、最大值 |
Python 執行期指標
Application Signals 會從您為 Application Signals 啟用的 Python 應用程式收集下列指標。所有執行時間指標都會傳送至 ApplicationSignals
命名空間中的 CloudWatch,並使用 Service
和 Environment
維度集收集。
指標名稱 | 描述 | 有意義的統計資料 |
---|---|---|
|
目前正在追蹤的物件總數。 單位:無 |
總和、平均值、最小值、最大值 |
|
目前在第 0 代中追蹤的物件數量。 單位:無 |
總和、平均值、最小值、最大值 |
|
目前在第 1 代中追蹤的物件數量。 單位:無 |
總和、平均值、最小值、最大值 |
|
目前在第 2 代中追蹤的物件數量。 單位:無 |
總和、平均值、最小值、最大值 |
|
程序使用的虛擬記憶體總量。 單位:位元組 |
平均、最小值、最大值 |
|
程序使用的未交換實體記憶體總量。 單位:位元組 |
平均、最小值、最大值 |
|
程序目前使用的執行緒數量。 單位:無 |
總和、平均值、最小值、最大值 |
|
程序使用的 CPU 時間。 單位:秒 |
總和、平均值、最小值、最大值 |
|
程序的 CPU 使用率。 單位:無 |
平均、最小值、最大值 |
.Net 執行時間指標
Application Signals 會從您為 Application Signals 啟用的 .Net 應用程式收集下列指標。所有執行時間指標都會傳送至 ApplicationSignals
命名空間中的 CloudWatch,並使用 Service
和 Environment
維度集收集。
指標名稱 | 描述 | 有意義的統計資料 |
---|---|---|
|
自程序開始以來,第 0 代中追蹤的垃圾回收指標總數。 單位:無 |
總和、平均值、最小值、最大值 |
|
自程序開始以來,第 1 代中追蹤的廢棄項目集合指標總數。 單位:無 |
總和、平均值、最小值、最大值 |
|
自程序開始以來,第 2 代中追蹤的垃圾回收指標總數。 單位:無 |
總和、平均值、最小值、最大值 |
|
從程序開始,垃圾回收中暫停的總時間。 單位:無 |
總和、平均值、最小值、最大值 |
|
在最新的垃圾回收期間觀察到的第 0 代堆積大小 (包括分段)。 注意此指標僅在第一個垃圾回收完成後可用。 單位:位元組 |
平均、最小值、最大值 |
|
在最新的垃圾收集期間觀察到的第 1 代堆積大小 (包括分段)。 注意此指標僅在第一個垃圾回收完成後可用。 單位:位元組 |
平均、最小值、最大值 |
|
在最新的垃圾收集期間觀察到的第 2 代堆積大小 (包括分段)。 注意此指標僅在第一個垃圾回收完成後可用。 單位:位元組 |
平均、最小值、最大值 |
|
在最新垃圾收集期間觀察到的大型物件堆積大小 (包括分段)。 注意此指標僅在第一個垃圾回收完成後可用。 單位:位元組 |
平均、最小值、最大值 |
|
在最新垃圾收集期間觀察到的固定物件堆積大小 (包括分段)。 注意此指標僅在第一個垃圾回收完成後可用。 單位:位元組 |
平均、最小值、最大值 |
|
目前存在的執行緒集區執行緒數目。 單位:無 |
平均、最小值、最大值 |
|
目前佇列要由執行緒集區處理的工作項目數量。 單位:無 |
平均、最小值、最大值 |
停用執行時間指標的集合
預設會針對已啟用 Application Signals 的 Java 和 Python 應用程式收集執行期指標。如果您想要停用這些指標的集合,請遵循本節中適用於您環境的指示。
Amazon EKS
若要在應用程式層級停用 Amazon EKS 應用程式中的執行時間指標,請將下列環境變數新增至工作負載規格。
env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"
若要在叢集層級停用 Amazon EKS 應用程式的執行期指標,請將組態套用至 Amazon CloudWatch Observability EKS 附加元件的進階組態。
{ "agent": { "config": { "traces": { "traces_collected": { "application_signals": { } } }, "logs": { "metrics_collected": { "application_signals": { } } } }, "manager": { "autoInstrumentationConfiguration": { "java": { "runtime_metrics": { "enabled": false } }, "python": { "runtime_metrics": { "enabled": false } }, "dotnet": { "runtime_metrics": { "enabled": false } } } } } }
Amazon ECS
若要在 Amazon ECS 應用程式中停用執行時間指標,請在新的任務定義修訂OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
中新增 環境變數,並重新部署應用程式。
EC2
若要在 Amazon EC2 應用程式中停用執行時間指標,請在應用程式啟動OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
之前新增環境變數。
Kubernetes
若要在應用程式層級停用 Kubernetes 應用程式中的執行時間指標,請將下列環境變數新增至工作負載規格。
env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"
若要在叢集層級停用 Kubernetes 應用程式中的執行期指標,請使用下列命令:
helm upgrade ... \ --set-string manager.autoInstrumentationConfiguration.java.runtime_metrics.enabled=false \ --set-string manager.autoInstrumentationConfiguration.python.runtime_metrics.enabled=false \ -\-set-string manager.autoInstrumentationConfiguration.dotnet.runtime_metrics.enabled=false