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);
}
Aggregations