• Русский
  • Мониторинг

    Alauda Build of Keycloak предоставляет встроенные метрики, совместимые с Prometheus. Включение метрик позволяет отслеживать состояние, производительность и использование Keycloak в вашей observability stack.

    Включение метрик

    Метрики включаются путем установки параметра metrics-enabled в Keycloak CR:

    spec:
      additionalOptions:
        - name: metrics-enabled
          value: "true"

    После включения Keycloak предоставляет endpoint метрик на management-порту (по умолчанию: 9000), который настраивается через spec.httpManagement.port:

    • Внутри кластера: http://<keycloak-service-name>.<namespace>:9000/metrics
    • Из Pod: http://localhost:9000/metrics

    Management-порт отделен от основного HTTP/HTTPS-порта.

    Основные метрики

    Доступны следующие категории метрик:

    КатегорияПримеры метрикОписание
    JVMjvm_memory_used_bytes, jvm_gc_pause_secondsИспользование ресурсов Java Virtual Machine
    HTTPhttp_server_requests_seconds, http_server_active_requestsКоличество запросов, задержка и активные соединения
    Databaseagroal_active_connections, agroal_awaiting_connectionsИспользование пула соединений с базой данных
    Keycloak Eventskeycloak_logins_total, keycloak_login_errors_totalКоличество успешных и неуспешных аутентификаций по Realm

    Настройка сбора метрик Prometheus

    Добавьте следующую конфигурацию scrape в экземпляр Prometheus, чтобы собирать метрики Keycloak:

    scrape_configs:
      - job_name: keycloak
        static_configs:
          - targets:
              - <keycloak-service>:9000
        metrics_path: /metrics

    Если вы используете Prometheus Operator, создайте ServiceMonitor:

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: keycloak-metrics
      namespace: <namespace>
    spec:
      selector:
        matchLabels:
          app: keycloak
      endpoints:
        - port: management
          path: /metrics
          interval: 30s

    Пробы liveness и readiness

    Keycloak Operator автоматически настраивает пробы liveness и readiness. Вы можете изменить параметры проб в Keycloak CR:

    spec:
      livenessProbe:
        periodSeconds: 10
        failureThreshold: 3
      readinessProbe:
        periodSeconds: 10
        failureThreshold: 3

    Пробы используют management-endpoint http://<pod>:9000/health/live и http://<pod>:9000/health/ready.

    Health endpoints

    Keycloak предоставляет три health endpoint на management-порту:

    EndpointОписание
    /health/liveВозвращает UP, если процесс Keycloak выполняется
    /health/readyВозвращает UP, если Keycloak готов обслуживать запросы (база данных подключена, кэши инициализированы)
    /health/startedВозвращает UP после полного запуска Keycloak