Java 管理延伸 (JMX) MBean 的特定欄位
當在「屬性資訊」視窗中指定 JMX 屬性群組的度量名稱語法時,該語法必須遵循特定規則。
JMX 屬性群組的度量名稱語法包含以句點區隔的記號。記號會形成主要值,並可選擇性形成次要值:
- 主要值:直接從特定表格列的 MBean 或「通知」中取得的值。從 MBean 取得的主要值是從 MBean 屬性或 MBean 作業呼叫(方法呼叫)取得。從「通知」取得的主要值是從「通知」物件上的欄位或方法呼叫取得。主要值可以是初始類型,或者可以是 Java™ 物件。
- 次要值:透過進一步處理主要值或其他次要值取得的值。次要值是在內部對引擎進行處理,且不包括對 JMX 伺服器的呼叫。如果主要值(或其他次要值)是 Java 物件,則次要值是從該物件提取公用欄位的結果。次要值亦可以是該物件上方法呼叫的結果。此類次要值是使用主要(或其他次要)Java 物件的 Java 內部檢查所取得。如果主要值(或其他次要值)是 MBean 名稱格式的「Java 字串」,則次要值可以是網域。次要值亦可以是組成 MBean 名稱的任意內容。
下列語法說明度量名稱欄位的格式:
Metric Name = PrimaryValue [ .SecondaryValue ]
PrimaryValue = Attribute.attributeName |
Method.methodName |
Domain |
Property.propertyName |
Field.fieldName |
Name
SecondaryValue = Field.fieldName |
Method.methodName |
Domain |
Property.propertyName |
Explode |
ElementCount propertyName = MBean ObjectName 中索引鍵內容的名稱
attributeName = MBean 屬性的名稱
methodName = MBean 的零引數作業或「通知」或其他 Java 物件的零引數方法。
methodName(argument) = MBean 的單一引數作業或「通知」或其他 Java 物件的單一引數方法。此
引數會以字串形式傳遞至方法。fieldName =「通知」或其他 Java 物件中公用實例變數的名稱
notificationMethod =「通知」物件的公用零引數方法的名稱透過在度量名稱定義中僅包含主要值,所收集的資料可以是下列任何項目: - MBean 網域
- MBean 字串值
- MBean 名稱的索引鍵內容
- MBean 屬性上的數值或字串屬性值(包括其他 MBean 的完整名稱)。從 MBean 作業傳回的數值或字串回覆值。
- 「通知」物件中的數值或字串公用實例變數的值
- 從「通知」作業傳回的數值或字串回覆值。
透過將次要值新增至度量定義,您可以往下探查到 Java 物件的主要值。此外,您還可以啟動公用方法或提取公用實例變數。
透過將次要值新增至度量定義中的其他次要值,您可以往下探查到次要值物件。您可以繼續往下探查到 MBean 或「通知」內的巢狀物件。
組成主要及次要值的記號可以是關鍵字或名稱。在大部分情況下,關鍵字記號後面跟著名稱記號。下表顯示部分範例:
| 度量名稱樣本 | 屬性群組類型 | 傳回的資料說明 |
|---|---|---|
網域 |
MBean | MBean 的網域部分(冒號之前的部分)。 |
Name
|
MBean | MBean 的完整字串表示法。 |
Attribute.serverVendor |
MBean | MBean 屬性 serverVendor。 |
Method.getHeapSize |
MBean | 由 MBean 上 getHeapSize() 所傳回的值。 |
Property.j2eeType |
MBean | 從 MBean 名稱擷取的 j2eeType 值。 |
Field.Message |
事件(通知) | 通知中的訊息欄位。 |
關鍵字
Attribute、Method 及 Field 可傳回包含其他資料的 Java 物件。您可以透過附加次要值定義,在那些物件上執行作業。其他範例:
| 度量名稱樣本 | 屬性群組類型 | 傳回的資料說明 |
|---|---|---|
| Attribute.deployedObject.Method.getName | MBean | 從 MBean 取得 deployedObject 屬性,並取得 getName() 方法的結果。 |
| Attribute.eventProvider.Method. getException.Method.getDescription |
MBean | 有三層含意:假設名為 eventProvider 的屬性是具有 getException() 方法的物件。此方法會傳回具有 getDescription() 方法的物件。會呼叫該方法,並將回覆值置於直欄中。 |
| Attribute.HeapMemoryUsage.Method. get(used) |
MBean | 從 MBean 取得 HeapMemoryUsage 屬性,並取得 get(String value) 方法的結果。所使用的字串會作為引數傳遞至方法。僅可以提供一個引數,且必須為文字字串值。 它顯示如何從開啟的 MBean 複合資料結構收集資料。 |
如果前一個值傳回 MBean 名稱格式的字串,則
Domain 及 Property
可用作次要值中的關鍵字。例如:
| 度量名稱樣本 | 屬性群組類型 | 傳回的資料說明 |
|---|---|---|
Attribute.jdbcDriver.Property.name |
MBean | 屬性 jdbcDriver 會傳回 MBean 名稱,而索引鍵內容、名稱則擷取自 MBean 名稱。 |
Attribute.jdbcDriver.Domain |
MBean | 屬性 jdbcDriver 會傳回 MBean 名稱,而網域擷取自 MBean 名稱。 |
ElementCount 及 Explode 關鍵字會對資料陣列或集合執行作業。ElementCount– 傳回陣列中的元素數目。Explode– 將一列展開為數列,每個陣列元素有一個新橫列。
每一個關鍵字的範例:
| 度量名稱樣本 | 屬性群組類型 | 傳回的資料說明 |
|---|---|---|
| Attribute.deployedObjects.ElementCount | MBean | MBean 屬性 deployedObjects 是一個陣列,且此直欄將包含陣列中的元素數目。 |
| Attribute.deployedObjects.Explode. MBean.Property.j2eeType |
MBean | 導致表格中已部署物件的每個元素都具有一個橫列。此直欄包含已部署物件的 j2eeType。 |
| Attribute.SystemProperties.Method. values.Explode.Method.get(key) |
MBean | 讓您可為開啟之 MBean 表格式資料結構中的每一個項目,取得一個新的橫列。每一個表格式資料結構都包含複合資料結構,以及傳回的名稱為 key 的項目。 |