Keycloak 数据库指标

本文档涵盖了有关 Keycloak 与数据库 Keycloak 连接的信息。

启用 Keycloak 指标

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

在 Kubernetes 集群中,使用 Keycloak 运算符,可以通过在 Keycloak CR 的 addionalOptions 中进行如下所示的设置来启用指标

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

可以在 此处 找到更多信息。

数据库连接池

配置 Keycloak 使用固定大小的数据库连接池。有关更多信息,请参阅 数据库连接池概念

如果有很多线程在等待数据库连接,增加数据库连接池的大小并不总是最好的选择。它可能会使数据库超载,从而成为瓶颈。请考虑以下替代方案

  • 使用选项 http-pool-max-threads 减少 HTTP 工作线程数量,以使其与可用的数据库连接相匹配,从而减少 Keycloak 中的争用和资源使用,并提高吞吐量。

  • 检查在数据库上执行的数据库语句。例如,如果你看到有关客户端和组的大量信息被提取,并且 usersrealms 缓存已满,这可能表明是时候增加这些缓存的大小并查看这是否会减少你的数据库负载。

指标 描述

agroal_available_count

空闲数据库连接。

agroal_active_count

在正在进行的事务中使用的数据库连接。

agroal_awaiting_count

等待数据库连接可用的线程。

可以在 此处 找到有关 Keycloak metrics 端点的更多信息。