From 9303efd435c524b72dc4dbe8c8f622844b283485 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Fri, 21 Aug 2015 08:35:43 +0100 Subject: [PATCH] Allow counter names like counter-foo Checking for a prefix "counter." is more correct than "counter" because the readers (repositories) assume the former prefix is there. Fixes gh-3801 --- .../metrics/writer/DefaultCounterService.java | 2 +- .../writer/DefaultCounterServiceTests.java | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterService.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterService.java index 8b727322a7..bd41b647d0 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterService.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterService.java @@ -58,7 +58,7 @@ public class DefaultCounterService implements CounterService { if (this.names.containsKey(metricName)) { return this.names.get(metricName); } - if (metricName.startsWith("counter") || metricName.startsWith("meter")) { + if (metricName.startsWith("counter.") || metricName.startsWith("meter.")) { return metricName; } String name = "counter." + metricName; diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterServiceTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterServiceTests.java index c4d731b7aa..45543478c7 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterServiceTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/DefaultCounterServiceTests.java @@ -16,16 +16,16 @@ package org.springframework.boot.actuate.metrics.writer; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.runners.MockitoJUnitRunner; -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - /** * Tests for {@link DefaultCounterService}. */ @@ -40,6 +40,22 @@ public class DefaultCounterServiceTests { @Captor private ArgumentCaptor> captor; + @Test + public void incrementWithExistingCounter() { + this.service.increment("counter.foo"); + verify(this.repository).increment(this.captor.capture()); + assertEquals("counter.foo", this.captor.getValue().getName()); + assertEquals(1L, this.captor.getValue().getValue()); + } + + @Test + public void incrementWithExistingNearlyCounter() { + this.service.increment("counter-foo"); + verify(this.repository).increment(this.captor.capture()); + assertEquals("counter.counter-foo", this.captor.getValue().getName()); + assertEquals(1L, this.captor.getValue().getValue()); + } + @Test public void incrementPrependsCounter() { this.service.increment("foo");