Browse Source

The counter indicator increases by 2 each time (on happy path) (#1548)

* The counter indicator increases by 2 each time (on happy path).

* Add test coverage

* Make test beaty again

* Fix license header

* Move new tests to the common abstract class
pull/1550/head
Witalij Berdinskich 3 years ago committed by GitHub
parent
commit
24635e6e85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      dropwizard-metrics4/src/test/java/feign/metrics4/Metrics4CapabilityTest.java
  2. 11
      dropwizard-metrics5/src/test/java/feign/metrics5/Metrics5CapabilityTest.java
  3. 6
      micrometer/pom.xml
  4. 1
      micrometer/src/main/java/feign/micrometer/MeteredClient.java
  5. 13
      micrometer/src/test/java/feign/micrometer/AbstractMetricsTestBase.java
  6. 21
      micrometer/src/test/java/feign/micrometer/MicrometerCapabilityTest.java

11
dropwizard-metrics4/src/test/java/feign/metrics4/Metrics4CapabilityTest.java

@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
*/
package feign.metrics4;
import com.codahale.metrics.Metered;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricRegistry;
import feign.Capability;
@ -99,4 +100,14 @@ public class Metrics4CapabilityTest @@ -99,4 +100,14 @@ public class Metrics4CapabilityTest
return metricId.contains(uri);
}
@Override
protected boolean doesMetricHasCounter(Metric metric) {
return metric instanceof Metered;
}
@Override
protected long getMetricCounter(Metric metric) {
return ((Metered) metric).getCount();
}
}

11
dropwizard-metrics5/src/test/java/feign/metrics5/Metrics5CapabilityTest.java

@ -20,6 +20,7 @@ import java.util.Map.Entry; @@ -20,6 +20,7 @@ import java.util.Map.Entry;
import feign.Capability;
import feign.Util;
import feign.micrometer.AbstractMetricsTestBase;
import io.dropwizard.metrics5.Metered;
import io.dropwizard.metrics5.Metric;
import io.dropwizard.metrics5.MetricName;
import io.dropwizard.metrics5.MetricRegistry;
@ -103,4 +104,14 @@ public class Metrics5CapabilityTest @@ -103,4 +104,14 @@ public class Metrics5CapabilityTest
return uri.equals(metricId.getTags().get("uri"));
}
@Override
protected boolean doesMetricHasCounter(Metric metric) {
return metric instanceof Metered;
}
@Override
protected long getMetricCounter(Metric metric) {
return ((Metered) metric).getCount();
}
}

6
micrometer/pom.xml

@ -44,6 +44,12 @@ @@ -44,6 +44,12 @@
<artifactId>micrometer-core</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>

1
micrometer/src/main/java/feign/micrometer/MeteredClient.java

@ -54,7 +54,6 @@ public class MeteredClient implements Client { @@ -54,7 +54,6 @@ public class MeteredClient implements Client {
final Response response = client.execute(request, options);
countResponseCode(request, response, options, response.status(), null);
timer = createTimer(request, response, options, null);
sample.stop(timer);
return response;
} catch (FeignException e) {
timer = createTimer(request, null, options, e);

13
micrometer/src/test/java/feign/micrometer/AbstractMetricsTestBase.java

@ -65,6 +65,15 @@ public abstract class AbstractMetricsTestBase<MR, METRIC_ID, METRIC> { @@ -65,6 +65,15 @@ public abstract class AbstractMetricsTestBase<MR, METRIC_ID, METRIC> {
metrics.keySet().forEach(metricId -> assertThat(
"Expect all metric names to include host name:" + metricId,
doesMetricIncludeHost(metricId)));
final Map<METRIC_ID, METRIC> clientMetrics = getFeignMetrics().entrySet().stream()
.filter(entry -> isClientMetric(entry.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
clientMetrics.values().stream()
.filter(this::doesMetricHasCounter)
.forEach(metric -> assertEquals(1, getMetricCounter(metric)));
}
protected abstract boolean doesMetricIncludeHost(METRIC_ID metricId);
@ -221,4 +230,8 @@ public abstract class AbstractMetricsTestBase<MR, METRIC_ID, METRIC> { @@ -221,4 +230,8 @@ public abstract class AbstractMetricsTestBase<MR, METRIC_ID, METRIC> {
protected abstract boolean doesMetricIncludeUri(METRIC_ID metricId, String uri);
protected abstract boolean doesMetricHasCounter(METRIC metric);
protected abstract long getMetricCounter(METRIC metric);
}

21
micrometer/src/test/java/feign/micrometer/MicrometerCapabilityTest.java

@ -15,6 +15,7 @@ package feign.micrometer; @@ -15,6 +15,7 @@ package feign.micrometer;
import feign.Capability;
import feign.Util;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.Meter.Id;
import io.micrometer.core.instrument.MockClock;
@ -113,4 +114,24 @@ public class MicrometerCapabilityTest @@ -113,4 +114,24 @@ public class MicrometerCapabilityTest
return uri.equals(metricId.getTag("uri"));
}
@Override
protected boolean doesMetricHasCounter(Meter meter) {
for (Measurement measurement : meter.measure()) {
if ("COUNT".equals(measurement.getStatistic().name())) {
return true;
}
}
return false;
}
@Override
protected long getMetricCounter(Meter meter) {
for (Measurement measurement : meter.measure()) {
if ("COUNT".equals(measurement.getStatistic().name())) {
return (long) measurement.getValue();
}
}
return 0;
}
}

Loading…
Cancel
Save