本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
收集 Java 管理延伸模組 (JMX) 指標
您可以使用 CloudWatch 代理程式,從您的 Java 應用程式收集 Java 管理延伸 (JMX) 指標。
CloudWatch 代理程式支援從下列版本收集這些指標:
JVM 8 和更新版本
Kafka 0.8.2.x 及更新版本
Tomcat 9、10.1 和 11 (測試版)
若要開始收集 JMX 指標,請在 CloudWatch 代理程式組態檔案的 jmx
metrics_collected
區段內新增區段。jmx
區段可以包含下列欄位。
jvm
- 選用。指定您要從執行個體擷取 Java 虛擬機器 (JVM) 指標。如需詳細資訊,請參閱收集 JVM 指標。此區段可以包含下列欄位:
-
measurement
– 指定要收集的 JVM 指標陣列。如需此處要使用之可能值的清單,請參閱 收集 JVM 指標 的資料表中的 Metric (指標) 資料欄。在每個指標的項目中,您可以選擇性指定以下一個或兩個項目:
-
rename
– 為此指標指定不同的名稱。 -
unit
– 指定此指標使用的單位,覆寫此指標的預設單位。您指定的單位必須是有效的 CloudWatch 指標單位,如 MetricDatum 中Unit
說明所列示。
-
-
kafka
– 選用。指定您要從執行個體擷取 Apache Kafka 代理程式指標。如需詳細資訊,請參閱收集 Kafka 指標。此區段可以包含下列欄位:
-
measurement
– 指定要收集的 Kafka 代理程式指標陣列。如需此處可能值的清單,請參閱 中第一個資料表中的指標欄收集 Kafka 指標。在每個指標的項目中,您可以選擇性指定以下一個或兩個項目:
-
rename
– 為此指標指定不同的名稱。 -
unit
– 指定此指標使用的單位,覆寫此指標的預設單位。您指定的單位必須是有效的 CloudWatch 指標單位,如 MetricDatum 中Unit
說明所列示。
-
-
kafka-consumer
– 選用。指定您要從執行個體擷取 Apache Kafka 取用者指標。如需詳細資訊,請參閱收集 Kafka 指標。此區段可以包含下列欄位:
-
measurement
– 指定要收集的 Kafka 代理程式指標陣列。如需此處可能使用的值清單,請參閱 中第二個指標表格中的指標欄收集 Kafka 指標。在每個指標的項目中,您可以選擇性指定以下一個或兩個項目:
-
rename
– 為此指標指定不同的名稱。 -
unit
– 指定此指標使用的單位,覆寫此指標的預設單位。您指定的單位必須是有效的 CloudWatch 指標單位,如 MetricDatum 中Unit
說明所列示。
-
-
kafka-producer
– 選用。指定您要從執行個體擷取 Apache Kafka 生產者指標。如需詳細資訊,請參閱收集 Kafka 指標。此區段可以包含下列欄位:
-
measurement
– 指定要收集的 Kafka 代理程式指標陣列。如需此處可能使用的值清單,請參閱 中第三個指標表格中的指標欄收集 Kafka 指標。在每個指標的項目中,您可以選擇性指定以下一個或兩個項目:
-
rename
– 為此指標指定不同的名稱。 -
unit
– 指定此指標使用的單位,覆寫此指標的預設單位。您指定的單位必須是有效的 CloudWatch 指標單位,如 MetricDatum 中Unit
說明所列示。
-
-
tomcat
– 選用。指定您要從執行個體擷取 Tomcat 指標。如需詳細資訊,請參閱收集 Tomcat 指標。此區段可以包含下列欄位:
-
measurement
– 指定要收集的 Tomcat 指標陣列。如需此處要使用之可能值的清單,請參閱 收集 Tomcat 指標 的資料表中的 Metric (指標) 資料欄。在每個指標的項目中,您可以選擇性指定以下一個或兩個項目:
-
rename
– 為此指標指定不同的名稱。 -
unit
– 指定此指標使用的單位,覆寫此指標的預設單位。您指定的單位必須是有效的 CloudWatch 指標單位,如 MetricDatum 中Unit
說明所列示。
-
-
jmx
區段也可以包含選用append_dimensions
欄位:
-
append_dimensions
- 選用。其他僅用於程序指標的維度。如果您指定此欄位,則除了使用append_dimensions
欄位中指定的維度 (用於代理程式收集的所有類型指標) 之外,也會使用您在此欄位指定的內容。
下列欄位僅適用於 Amazon EC2。
-
endpoint
– 要連線的 JMX 用戶端地址。格式是ip:port
。如果端點不是 localhost,則必須啟用密碼身分驗證和 SSL。 -
metrics_collection_interval
- 選用。指定收集程序指標的頻率,以覆寫組態檔案中agent
區段指定的全域metrics_collection_interval
。此值是以秒數指定。例如,指定每隔 10 秒收集 10 個原因指標,也就是將其設定為每 5 分鐘收集 300 個指定指標。
如果您將此值設為低於 60 秒,每個指標都將以高解析度指標進行收集。如需詳細資訊,請參閱高解析度指標。
如果使用密碼身分驗證或 SSL 啟用 JMX 以進行遠端存取,您可以使用下列欄位。
-
password_file
- 選用。指定密碼金鑰的 Java 屬性檔案。檔案必須是唯讀的,且僅限於執行 CloudWatch 代理程式的使用者。如果啟用密碼身分驗證,這需要與com.sun.management.jmxremote.password.file
屬性中提供的 JMX 密碼檔案中的項目相同的使用者名稱和密碼對。如果啟用 SSL,則需要keystore
和 的項目,truststore
且javax.net.ssl.trustStorePassword
分別對應至javax.net.ssl.keyStorePassword
和 。 -
username
– 如果啟用密碼身分驗證,請指定符合所提供密碼檔案中使用者名稱的使用者名稱。 -
keystore_path
– 如果啟用 SSL,請指定 Java 金鑰存放區的完整路徑,其中包含私有金鑰和公有金鑰的憑證。對應至javax.net.ssl.keyStore
屬性。 -
keystore_type
– 如果啟用 SSL,請指定要使用的金鑰存放區的類型。對應至javax.net.ssl.keyStoreType
屬性。 -
truststore_path
– 如果已啟用 SSL,請指定 Java 信任存放區的完整路徑,其中必須包含遠端 JMX 伺服器的公有憑證。對應至javax.net.ssl.trustStore
屬性。 -
truststore_type
– 如果啟用 SSL,請指定要使用的信任存放區的類型。對應至javax.net.ssl.trustStoreType
屬性。 -
remote_profile
- 選用。支援的 JMX 遠端設定檔是 TLS 搭配 SASL 設定檔:SASL/DIGEST-MD5
、SASL/PLAIN
和SASL/CRAM-MD5
。應為下列其中一項:SASL/PLAIN
、SASL/DIGEST-MD5
、TLS SASL/DIGEST-MD5
、、SASL/CRAM-MD5
TLS SASL/PLAIN
或TLS SASL/CRAM-MD5
-
realm
- 選用。遠端設定檔 所需的領域SASL/DIGEST-MD5
。 -
registry_ssl_enabled
– 如果已啟用 RMI 登錄驗證。如果 JVM 設定為 ,則設為 truecom.sun.management.jmxremote.registry.ssl=true
。 insecure
設定為true
,以在代理程式設定為非localhost 端點時選擇退出所需的驗證。
以下是 CloudWatch 代理程式組態檔案的 jmx
區段範例。
{ "metrics": { "metrics_collected": { "jmx": [ { "endpoint": "remotehost:1314", "jvm": { "measurement": [ "jvm.memory.heap.init", "jvm.memory.nonheap.used" ] }, "kafka": { "measurement": [ "kafka.request.count", { "name": "kafka.message.count", "rename": "KAFKA_MESSAGE_COUNT", "unit": "Count" } ] }, "username": "cwagent", "keystore_path": "/path/to/keystore", "keystore_type": "PKCS12", "truststore_path": "/path/to/truststore", "truststore_type": "PKCS12" }, { "endpoint": "localhost:1315", "kafka-producer": { "measurement": [ "kafka.producer.request-rate" ] }, "append_dimensions": { "service.name": "kafka/1" } } ] } } }
收集 JVM 指標
您可以使用 CloudWatch 代理程式來收集 Java 虛擬機器 (JVM) 指標。若要設定此項目,請在 CloudWatch 代理程式組態檔案的 jmx
區段中新增 jvm
區段。
可以收集以下指標。
指標 | 維度 | 描述 |
---|---|---|
|
【預設】 |
已載入類別的總數。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
已發生的垃圾回收總數。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
大約累積的垃圾回收經過時間。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
JVM 從作業系統請求用於堆積的初始記憶體量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
可用於堆積的記憶體數量上限。 單位:位元組 有意義的統計資料:上限 |
|
【預設】 |
目前的堆積記憶體用量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
保證可用於堆積的記憶體數量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
JVM 從作業系統請求的初始記憶體量,用於非堆積用途。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
可用於非堆積用途的記憶體數量上限。 單位:位元組 有意義的統計資料:最大值 |
|
【預設】 |
目前非堆積記憶體用量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
保證可用於非堆積用途的記憶體數量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
JVM 從作業系統請求記憶體集區的初始記憶體數量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
可用於記憶體集區的記憶體數量上限。 單位:位元組 有意義的統計資料:上限 |
|
【預設】、 |
目前的記憶體集區記憶體用量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
保證可用於記憶體集區的記憶體數量。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
目前的執行緒數目。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
JVM 指標的收集維度如下:
維度 | 描述 |
---|---|
【預設】 |
在 Amazon EC2 上,除非您使用 根據預設,在 Amazon EKS 上,k8s 相關內容也會發佈為指標維度 |
|
對於 對於 |
收集 Kafka 指標
您可以使用 CloudWatch 代理程式來收集 Apache Kafka 指標。若要設定此項,請在 CloudWatch 代理程式組態檔案的 jmx
區段內新增下列一或多個子區段。
使用
kafka
區段來收集 Kafka 代理程式指標。使用
kafka-consumer
區段來收集 Kafka 消費者指標。使用
kafka-producer
區段來收集 Kafka 生產者指標。
Kafka 代理程式指標
可針對 Kafka 代理程式收集下列指標。
指標 | 維度 | 描述 |
---|---|---|
|
【預設】 |
Kafka 代理程式接收的訊息數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
Kafka 代理程式收到的請求數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
導致失敗的 Kafka 代理程式請求數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
Kafka 代理程式為服務請求所花費的總時間。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
Kafka 代理程式為服務請求所花費的第 50 個百分位數。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
Kafka 代理程式為服務請求所花費的第 99 個百分位數時間。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
Kafka 代理程式為服務請求所花費的平均時間。 單位:毫秒 有意義的統計資料:平均 |
|
【預設】、 |
Kafka 代理程式接收或傳送的位元組數。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
等待中的請求數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
Kafka 代理程式上的分割區數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
離線的分割區數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
複寫不足的分割區數目。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
同步內複本的數量會縮減並展開操作。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
跟隨者和領導者複本之間訊息的最大延遲。 單位:無 有意義的統計資料:最大值 |
|
【預設】 |
代理程式上的作用中控制器數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
領導者選擇率。如果增加,則表示代理程式失敗。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
不乾淨的領導者選擇率。如果增加,則表示代理程式失敗。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
請求佇列的大小。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
日誌排清計數。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
日誌排清計數的第 50 個百分位數。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】 |
日誌排清計數的第 99 個百分位數。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
Kafka 代理程式指標的收集維度如下:
維度 | 描述 |
---|---|
【預設】 |
在 Amazon EC2 上,除非您使用 根據預設,在 Amazon EKS 上,k8s 相關內容也會發佈為指標維度 |
|
請求類型。可能值為 |
|
網路流量的方向。可能值為 |
|
同步內複本的操作類型。可能值為 |
Kafka 消費者指標
可以為 Kafka 消費者收集下列指標。
指標 | 維度 | 描述 |
---|---|---|
|
【預設】、 |
每秒所有主題的擷取請求數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
消費者落後於生產者的訊息數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
每秒所有主題耗用的平均位元組數。 單位:位元組 有意義的統計資料:平均 |
|
【預設】、 |
針對所有主題,每個請求擷取的位元組數。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
每秒所有主題使用的平均記錄數。 單位:無 有意義的統計資料:平均 |
|
【預設】、 |
每秒耗用的平均位元組數。 單位:位元組 有意義的統計資料:平均 |
|
【預設】、 |
每個請求擷取的位元組數。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
每秒耗用的平均記錄數。 單位:無 有意義的統計資料:平均 |
Kafka 消費者指標的收集維度如下:
維度 | 描述 |
---|---|
【預設】 |
在 Amazon EC2 上,除非您使用 根據預設,在 Amazon EKS 上,k8s 相關內容也會發佈為指標維度 |
|
用戶端的 ID。 |
|
Kafka 主題。 |
Kafka 生產者指標
可以為 Kafka 生產者收集下列指標。
指標 | 維度 | 描述 |
---|---|---|
|
【預設】、 |
I/O 執行緒等待準備好讀取或寫入的通訊端所花費的平均時間長度。 單位:無 有意義的統計資料:平均 |
|
【預設】、 |
每秒傳送至所有伺服器的平均傳出位元組數。 單位:位元組 有意義的統計資料:平均 |
|
【預設】、 |
平均請求延遲。 單位:毫秒 有意義的統計資料:平均 |
|
【預設】、 |
每秒傳送的平均請求數。 單位:無 有意義的統計資料:平均 |
|
【預設】、 |
每秒收到的回應數。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
主題每秒傳送的平均位元組數。 單位:位元組 有意義的統計資料:平均 |
|
【預設】、 |
主題之記錄批次的平均壓縮率。 單位:無 有意義的統計資料:平均 |
|
【預設】、 |
造成主題錯誤的每秒平均記錄傳送次數。 單位:無 有意義的統計資料:平均 |
|
【預設】、 |
為主題傳送的平均每秒重試記錄數。 單位:無 有意義的統計資料:平均 |
|
【預設】、 |
主題每秒傳送的平均記錄數。 單位:無 有意義的統計資料:平均 |
Kafka 生產者指標的收集維度如下:
維度 | 描述 |
---|---|
【預設】 |
在 Amazon EC2 上,除非您使用 根據預設,在 Amazon EKS 上,k8s 相關內容也會發佈為指標維度 |
|
用戶端的 ID。 |
|
Kafka 主題。 |
收集 Tomcat 指標
您可以使用 CloudWatch 代理程式來收集 Apache Tomcat 指標。若要設定此項目,請在 CloudWatch 代理程式組態檔案的 metrics_collected
區段中新增 tomcat
區段。
可以收集以下指標。
指標 | 維度 | 描述 |
---|---|---|
|
【預設】 |
作用中工作階段的數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
遇到的錯誤數目。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
總處理時間。 單位:毫秒 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
接收和傳送的位元組數。 單位:位元組 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
執行緒的數量。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
|
【預設】、 |
處理請求的時間上限。 單位:毫秒 有意義的統計資料:最大值 |
|
【預設】、 |
請求總數。 單位:無 有意義的統計資料:最小值、最大值、平均值 |
Tomcat 指標的收集維度如下:
維度 | 描述 |
---|---|
【預設】 |
在 Amazon EC2 上,除非您使用 根據預設,在 Amazon EKS 上,k8s 相關內容也會發佈為指標維度 |
|
|
|
流量方向。可能值為 |