全局标签
cache=<name>
-
缓存名称。
这是使用指标进行故障排除指南的一部分。
需要为 Keycloak 启用指标。 有关更多详细信息,请遵循通过指标获得洞察力指南。
收集指标的监控系统。
全局标签
cache=<name>
缓存名称。
使用这两个指标监控缓存中的条目数。 如果缓存是集群的,则每个条目都有一个所有者节点和零个或多个不同节点的备份副本。
将唯一条目大小指标求和,以获得集群条目总数。 |
指标 | 描述 |
---|---|
|
节点存储的近似条目数,包括备份副本。 |
|
节点存储的近似条目数,不包括备份副本。 |
以下指标监控缓存访问,例如读取、写入及其持续时间。
存储操作是写入操作,用于写入或更新缓存中存储的值。
指标 | 描述 |
---|---|
|
存储请求的总数。 |
|
所有存储请求的总持续时间。 |
当启用直方图时,可以使用百分位数 buckets。 这些对于创建热图很有用,但是,收集和公开百分位数 buckets 可能会对部署性能产生负面影响。 |
读取操作从缓存中读取值。 它分为两组,命中(如果找到值)和未命中(如果未找到值)。
指标 | 描述 |
---|---|
|
读取命中请求的总数。 |
|
所有读取命中请求的总持续时间。 |
|
读取未命中请求的总数。 |
|
所有读取未命中请求的总持续时间。 |
当启用直方图时,可以使用百分位数 buckets。 这些对于创建热图很有用,但是,收集和公开百分位数 buckets 可能会对部署性能产生负面影响。 |
移除操作从缓存中移除值。 它分为两组,命中(如果值存在)和未命中(如果值不存在)。
指标 | 描述 |
---|---|
|
移除命中请求的总数。 |
|
所有移除命中请求的总持续时间。 |
|
移除未命中请求的总数。 |
|
所有移除未命中请求的总持续时间。 |
当启用直方图时,可以使用百分位数 buckets。 这些对于创建热图很有用,但是,收集和公开百分位数 buckets 可能会对部署性能产生负面影响。 |
对于 |
读取和移除操作的命中率
可以使用表达式来计算 Prometheus 等系统中缓存的命中率。 例如,读取操作的命中率可以表示为
vendor_statistics_hit_times_seconds_count / (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_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)
驱逐是限制缓存大小的过程,当缓存满时,会移除一个条目,为要缓存的新条目腾出空间。 由于 Keycloak 在 users
、realms
和 authorization
中缓存数据库实体,因此数据库访问始终伴随着驱逐事件。
指标 | 描述 |
---|---|
|
驱逐事件的总数。 |
驱逐率
驱逐的快速增加和非常高的数据库 CPU 使用率意味着 users
或 realms
缓存对于平稳的 Keycloak 运行来说太小,因为数据需要非常频繁地从数据库重新加载,这会减慢响应速度。 如果有足够的内存可用,请考虑使用 CLI 选项 cache-embedded-users-max-count
或 cache-embedded-realms-max-count
增加最大缓存大小
写入和移除操作会持有锁,直到值在本地集群中以及远程站点中复制。
在健康的集群上,持有的锁数量应保持恒定,但死锁可能会产生暂时性的峰值。 |
指标 | 描述 |
---|---|
|
此节点当前持有的锁数量。 |
事务性缓存使用单阶段提交和两阶段提交协议来完成事务。 这些指标跟踪操作持续时间。
PESSMISTIC 锁定模式使用单阶段提交,并且不会创建提交请求。 |
在健康的集群中,回滚次数应保持为零。 死锁应该很少见,但它们会增加回滚次数。 |
指标 | 描述 |
---|---|
|
准备请求的总数。 |
|
所有准备请求的总持续时间。 |
|
回滚请求的总数。 |
|
所有回滚请求的总持续时间。 |
|
提交请求的总数。 |
|
所有提交请求的总持续时间。 |
当启用直方图时,可以使用百分位数 buckets。 这些对于创建热图很有用,但是,收集和公开百分位数 buckets 可能会对部署性能产生负面影响。 |
当节点加入或离开集群时,会发生状态传输。 这是平衡存储的数据并保证所需副本数所必需的。
此操作会增加资源使用率,并且会对整体性能产生负面影响。
指标 | 描述 |
---|---|
|
本地节点从其他节点请求的正在进行的事务段的数量。 |
|
本地节点从其他节点请求的正在进行的段的数量。 |
集群数据复制可能是主要的故障来源。 这些指标不仅报告响应时间,即复制更新所需的时间,还报告故障。
在健康的集群上,平均复制时间将保持稳定或只有很小的变化。 故障次数不应增加。 |
指标 | 描述 |
---|---|
|
成功复制的总数。 |
|
失败复制的总数。 |
|
在集群中复制数据所花费的平均时间,以毫秒为单位。 |
成功率
可以使用表达式来计算复制成功率
(vendor_rpc_manager_replication_count) / (vendor_rpc_manager_replication_count + vendor_rpc_manager_replication_failures)
返回到使用指标进行故障排除。