aerogear / keycloak-metrics-spi

Adds a Metrics Endpoint to Keycloak
Apache License 2.0
549 stars 156 forks source link

Add online and offline sessions metrics #150

Open OleksandrMishchuk opened 1 year ago

OleksandrMishchuk commented 1 year ago

Motivation

There's no metrics exported for online and offline sessions in KC currently and that is pretty needed by business

What

Two gauges were added for onlineSessionCount and offlineSessionCount. Updates are done when LOGIN or LOGOUT events are catch and only for client where event happened, which reduces load on the system

Why

There's already one PR, which does the same, but from my point of view capturing of sessions is done incorrectly there and will definitely add extra load on a server as metrics are pushed on each event.

How

When LOGIN, CLIENT_LOGIN or LOGOUT event is catch we retrieve info of event's client sessions and push out metrics.

Verification Steps

  1. Login with several customers into KC
  2. Observe new metrics on /realms/{realm}/metrics endpoint
  3. Logout with some customers from KC
  4. Observe updated metrics on /realms/{realm}/metrics endpoint

Checklist:

Progress

Additional Notes

-