Keycloak Metrics

Keycloak exposes metrics at /auth/metrics on port 9000. These measurements describe authentication processing, request handling, database connections, caches, clustering and runtime resource usage.

Where a table uses braces, each listed suffix identifies a separate metric. For example, http_client_requests_seconds_\{count,sum,max} represents the count, total duration and maximum duration of requests.

JVM and process

Memory and thread labels identify the resource being measured. CPU usage and GC overhead are ratios.

Metric Type and unit Labels Meaning

jvm_info_total

Constant information counter

version, vendor, runtime

JVM identity.

jvm_classes_loaded_classes

Gauge, classes

None

Classes currently loaded.

jvm_classes_loaded_count_classes_total

Counter, classes

None

Classes loaded since JVM start.

jvm_classes_unloaded_classes_total

Counter, classes

None

Classes unloaded since JVM start.

jvm_memory_used_bytes

Gauge, bytes

area, id

Memory used in each pool.

jvm_memory_committed_bytes

Gauge, bytes

area, id

Memory committed to each pool.

jvm_memory_max_bytes

Gauge, bytes

area, id

Maximum pool capacity; may be undefined.

jvm_buffer_count_buffers

Gauge, buffers

id

Buffers in each buffer pool.

jvm_buffer_memory_used_bytes

Gauge, bytes

id

Buffer-pool memory usage.

jvm_buffer_total_capacity_bytes

Gauge, bytes

id

Buffer-pool capacity.

jvm_threads_live_threads

Gauge, threads

None

Live platform threads.

jvm_threads_daemon_threads

Gauge, threads

None

Daemon platform threads.

jvm_threads_peak_threads

Gauge, threads

None

Peak live thread count.

jvm_threads_states_threads

Gauge, threads

state

Platform threads by state.

jvm_threads_started_threads_total

Counter, threads

None

Threads started.

jvm_gc_max_data_size_bytes

Gauge, bytes

None

Maximum long-lived heap size.

jvm_gc_live_data_size_bytes

Gauge, bytes

None

Long-lived heap occupancy after GC.

jvm_gc_memory_allocated_bytes_total

Counter, bytes

None

Heap allocation tracked through GC notifications.

jvm_gc_memory_promoted_bytes_total

Counter, bytes

None

Bytes promoted to long-lived memory; generational collectors.

jvm_gc_pause_seconds_count

Timer count

gc, action, cause

GC pauses recorded.

jvm_gc_pause_seconds_sum

Timer total, seconds

Same

Time spent in GC pauses.

jvm_gc_pause_seconds_max

Gauge, seconds

Same

Rolling maximum pause.

jvm_gc_concurrent_phase_time_seconds_count

Timer count

gc, action, cause

Concurrent GC phases recorded, when reported.

jvm_gc_concurrent_phase_time_seconds_sum

Timer total, seconds

Same

Concurrent GC phase duration.

jvm_gc_concurrent_phase_time_seconds_max

Gauge, seconds

Same

Rolling maximum concurrent phase duration.

jvm_memory_usage_after_gc

Gauge, ratio 0-1

area, pool

Long-lived heap occupancy after garbage collection.

jvm_gc_overhead

Gauge, ratio 0-1

None

Recent fraction of elapsed time spent in GC.

process_uptime_seconds

Gauge, seconds

None

JVM uptime.

process_start_time_seconds

Gauge, Unix seconds

None

JVM start time.

system_cpu_count

Gauge, processors

None

Processors available to the JVM.

system_cpu_usage

Gauge, ratio 0-1

None

Recent system CPU usage.

process_cpu_usage

Gauge, ratio 0-1

None

Recent JVM process CPU usage.

process_cpu_time_ns_total

Counter, nanoseconds

None

Process CPU time.

system_load_average_1m

Gauge, load

None

One-minute system load average.

process_files_open_files

Gauge, files

None

Open process file descriptors.

process_files_max_files

Gauge, files

None

Maximum permitted file descriptors.

HTTP requests

Request timers use method, uri, status, and outcome. Connection and traffic measurements identify the listener with server_port.

Metric Type and unit Meaning

http_server_requests_seconds_count

Timer count

Completed requests.

http_server_requests_seconds_sum

Timer total, seconds

Total processing time.

http_server_requests_seconds_max

Gauge, seconds

Rolling maximum request duration.

http_server_active_requests

Gauge, requests

Requests in progress.

http_server_active_connections

Gauge, connections

Open HTTP server connections.

http_server_errors_total

Counter, exceptions

Network exceptions, labelled by server_port and exception class.

http_server_bytes_read_count

Summary count

Read observations.

http_server_bytes_read_sum

Summary total, bytes

Received traffic.

http_server_bytes_read_max

Gauge, bytes

Rolling largest read observation.

http_server_bytes_written_count

Summary count

Write observations.

http_server_bytes_written_sum

Summary total, bytes

Sent traffic.

http_server_bytes_written_max

Gauge, bytes

Rolling largest write observation.

Connections, messaging, and resource pools

