全局标签
cluster=<name>
-
集群名称。如果正在收集来自多个集群的指标,则此标签有助于识别它们所属的集群。
node=<node>
-
报告指标的节点名称。
这是 使用指标进行故障排除 指南的一部分。
需要为 Keycloak 启用指标。请遵循 使用指标获取洞察力 指南了解更多详情。
一个收集指标的监控系统。
部署多个 Keycloak 节点可以实现负载在它们之间进行分配,但这需要节点之间的通信。本节介绍的指标可用于监控 Keycloak 之间的通信,以便识别可能的故障。
这仅适用于单站点部署。当使用多站点时,如 多站点部署 中所述,Keycloak 节点不会集群在一起,因此它们之间没有直接通信。 |
全局标签
cluster=<name>
集群名称。如果正在收集来自多个集群的指标,则此标签有助于识别它们所属的集群。
node=<node>
报告指标的节点名称。
所有以 |
以下指标公开了远程请求的响应时间。响应时间是在两个节点之间测量的,包括处理时间。所有请求都通过这些指标进行测量,并且在集群生命周期中,响应时间应保持稳定。
在健康的集群中,响应时间将保持稳定。响应时间增加可能表明集群性能下降或节点负载过重。 |
标签
node=<node>
它标识发送方节点。
target_node=<node>
它标识接收方节点。
指标 | 描述 |
---|---|
|
到接收方节点的同步请求数。 |
|
到接收方节点的同步请求的总持续时间 |
当启用直方图时,可以使用百分位桶。这些桶对于创建热图很有用,但是,收集和公开百分位桶可能会对部署性能产生负面影响。 |
Keycloak 接收和发送的所有字节都由这些指标收集。此外,所有内部消息(如心跳)也被计算在内。它们允许计算每个节点当前使用的带宽。
指标名称取决于正在使用的 JGroups 传输协议。 |
指标 | 协议 | 描述 |
---|---|---|
|
|
节点接收的总字节数。 |
|
|
|
|
|
|
|
|
节点发送的总字节数。 |
|
|
|
|
|
监控线程池大小是一个很好的指标,表明节点负载过重。所有接收到的请求都添加到线程池中进行处理,当线程池满时,请求将被丢弃。重传机制确保了可靠的通信,但会增加资源使用量。
在健康的集群中,线程池永远不应接近其最大大小(默认情况下为 200 个线程)。 |
线程池指标不适用于虚拟线程。当使用 OpenJDK 21 运行时,默认启用虚拟线程。 |
指标名称取决于正在使用的 JGroups 传输协议。默认传输协议是 TCP。 |
指标 | 协议 | 描述 |
---|---|---|
|
|
线程池中当前的线程数。 |
|
|
|
|
|
|
|
|
池中曾经同时存在的最大线程数。 |
|
|
|
|
|
流控制负责随着时间的推移将消息发送者的速率调整为最慢接收者的速率。这是通过基于信用的系统实现的,其中每个发送者在发送时都会减少其信用。当信用降至 0 以下时,发送者会阻塞,并且仅在收到来自接收者的补充消息时才恢复发送消息。
以下指标显示了阻塞消息的数量和平均阻塞时间。当值不为零时,可能表示接收方过载并可能降低集群性能。
每个节点都有两个独立的流控制协议,UFC
用于单播消息,MFC
用于多播消息。
健康的集群在所有指标中都显示零值。 |
指标 | 描述 |
---|---|
|
流控制阻塞发送者发送单播消息的次数。 |
|
尝试发送单播消息时,流控制中平均阻塞时间(以毫秒为单位)。 |
|
流控制阻塞发送者发送多播消息的次数。 |
|
尝试发送多播消息时,流控制中平均阻塞时间(以毫秒为单位)。 |
JGroups 提供可靠的消息传递。当消息在网络上丢失或接收者无法处理消息时,需要进行重传。重传会增加资源使用量,通常是系统过载的信号。
随机早期丢弃 (RED) 监控发送者队列。当队列几乎满时,消息将被丢弃,并且必须发生重传。它可以防止线程被满的发送者队列阻塞。
健康的集群在所有指标中都显示零值。 |
指标 | 描述 |
---|---|
|
重传消息的数量。 |
|
发送者丢弃的消息总数。 |
|
发送者丢弃的所有消息的百分比。 |
返回 使用指标进行故障排除 或继续 单站点部署的嵌入式 Infinispan 指标。