Search in sources :

Example 1 with TooManyActiveSessionsException

use of org.apache.catalina.session.TooManyActiveSessionsException in project micrometer by micrometer-metrics.

the class TomcatMetricsTest method managerBasedMetrics.

@Test
void managerBasedMetrics() {
    Context context = new StandardContext();
    ManagerBase manager = new ManagerBase() {

        @Override
        public void load() {
        }

        @Override
        public void unload() {
        }

        @Override
        public Context getContext() {
            return context;
        }
    };
    manager.setMaxActiveSessions(3);
    manager.createSession("first");
    manager.createSession("second");
    manager.createSession("third");
    try {
        manager.createSession("fourth");
        fail("TooManyActiveSessionsException expected.");
    } catch (TooManyActiveSessionsException exception) {
    // ignore error, testing rejection
    }
    StandardSession expiredSession = new StandardSession(manager);
    expiredSession.setId("third");
    expiredSession.setCreationTime(System.currentTimeMillis() - 10_000);
    manager.remove(expiredSession, true);
    Iterable<Tag> tags = Tags.of("metricTag", "val1");
    TomcatMetrics.monitor(registry, manager, tags);
    assertThat(registry.get("tomcat.sessions.active.max").tags(tags).gauge().value()).isEqualTo(3.0);
    assertThat(registry.get("tomcat.sessions.active.current").tags(tags).gauge().value()).isEqualTo(2.0);
    assertThat(registry.get("tomcat.sessions.expired").tags(tags).functionCounter().count()).isEqualTo(1.0);
    assertThat(registry.get("tomcat.sessions.rejected").tags(tags).functionCounter().count()).isEqualTo(1.0);
    assertThat(registry.get("tomcat.sessions.created").tags(tags).functionCounter().count()).isEqualTo(3.0);
    assertThat(registry.get("tomcat.sessions.alive.max").tags(tags).timeGauge().value()).isGreaterThan(1.0);
}
Also used : Context(org.apache.catalina.Context) StandardContext(org.apache.catalina.core.StandardContext) TooManyActiveSessionsException(org.apache.catalina.session.TooManyActiveSessionsException) ManagerBase(org.apache.catalina.session.ManagerBase) StandardSession(org.apache.catalina.session.StandardSession) StandardContext(org.apache.catalina.core.StandardContext) Tag(io.micrometer.core.instrument.Tag) Test(org.junit.jupiter.api.Test)

Aggregations

Tag (io.micrometer.core.instrument.Tag)1 Context (org.apache.catalina.Context)1 StandardContext (org.apache.catalina.core.StandardContext)1 ManagerBase (org.apache.catalina.session.ManagerBase)1 StandardSession (org.apache.catalina.session.StandardSession)1 TooManyActiveSessionsException (org.apache.catalina.session.TooManyActiveSessionsException)1 Test (org.junit.jupiter.api.Test)1