diff options
Diffstat (limited to 'src/test/java/com/zaxxer/hikari/metrics')
3 files changed, 85 insertions, 9 deletions
diff --git a/src/test/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTrackerTest.java b/src/test/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTrackerTest.java new file mode 100755 index 0000000..761ef12 --- /dev/null +++ b/src/test/java/com/zaxxer/hikari/metrics/micrometer/MicrometerMetricsTrackerTest.java @@ -0,0 +1,39 @@ +package com.zaxxer.hikari.metrics.micrometer; + +import com.zaxxer.hikari.metrics.PoolStats; +import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.core.instrument.simple.SimpleMeterRegistry; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class MicrometerMetricsTrackerTest { + + private MeterRegistry mockMeterRegistry = new SimpleMeterRegistry(); + + private MicrometerMetricsTracker testee; + + @Before + public void setup(){ + testee = new MicrometerMetricsTracker("mypool", new PoolStats(1000L) { + @Override + protected void update() { + // nothing + } + }, mockMeterRegistry); + } + + @Test + public void close() throws Exception { + Assert.assertNotNull(mockMeterRegistry.find("Wait")); + Assert.assertNotNull(mockMeterRegistry.find("Usage")); + Assert.assertNotNull(mockMeterRegistry.find("ConnectionCreation")); + Assert.assertNotNull(mockMeterRegistry.find("ConnectionTimeoutRate")); + Assert.assertNotNull(mockMeterRegistry.find("TotalConnections")); + Assert.assertNotNull(mockMeterRegistry.find("IdleConnections")); + Assert.assertNotNull(mockMeterRegistry.find("ActiveConnections")); + Assert.assertNotNull(mockMeterRegistry.find("PendingConnections")); + + testee.close(); + } +} diff --git a/src/test/java/com/zaxxer/hikari/metrics/prometheus/HikariCPCollectorTest.java b/src/test/java/com/zaxxer/hikari/metrics/prometheus/HikariCPCollectorTest.java index 46b2e74..63746a3 100644 --- a/src/test/java/com/zaxxer/hikari/metrics/prometheus/HikariCPCollectorTest.java +++ b/src/test/java/com/zaxxer/hikari/metrics/prometheus/HikariCPCollectorTest.java @@ -60,10 +60,11 @@ public class HikariCPCollectorTest { StubConnection.slowCreate = true; try (HikariDataSource ds = new HikariDataSource(config)) { - assertThat(getValue("hikaricp_active_connections", "HikariPool-1"), is(0.0)); - assertThat(getValue("hikaricp_idle_connections", "HikariPool-1"), is(0.0)); - assertThat(getValue("hikaricp_pending_threads", "HikariPool-1"), is(0.0)); - assertThat(getValue("hikaricp_connections", "HikariPool-1"), is(0.0)); + String poolName = ds.getHikariConfigMXBean().getPoolName(); + assertThat(getValue("hikaricp_active_connections", poolName), is(0.0)); + assertThat(getValue("hikaricp_idle_connections", poolName), is(0.0)); + assertThat(getValue("hikaricp_pending_threads", poolName), is(0.0)); + assertThat(getValue("hikaricp_connections", poolName), is(0.0)); } finally { StubConnection.slowCreate = false; @@ -105,7 +106,7 @@ public class HikariCPCollectorTest { try (Connection connection1 = ds.getConnection()) { // close immediately } - + assertThat(getValue("hikaricp_active_connections", "connectionClosed"), is(0.0)); assertThat(getValue("hikaricp_idle_connections", "connectionClosed"), is(1.0)); assertThat(getValue("hikaricp_pending_threads", "connectionClosed"), is(0.0)); diff --git a/src/test/java/com/zaxxer/hikari/metrics/prometheus/PrometheusMetricsTrackerTest.java b/src/test/java/com/zaxxer/hikari/metrics/prometheus/PrometheusMetricsTrackerTest.java index a7b0b03..079cfb5 100644 --- a/src/test/java/com/zaxxer/hikari/metrics/prometheus/PrometheusMetricsTrackerTest.java +++ b/src/test/java/com/zaxxer/hikari/metrics/prometheus/PrometheusMetricsTrackerTest.java @@ -33,6 +33,7 @@ import com.zaxxer.hikari.HikariDataSource; import io.prometheus.client.CollectorRegistry; public class PrometheusMetricsTrackerTest { + @Test public void recordConnectionTimeout() throws Exception { HikariConfig config = newHikariConfig(); @@ -40,13 +41,13 @@ public class PrometheusMetricsTrackerTest { config.setJdbcUrl("jdbc:h2:mem:"); config.setMaximumPoolSize(2); config.setConnectionTimeout(250); - + String[] labelNames = {"pool"}; String[] labelValues = {config.getPoolName()}; try (HikariDataSource hikariDataSource = new HikariDataSource(config)) { try (Connection connection1 = hikariDataSource.getConnection(); - Connection connection2 = hikariDataSource.getConnection()) { + Connection connection2 = hikariDataSource.getConnection()) { try (Connection connection3 = hikariDataSource.getConnection()) { } catch (SQLTransientConnectionException ignored) { @@ -54,13 +55,13 @@ public class PrometheusMetricsTrackerTest { } assertThat(CollectorRegistry.defaultRegistry.getSampleValue( - "hikaricp_connection_timeout_count", + "hikaricp_connection_timeout_total", labelNames, labelValues), is(1.0)); assertThat(CollectorRegistry.defaultRegistry.getSampleValue( "hikaricp_connection_acquired_nanos_count", labelNames, - labelValues), is(equalTo(2.0))); + labelValues), is(equalTo(3.0))); assertTrue(CollectorRegistry.defaultRegistry.getSampleValue( "hikaricp_connection_acquired_nanos_sum", labelNames, @@ -75,4 +76,39 @@ public class PrometheusMetricsTrackerTest { labelValues) > 0.0); } } + + @Test + public void testMultiplePoolName() throws Exception { + String[] labelNames = {"pool"}; + + HikariConfig config = newHikariConfig(); + config.setMetricsTrackerFactory(new PrometheusMetricsTrackerFactory()); + config.setPoolName("first"); + config.setJdbcUrl("jdbc:h2:mem:"); + config.setMaximumPoolSize(2); + config.setConnectionTimeout(250); + String[] labelValues1 = {config.getPoolName()}; + + try (HikariDataSource ignored = new HikariDataSource(config)) { + assertThat(CollectorRegistry.defaultRegistry.getSampleValue( + "hikaricp_connection_timeout_total", + labelNames, + labelValues1), is(0.0)); + + HikariConfig config2 = newHikariConfig(); + config2.setMetricsTrackerFactory(new PrometheusMetricsTrackerFactory()); + config2.setPoolName("second"); + config2.setJdbcUrl("jdbc:h2:mem:"); + config2.setMaximumPoolSize(4); + config2.setConnectionTimeout(250); + String[] labelValues2 = {config2.getPoolName()}; + + try (HikariDataSource ignored2 = new HikariDataSource(config2)) { + assertThat(CollectorRegistry.defaultRegistry.getSampleValue( + "hikaricp_connection_timeout_total", + labelNames, + labelValues2), is(0.0)); + } + } + } } |