Keycloak JVM 指标

本文档介绍了有关 Keycloak 的关键 JVM 指标的信息,用于观察 Keycloak 的性能。

启用 Keycloak 指标

Keycloak 在管理接口端点 /metrics 上公开指标。 要启用,请使用构建时选项 --metrics-enabled=true

在 Kubernetes 集群中,使用 Keycloak Operator,可以通过 Keycloak CR 中的 addionalOptions 启用指标,如下所示

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  labels:
    app: keycloak
  name: keycloak
spec:
  additionalOptions:
    - name: metrics-enabled
      value: 'true'

可以在 这里 找到更多信息。

JVM 信息

指标 描述

jvm_info_total

有关 JVM 的信息,例如版本、运行时和供应商。

堆内存使用情况

指标 描述

jvm_memory_committed_bytes

JVM 已承诺用于的内存量,反映分配的内存中保证可用于 JVM 使用的部分。

jvm_memory_used_bytes

JVM 当前使用的内存量,表示应用程序和 JVM 内部使用的实际内存消耗。

垃圾回收指标

指标 描述

jvm_gc_pause_seconds_max

JVM 由于特定原因而经历的垃圾回收暂停的最大持续时间(以秒为单位),这有助于您快速区分不同类型的 GC(次要、主要)暂停。

jvm_gc_pause_seconds_sum

垃圾回收暂停的总累计时间,表示 GC 暂停对 JVM 中应用程序性能的影响。

jvm_gc_pause_seconds_count

统计垃圾回收暂停事件的总数,有助于评估 JVM 中 GC 暂停的频率。

jvm_gc_overhead

用于垃圾回收的 CPU 时间百分比,表示 GC 对 JVM 中应用程序性能的影响。 它指的是用于执行垃圾回收 (GC) 操作的总 CPU 处理时间的比例,而不是运行应用程序代码或执行其他任务。 此指标有助于确定 GC 引入的开销量,从而影响 Keycloak JVM 的整体性能。

有关 Keycloak metrics 端点的更多信息,请参见 这里