These measurements describe the connections, clients, messaging addresses, and resource pools used by the service. In metric names, <poolType> identifies the resource-pool type. Active-connection timers measure connections that are still open.

Metrics Type / unit Labels / activity Meaning

http_server_connections_seconds_\{count,sum,max}

Long-task timer

server_port

Open connection count and elapsed lifetimes.

http_server_websocket_connections_seconds_\{count,sum,max}

Long-task timer

uri; WebSocket upgrades

Active server WebSocket lifetimes.

http_server_push_total

Counter, responses

uri, method, status, outcome; HTTP push

Server pushes.

http_client_requests_seconds_\{count,sum,max}

Timer

clientName, address, method, uri, status, outcome; named HTTP client

Outbound request duration.

http_client_queue_delay_seconds_\{count,sum,max}

Timer

clientName; Same client or pool

Client queue wait.

http_client_queue_size, http_client_pending

Gauges, requests

clientName; Same client or pool

Queued requests and requests waiting for a response.

http_client_websocket_connections

Gauge, connections

clientName, address; client WebSockets

Open outbound WebSockets.

http_client_active_connections

Gauge, connections

clientName; client

Open client TCP connections.

http_client_connections_seconds_\{count,sum,max}

Long-task timer

clientName; Same client or pool

Active client connection lifetimes.

http_client_bytes_read_\{count,sum,max}, http_client_bytes_written_\{count,sum,max}

Summaries, observation count / bytes

clientName; Same client or pool

Outbound client’s received/sent bytes.

http_client_errors_total

Counter, exceptions

clientName, class; network exceptions

Client transport errors.

vertx_http_connections_current, vertx_http_connections_max

Gauges, connections

When HTTP connection tracking initializes

Current connections and admission limit.

vertx_http_connections_rejected_total

Counter, connections

HTTP connection tracker

Rejected incoming connections.

eventBus_published_total, eventBus_sent_total

Counters, messages

address; non-internal event-bus activity

Published and point-to-point messages.

eventBus_replyFailures_total

Counter, failures

address, failure; Same client or pool

Failed replies.

eventBus_handlers

Gauge, handlers

address; Same client or pool

Registered handlers.

eventBus_delivered, eventBus_discarded

Gauges containing accumulated message counts

address; Same client or pool

Delivered and discarded messages while the handler registration exists.

eventBus_bytes_read_\{count,sum,max}, eventBus_bytes_written_\{count,sum,max}

Summaries, observation count / bytes

address; distributed event-bus traffic

Bus network payloads.

<poolType>_pool_queue_delay_seconds_\{count,sum,max}, <poolType>_pool_usage_seconds_\{count,sum,max}

Timers

pool_type, pool_name; resource pools

Wait time and resource-use duration.

<poolType>_pool_queue_size, <poolType>_pool_active, <poolType>_pool_idle

Gauges, items/resources

Same; idle requires a positive configured maximum

Pool queue, busy and idle resources.

<poolType>_pool_ratio

Gauge, ratio

Same; positive configured maximum

Fraction of pool resources in use.

<poolType>_pool_completed_total, <poolType>_pool_rejected_total

Counters, tasks

Same

Acquisitions and rejected submissions.

netty_allocator_memory_used, netty_allocator_memory_pinned

Gauges, bytes

name, allocator_type, memory_type; pinned requires pooled allocator

Allocated and pinned Netty memory.

netty_allocator_pooled_arenas

Gauge, arenas

name, allocator_type, memory_type

Pooled allocation arenas.

netty_allocator_pooled_cache_size

Gauge, entries

name, allocator_type, cache_type

Per-thread allocation-cache size.

netty_allocator_pooled_threadlocal_caches

Gauge, caches

name, allocator_type

Thread-local allocation caches.

netty_allocator_pooled_chunk_size

Gauge, bytes

name, allocator_type

Allocation chunk size.

netty_eventexecutor_tasks_pending

Gauge, tasks

executor, name

Queued event-loop work, including eventLoop and acceptor executors.

Database connection pool

The datasource label identifies the database pool. Database duration gauges use milliseconds.

Metric Type and unit Meaning

agroal_active_count

Gauge, connections

In use.

agroal_available_count

Gauge, connections

Idle and available.

agroal_max_used_count

Gauge, connections

Peak simultaneous usage.

agroal_awaiting_count

Gauge, threads

Waiting for a connection.

agroal_acquire_count_total

Counter, acquisitions

Successful acquisitions.

agroal_creation_count_total

Counter, connections

Created connections.

agroal_leak_detection_count_total

Counter, detections

Leak detections; one connection can be counted repeatedly.

agroal_destroy_count_total

Counter, connections

Destroyed connections.

agroal_flush_count_total

Counter, connections

Flushed connections, excluding invalid/idle removal.

agroal_invalid_count_total

Counter, connections

Invalid connections removed.

agroal_reap_count_total

Counter, connections

Idle connections removed.

agroal_blocking_time_average_milliseconds

Gauge, ms

Mean wait for acquisition.

agroal_blocking_time_max_milliseconds

Gauge, ms

Maximum acquisition wait.

