5.7. 单一站点部署的嵌入式 Infinispan 指标


使用指标来监控缓存健康和集群复制。

这是使用指标进行故障排除 一章的一部分。

5.7.1. 先决条件

  • 需要为红帽构建的 Keycloak 启用指标。如需更多详细信息 ,请参阅指标数据 的见解章节。
  • 一个监控系统收集指标数据。

5.7.2. 指标

全局标签

cache=<name>
缓存名称。

5.7.2.1. Size

使用这两个指标监控缓存中的条目数量。如果集群缓存,每个条目都有一个所有者节点,以及不同节点的零个或多个备份副本。

提示

总和唯一的条目大小指标,以获取集群总数。

Expand
指标描述

vendor_statistics_approximate_entries

节点存储的条目数量,包括备份副本。

vendor_statistics_approximate_entries_unique

节点存储的大约数量,不包括备份副本。

5.7.2.2. 数据访问

以下指标监控缓存访问,如读取、写入及其持续时间。

5.7.2.2.1. 存储

存储操作是一个写入操作,用于写入或更新存储在缓存中的值。

Expand
指标描述

vendor_statistics_store_times_seconds_count

存储请求的总数。

vendor_statistics_store_times_seconds_sum

所有存储请求的总持续时间。

注意

启用直方图后,将有百分比的存储桶可用。它们可用于创建 heat 映射,但收集和公开百分比存储桶可能会对部署性能造成负面影响。

5.7.2.2.2. 读取

读取操作从缓存中读取值。它被分成两个组,如果找到了值,则按 键,如果未找到,则未命中。

Expand
指标描述

vendor_statistics_hit_times_seconds_count

读取点击请求的总数。

vendor_statistics_hit_times_seconds_sum

所有读取点击请求的持续时间。

vendor_statistics_miss_times_seconds_count

读取丢失请求的总数。

vendor_statistics_miss_times_seconds_sum

所有读取丢失请求的持续时间。

注意

启用直方图后,将有百分比的存储桶可用。它们可用于创建 heat 映射,但收集和公开百分比存储桶可能会对部署性能造成负面影响。

5.7.2.2.3. 删除

删除操作从缓存中删除值。它将分成两个组,一个点击(如果存在值)和miss (如果值不存在)。

Expand
指标描述

vendor_statistics_remove_hit_times_seconds_count

删除 hits 请求的总数。

vendor_statistics_remove_hit_times_seconds_sum

所有删除 hits 请求的总持续时间。

vendor_statistics_remove_miss_times_seconds_count

删除丢失的请求总数。

vendor_statistics_remove_miss_times_seconds_sum

所有删除丢失请求的持续时间。

注意

启用直方图后,将有百分比的存储桶可用。它们可用于创建 heat 映射,但收集和公开百分比存储桶可能会对部署性能造成负面影响。

提示

对于用户 和域 缓存,数据库无效转换为删除操作。这些指标是修改数据库实体的频率的良好指示符,因此从缓存中删除了数据库实体。

读和删除操作的命中率

表达式可用于计算 Prometheus 等系统中缓存的命中率。例如,读操作的点击比率可以表示为:

vendor_statistics_hit_times_seconds_count
/
(vendor_statistics_hit_times_seconds_count
 + vendor_statistics_miss_times_seconds_count)
Copy to Clipboard Toggle word wrap

读/写比率

一个表达式可用于使用上面的指标计算缓存的读写比率:

(vendor_statistics_hit_times_seconds_count
 + vendor_statistics_miss_times_seconds_count)
/
(vendor_statistics_hit_times_seconds_count
 + vendor_statistics_miss_times_seconds_count
 + vendor_statistics_remove_hit_times_seconds_count
 + vendor_statistics_remove_miss_times_seconds_count
 + vendor_statistics_store_times_seconds_count)
Copy to Clipboard Toggle word wrap
5.7.2.2.4. Eviction

驱除是限制缓存大小的流程,并在满时删除条目,以便缓存新条目。当红帽构建的 Keycloak 将数据库实体缓存 用户 和授权 时,数据库访问总是继续进行驱除事件。

Expand
指标描述

vendor_statistics_evictions

驱除事件总数。

驱除率

快速增加驱除和非常高的数据库 CPU 使用量 意味着用户 或域 缓存对于平滑的红帽 Keycloak 操作而言太小,因为数据需要从数据库重新加载,这会减慢响应速度。如果有足够的内存可用,请考虑使用 CLI 选项 cache-embedded-users-max-countcache-embedded-realms-max-count来增加最大缓存大小

5.7.2.3. 锁定

写入和删除操作会保存锁,直到值在本地集群中复制并复制到远程站点。

提示

在健康的集群中,锁定的数量应该保持恒定的状态,但死锁可能会创建临时激增。

Expand
指标描述

vendor_lock_manager_number_of_locks_held

此节点当前持有的锁定数。

5.7.2.4. Transactions

事务缓存同时使用 One-Phase-Commit 和 Two-Phase-Commit 协议来完成事务。这些指标跟踪操作持续时间。

注意

PESSMISTIC 锁定模式使用 One-Phase-Commit,不创建提交请求。

提示

在健康的集群中,回滚的数量应该保持零。死锁应该比较罕见,但会增加回滚数量。

Expand
指标描述

vendor_transactions_prepare_times_seconds_count

准备请求总数。

vendor_transactions_prepare_times_seconds_sum

所有准备请求的总持续时间。

vendor_transactions_rollback_times_seconds_count

回滚请求总数。

vendor_transactions_rollback_times_seconds_sum

所有回滚请求的总持续时间。

vendor_transactions_commit_times_seconds_count

提交请求的总数。

vendor_transactions_commit_times_seconds_sum

所有提交请求的总持续时间。

注意

启用直方图后,将有百分比的存储桶可用。它们可用于创建 heat 映射,但收集和公开百分比存储桶可能会对部署性能造成负面影响。

5.7.2.5. 状态传输

当节点加入或离开集群时,会发生状态转移。需要平衡存储的数据并保证所需的副本数。

此操作会增加资源使用量,它会影响整体性能。

Expand
指标描述

vendor_state_transfer_manager_inflight_transactional_segment_count

来自其他节点的本地节点的 in-flight 事务片段数。

vendor_state_transfer_manager_inflight_segment_transfer_count

从其他节点请求的本地节点的数量。

5.7.2.6. 集群数据复制

集群数据复制可以是故障的主要来源。这些指标不仅报告响应时间,即复制更新所需的时间,还要报告故障。

提示

在健康的集群中,平均复制时间为稳定或稍有不同。不应增加的故障数量。

Expand
指标描述

vendor_rpc_manager_replication_count

成功复制总数。

vendor_rpc_manager_replication_failures

失败的复制总数。

vendor_rpc_manager_average_replication_time

在集群中复制数据的平均时间(以毫秒为单位)。

成功比率

表达式可用于计算复制成功比率:

(vendor_rpc_manager_replication_count)
/
(vendor_rpc_manager_replication_count
 + vendor_rpc_manager_replication_failures)
Copy to Clipboard Toggle word wrap

5.7.3. 后续步骤

使用指标返回到故障排除

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat