Keycloak 資料庫指標

本文件涵蓋有關 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'

其他資訊可以在此處找到。

資料庫連線池

將 Keycloak 設定為使用固定大小的資料庫連線池。如需更多資訊,請參閱資料庫連線池概念

如果有很多執行緒在等待資料庫連線,增加資料庫連線池大小不一定是最佳選擇。這可能會使資料庫過載,進而成為瓶頸。請考慮以下選項

  • 使用選項 http-pool-max-threads 減少 HTTP 工作執行緒的數量,使其與可用的資料庫連線相符,從而減少 Keycloak 中的競爭和資源使用,並提高吞吐量。

  • 檢查在資料庫上執行哪些資料庫語句。例如,如果您看到很多關於擷取用戶端和群組的資訊,且 usersrealms 快取已滿,這可能表示是時候增加這些快取的大小,並查看是否可以減少資料庫負載。

指標 描述

agroal_available_count

閒置的資料庫連線。

agroal_active_count

正在進行交易中使用的資料庫連線。

agroal_awaiting_count

等待可用的資料庫連線的執行緒。

有關 Keycloak metrics 端點的更多資訊可以在此處找到。