agroal_blocking_time_total_milliseconds

Gauge, cumulative ms

Total acquisition wait.

agroal_creation_time_average_milliseconds

Gauge, ms

Mean connection creation time.

agroal_creation_time_max_milliseconds

Gauge, ms

Maximum connection creation time.

agroal_creation_time_total_milliseconds

Gauge, cumulative ms

Total connection creation time.

Cache and cluster

Cache metrics use a cache label. Cluster measurements use cluster and node; synchronous requests also identify target_node. Cache entries measure cache occupancy.

Metric or exact members Value and unit Meaning

cache_size

Gauge, entries

Local cache occupancy.

cache_gets_total

Counter, lookups

Local cache reads, with result=hit or miss.

cache_evictions_count

Cumulative count

Local cache evictions.

vendor_statistics_approximate_entries

Gauge, entries

Node entries including backup copies.

vendor_statistics_approximate_entries_unique

Gauge, entries

Node entries excluding backups.

vendor_statistics_store_times_seconds_\{count,sum}

Timer count / seconds

Cache writes.

vendor_statistics_hit_times_seconds_\{count,sum}

Timer count / seconds

Successful reads.

vendor_statistics_miss_times_seconds_\{count,sum}

Timer count / seconds

Unsuccessful reads.

vendor_statistics_remove_hit_times_seconds_\{count,sum}

Timer count / seconds

Removes finding an entry.

vendor_statistics_remove_miss_times_seconds_\{count,sum}

Timer count / seconds

Removes finding no entry.

vendor_statistics_evictions

Cumulative count

Eviction events.

vendor_lock_manager_number_of_locks_held

Gauge, locks

Locks held by the node.

vendor_transactions_prepare_times_seconds_\{count,sum}

Timer count / seconds

Transaction prepare operations.

vendor_transactions_rollback_times_seconds_\{count,sum}

Timer count / seconds

Transaction rollback operations.

vendor_transactions_commit_times_seconds_\{count,sum}

Timer count / seconds

Transaction commit operations.

vendor_state_transfer_manager_inflight_transactional_segment_count

Gauge, segments

Transactional state transfers in progress.

vendor_state_transfer_manager_inflight_segment_transfer_count

Gauge, segments

State transfers in progress.

vendor_rpc_manager_replication_count

Cumulative count

Successful replications.

vendor_rpc_manager_replication_failures

Cumulative count

Failed replications.

vendor_rpc_manager_average_replication_time

Gauge, ms

Mean replication duration.

Metric or exact members Value and unit Meaning

vendor_cluster_size

Gauge, nodes

Cluster membership observed by this node.

vendor_jgroups_stats_sync_requests_seconds_\{count,sum}

Timer count / seconds

Synchronous requests to another node.

vendor_jgroups_tcp_get_num_bytes_\{received,sent}

Cumulative bytes

Cluster network traffic.

vendor_jgroups_tcp_get_thread_pool_size

Gauge, threads

Current transport thread pool.

vendor_jgroups_tcp_get_largest_size

Gauge, threads

Peak pool size.

vendor_jgroups_\{ufc,mfc}_get_number_of_blockings

Cumulative count

Flow-control blocking events.

vendor_jgroups_\{ufc,mfc}_get_average_time_blocked

Gauge, ms

Mean flow-control block duration.

vendor_jgroups_unicast3_get_num_xmits

Cumulative count

Retransmitted messages.

vendor_jgroups_red_get_dropped_messages

Cumulative count

Messages dropped by the sender.

vendor_jgroups_red_get_drop_rate

Gauge, percent

Sender drop rate.

vendor_jgroups_merge3_get_num_merge_events

Cumulative count

Detected partitions subsequently merged.

Authentication

Metric Type Labels Meaning

keycloak_credentials_password_hashing_validations_total

Counter

realm, algorithm, hashing_strength, outcome

Password validations. Outcomes are valid, invalid, or error.

keycloak_user_events_total

Counter

event, error, realm; optional client_id and idp

Authentication events when user-event metrics are enabled, including login, logout, registration, and token refresh.

Additional connection measurements

Metric group Labels Meaning

tcp_active_connections, tcp_connections_seconds_\{count,sum,max}

port, host, address

Open TCP connections and their elapsed lifetimes.

tcp_bytes_\{read,written}_\{count,sum,max}

port, host, address

TCP traffic observations and byte totals.

tcp_errors_total

port, host, address, class

TCP transport errors.

udp_bytes_\{read,written}_\{count,sum,max}, udp_errors_total

protocol; class for errors

UDP traffic observations, byte totals, and transport errors.

<prefix>_queue_delay_seconds_\{count,sum,max}, <prefix>_processing_seconds_\{count,sum,max}

clientName, clientType

Queue delay and processing time for a named client.

<prefix>_queue_size, <prefix>_current, <prefix>_completed_total, <prefix>_reset_total

clientName, clientType

Client queue size, active work, completed work, and resets.

A named client’s metric prefix identifies that client. Byte-summary _count samples count traffic observations; use HTTP request timers to count requests.