外部 Infinispan 部署
本文件包含可用於監控您的部署效能的外部 Infinispan 指標的詳細資訊
已啟用 Infinispan 伺服器指標
Infinispan 在端點 /metrics
中公開指標。預設情況下,它們是啟用的。我們建議啟用屬性 name-as-tags
,因為它使指標名稱與快取名稱無關。
若要在 Infinispan 伺服器中設定指標,只需如下面的 XML 所示啟用即可。
<infinispan>
<cache-container statistics="true">
<metrics gauges="true" histograms="false" name-as-tags="true" />
</cache-container>
</infinispan>
在 Kubernetes 中使用 Infinispan Operator 時,可以使用具有自訂組態的 ConfigMap
來啟用指標。下面顯示一個範例。
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-config
data:
infinispan-config.yaml: >
infinispan:
cacheContainer:
metrics:
gauges: true
namesAsTags: true
histograms: false
apiVersion: infinispan.org/v1
kind: Infinispan
metadata:
name: infinispan
annotations:
infinispan.org/monitoring: 'true' (1)
spec:
configMapName: "cluster-config" (2)
1 | 啟用部署的監控 |
2 | 使用自訂組態設定 ConfigMap 名稱。 |
叢集和網路
本節描述對於監控 Infinispan 節點之間的通訊以識別可能的網路問題很有用的指標。
全域標籤
-
cluster=<名稱>
:叢集名稱。如果正在收集來自多個叢集的指標,則此標籤有助於識別它們的歸屬位置。 -
node=<節點>
:報告指標的節點名稱。
回應時間
以下指標公開遠端請求的回應時間。回應時間是在兩個節點之間測量的,包括處理時間。所有請求都由這些指標測量,並且回應時間在整個叢集生命週期中應保持穩定。
在健康的叢集中,回應時間將保持穩定。回應時間的增加可能表示叢集已降級或節點負載過重。 |
標籤
-
node=<節點>
:它識別傳送器節點。 -
target_node=<節點>
:它識別接收器節點。
指標 | 描述 |
---|---|
|
同步請求到接收器節點的次數。 |
|
同步請求到接收器節點的總持續時間 |
啟用直方圖時,可以使用百分位數儲存桶。這些對於建立熱圖很有用,但是,收集和公開百分位數儲存桶可能會對部署效能產生負面影響。 |
頻寬
Infinispan 接收和傳送的所有位元組都由這些指標收集。此外,也會計算所有內部訊息(如心跳)。它們允許計算每個節點目前使用的頻寬。
指標名稱取決於正在使用的 JGroups 傳輸協定。 |
指標 | 協定 | 描述 |
---|---|---|
|
|
節點接收的位元組總數。 |
|
|
|
|
|
|
|
|
節點傳送的位元組總數。 |
|
|
|
|
|
執行緒集區
監控執行緒集區大小是一個很好的指標,可以顯示節點是否負載過重。接收到的所有請求都會新增到執行緒集區以進行處理,並且當執行緒集區已滿時,請求將被捨棄。重新傳輸機制可確保可靠的通訊,並增加資源使用量。
在健康的叢集中,執行緒集區絕不應接近其最大大小(預設情況下為 200 個執行緒)。 |
虛擬執行緒不提供執行緒集區指標。 |
指標名稱取決於正在使用的 JGroups 傳輸協定。 |
指標 | 協定 | 描述 |
---|---|---|
|
|
執行緒集區中的目前執行緒數。 |
|
|
|
|
|
|
|
|
集區中曾經同時存在過的最大執行緒數。 |
|
|
|
|
|
流量控制
流量控制負責將訊息傳送器的速率調整為一段時間內最慢接收器的速率。這是透過基於點數的系統來實作的,其中每個傳送器在傳送時會遞減其點數。當點數低於 0 時,傳送器會被封鎖,並且只有在接收器收到補充訊息時,才會繼續傳送訊息。
以下指標顯示封鎖訊息的數量和平均封鎖時間。當值不為零時,可能表示接收器過載,並可能降低叢集效能。
每個節點都有兩個獨立的流量控制協定,UFC
用於單點傳播訊息,MFC
用於多點傳播訊息。
健康的叢集會顯示所有指標的值為零。 |
指標 | 描述 |
---|---|
|
流量控制封鎖傳送器進行單點傳播訊息傳送的次數。 |
|
嘗試傳送單點傳播訊息時,在流量控制中封鎖的平均時間 (以毫秒為單位)。 |
|
流量控制封鎖傳送器進行多點傳播訊息傳送的次數。 |
|
嘗試傳送多點傳播訊息時,在流量控制中封鎖的平均時間 (以毫秒為單位)。 |
重新傳輸
JGroups 提供可靠的訊息傳遞。當訊息在網路上被丟棄,或接收器無法處理訊息時,需要重新傳輸。重新傳輸會增加資源使用量,並且通常是系統過載的訊號。
隨機早期捨棄 (RED) 會監控傳送器佇列。當佇列幾乎已滿時,會捨棄訊息,並且必須進行重新傳輸。它可以防止執行緒被已滿的傳送器佇列封鎖。
健康的叢集會顯示所有指標的值為零。 |
指標 | 描述 |
---|---|
|
重新傳輸的訊息數。 |
|
傳送器捨棄的訊息總數。 |
|
傳送器捨棄的所有訊息的百分比。 |
網路分割
叢集大小
叢集大小指標會報告叢集中存在的節點數。如果它們不同,則可能表示節點正在加入、關機,或者在最糟糕的情況下,正在發生網路分割。
健康的叢集在所有節點中顯示相同的值。 |
指標 | 描述 |
---|---|
|
叢集中的節點數。 |
Infinispan 快取
本節中的指標有助於監控 Infinispan 快取健全狀況和叢集複寫。
全域標籤
-
cache=<名稱>
:快取名稱。
大小
使用這兩個指標監控快取中的項目數。如果快取已叢集化,則每個項目都有一個擁有者節點和零個或多個不同節點的備份複本。
將唯一條目大小指標加總,以取得叢集的條目總數。 |
指標 | 描述 |
---|---|
|
節點儲存的近似條目數量,包括備份副本。 |
|
節點儲存的近似條目數量,不包括備份副本。 |
資料存取
下列指標監控快取存取,例如讀取、寫入及其持續時間。
儲存
儲存操作是一種寫入操作,用於寫入或更新快取中儲存的值。
指標 | 描述 |
---|---|
|
儲存請求的總數。 |
|
所有儲存請求的總持續時間。 |
啟用直方圖時,可以使用百分位數儲存桶。這些對於建立熱圖很有用,但是,收集和公開百分位數儲存桶可能會對部署效能產生負面影響。 |
讀取
讀取操作會從快取中讀取一個值。它分為兩組,如果找到值則為命中,如果未找到則為未命中。
指標 | 描述 |
---|---|
|
讀取命中請求的總數。 |
|
所有讀取命中請求的總持續時間。 |
|
讀取未命中請求的總數。 |
|
所有讀取未命中請求的總持續時間。 |
啟用直方圖時,可以使用百分位數儲存桶。這些對於建立熱圖很有用,但是,收集和公開百分位數儲存桶可能會對部署效能產生負面影響。 |
移除
移除操作會從快取中移除一個值。它分為兩組,如果值存在則為命中,如果值不存在則為未命中。
指標 | 描述 |
---|---|
|
移除命中請求的總數。 |
|
所有移除命中請求的總持續時間。 |
|
移除未命中請求的總數。 |
|
所有移除未命中請求的總持續時間。 |
啟用直方圖時,可以使用百分位數儲存桶。這些對於建立熱圖很有用,但是,收集和公開百分位數儲存桶可能會對部署效能產生負面影響。 |