<infinispan>
<cache-container statistics="true">
<metrics gauges="true" histograms="false" name-as-tags="true" />
</cache-container>
</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 文档和Infinispan operator 文档中找到。
本节介绍用于监控 Infinispan 节点之间通信的指标,以识别可能的网络问题。
全局标签
cluster=<name>
集群名称。如果正在收集来自多个集群的指标,则此标签有助于识别它们所属的位置。
node=<node>
报告指标的节点的名称。
所有以 |
以下指标公开了远程请求的响应时间。响应时间是在两个节点之间测量的,包括处理时间。所有请求都通过这些指标进行测量,并且响应时间应在整个集群生命周期内保持稳定。
在健康的集群中,响应时间将保持稳定。响应时间的增加可能表明集群性能下降或节点负载过重。 |
标签
node=<node>
它标识发送方节点。
target_node=<node>
它标识接收方节点。
指标 | 描述 |
---|---|
|
到接收方节点的同步请求数。 |
|
到接收方节点的同步请求的总持续时间 |
当启用直方图时,可以使用百分位桶。这些对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
Infinispan 接收和发送的所有字节都由这些指标收集。此外,所有内部消息(如心跳)也被计算在内。它们允许计算每个节点当前使用的带宽。
指标名称取决于正在使用的 JGroups 传输协议。 |
指标 | 协议 | 描述 |
---|---|---|
|
|
节点接收的总字节数。 |
|
|
|
|
|
|
|
|
节点发送的总字节数。 |
|
|
|
|
|
监控线程池大小是一个很好的指标,表明节点负载过重。接收到的所有请求都会添加到线程池进行处理,当线程池已满时,请求将被丢弃。重传机制确保了可靠的通信,但会增加资源使用量。
在健康的集群中,线程池永远不应接近其最大大小(默认为 200 个线程)。 |
虚拟线程不可用线程池指标。当使用 OpenJDK 21 运行时,默认启用虚拟线程。 |
指标名称取决于正在使用的 JGroups 传输协议。默认的传输协议是 TCP。 |
指标 | 协议 | 描述 |
---|---|---|
|
|
线程池中当前线程数。 |
|
|
|
|
|
|
|
|
池中曾经同时存在的最大线程数。 |
|
|
|
|
|
流控制负责将消息发送者的速率调整为最慢接收者的速率。这是通过基于信用的系统实现的,其中每个发送者在发送时会减少其信用额度。当信用额度降至 0 以下时,发送者会阻止,并且仅在收到来自接收者的补充消息时才恢复发送消息。
以下指标显示了阻止的消息数和平均阻止时间。当值不为零时,可能表明接收者已过载,并可能降低集群性能。
每个节点都有两个独立的流控制协议,UFC
用于单播消息,MFC
用于多播消息。
健康的集群显示所有指标的值均为零。 |
指标 | 描述 |
---|---|
|
流控制阻止发送者发送单播消息的次数。 |
|
尝试发送单播消息时,流控制中的平均阻止时间(以毫秒为单位)。 |
|
流控制阻止发送者发送多播消息的次数。 |
|
尝试发送多播消息时,流控制中的平均阻止时间(以毫秒为单位)。 |
JGroups 提供可靠的消息传递。当消息在网络上丢失或接收者无法处理消息时,需要重传。重传会增加资源使用量,并且通常是系统过载的信号。
随机早期丢弃 (RED) 监控发送者队列。当队列几乎满时,消息将被丢弃,并且必须进行重传。它可以防止线程被满的发送者队列阻塞。
健康的集群显示所有指标的值均为零。 |
指标 | 描述 |
---|---|
|
重传消息的数量。 |
|
发送者丢弃的消息总数。 |
|
发送者丢弃的所有消息的百分比。 |
集群大小指标报告集群中存在的节点数。如果它不同,则可能表明节点正在加入、关闭,或者在最坏的情况下,正在发生网络分区。
健康的集群在所有节点中显示相同的值。 |
指标 | 描述 |
---|---|
|
集群中的节点数。 |
本节中的指标有助于监控 Infinispan 缓存的健康状况和集群复制。
全局标签
cache=<name>
缓存名称。
使用这两个指标监控缓存中的条目数。如果缓存是集群的,则每个条目都有一个所有者节点和零个或多个不同节点的备份副本。
将唯一条目大小指标相加即可获得集群条目总数。 |
指标 | 描述 |
---|---|
|
节点存储的近似条目数,包括备份副本。 |
|
节点存储的近似条目数,不包括备份副本。 |
以下指标监控缓存访问,例如读取、写入及其持续时间。
存储操作是一种写入操作,用于写入或更新存储在缓存中的值。
指标 | 描述 |
---|---|
|
存储请求的总数。 |
|
所有存储请求的总持续时间。 |
当启用直方图时,可以使用百分位桶。这些对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
读取操作从缓存中读取值。它分为两组,如果找到值则为命中,如果未找到则为未命中。
指标 | 描述 |
---|---|
|
读取命中请求的总数。 |
|
所有读取命中请求的总持续时间。 |
|
读取未命中请求的总数。 |
|
所有读取未命中请求的总持续时间。 |
当启用直方图时,可以使用百分位桶。这些对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
移除操作从缓存中移除值。它分为两组,如果值存在则为命中,如果值不存在则为未命中。
指标 | 描述 |
---|---|
|
移除命中请求的总数。 |
|
所有移除命中请求的总持续时间。 |
|
移除未命中请求的总数。 |
|
所有移除未命中请求的总持续时间。 |
当启用直方图时,可以使用百分位桶。这些对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
写入和移除操作会持有锁,直到该值在本地集群中以及远程站点中复制。
在健康的集群中,持有的锁的数量应保持恒定,但死锁可能会造成临时峰值。 |
指标 | 描述 |
---|---|
|
此节点当前持有的锁的数量。 |
事务缓存使用单阶段提交和两阶段提交协议来完成事务。这些指标跟踪操作持续时间。
PESSMISTIC 锁定模式使用单阶段提交,并且不创建提交请求。 |
在健康的集群中,回滚数应保持为零。死锁应该很少见,但它们会增加回滚数。 |
指标 | 描述 |
---|---|
|
准备请求的总数。 |
|
所有准备请求的总持续时间。 |
|
回滚请求的总数。 |
|
所有回滚请求的总持续时间。 |
|
提交请求的总数。 |
|
所有提交请求的总持续时间。 |
当启用直方图时,可以使用百分位桶。这些对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
当节点加入或离开集群时,会发生状态转移。这是平衡存储的数据并保证所需副本数所必需的。
此操作会增加资源使用量,并且会对整体性能产生负面影响。
指标 | 描述 |
---|---|
|
本地节点从其他节点请求的正在进行的事务段数。 |
|
本地节点从其他节点请求的正在进行的段数。 |
集群数据复制可能是主要的故障来源。这些指标不仅报告响应时间(即复制更新所需的时间),还报告故障。
在健康的集群中,平均复制时间将保持稳定或变化很小。故障次数不应增加。 |
指标 | 描述 |
---|---|
|
成功复制的总数。 |
|
失败复制的总数。 |
|
在集群中复制数据所花费的平均时间,以毫秒为单位。 |
成功率
可以使用表达式来计算复制成功率
(vendor_rpc_manager_replication_count) / (vendor_rpc_manager_replication_count + vendor_rpc_manager_replication_failures)
与集群数据复制类似,本节中的指标衡量将数据复制到其他站点所需的时间。
在健康的集群中,平均跨站点复制时间将保持稳定或变化很小。 |
标签
site=<name>
指示接收站点。
指标 | 描述 |
---|---|
|
跨站点请求的总数。 |
|
所有跨站点请求的总持续时间。 |
|
跨站点请求的总数。此指标更详细,具有每个站点的计数器。 |
|
所有跨站点请求的总持续时间。此指标更详细,具有每个站点的持续时间。 |
|
此节点处理的跨站点请求的总数。此指标更详细,具有每个站点的计数器。 |
|
站点状态。值为 1 表示在线。此值对 Infinispan CLI 命令 |
当启用直方图时,可以使用百分位桶。这些对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
返回到使用指标进行故障排除。