diff --git a/api/pom.xml b/api/pom.xml
index 10c0c590..b3632430 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -3,7 +3,7 @@
smallrye-metrics-parent
io.smallrye
- 5.0.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
4.0.0
diff --git a/coverage/pom.xml b/coverage/pom.xml
index d822f093..01aa3f6b 100644
--- a/coverage/pom.xml
+++ b/coverage/pom.xml
@@ -6,7 +6,7 @@
io.smallrye
smallrye-metrics-parent
- 5.0.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
smallrye-metrics-coverage
diff --git a/implementation/pom.xml b/implementation/pom.xml
index aded5739..68fda634 100644
--- a/implementation/pom.xml
+++ b/implementation/pom.xml
@@ -10,7 +10,7 @@
io.smallrye
smallrye-metrics-parent
- 5.0.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
../pom.xml
diff --git a/implementation/src/main/java/io/smallrye/metrics/elementdesc/adapter/cdi/CDIAnnotationInfo.java b/implementation/src/main/java/io/smallrye/metrics/elementdesc/adapter/cdi/CDIAnnotationInfo.java
index 1370f29d..b9599df9 100644
--- a/implementation/src/main/java/io/smallrye/metrics/elementdesc/adapter/cdi/CDIAnnotationInfo.java
+++ b/implementation/src/main/java/io/smallrye/metrics/elementdesc/adapter/cdi/CDIAnnotationInfo.java
@@ -2,11 +2,8 @@
import java.lang.annotation.Annotation;
-import org.eclipse.microprofile.metrics.annotation.ConcurrentGauge;
import org.eclipse.microprofile.metrics.annotation.Counted;
import org.eclipse.microprofile.metrics.annotation.Gauge;
-import org.eclipse.microprofile.metrics.annotation.Metered;
-import org.eclipse.microprofile.metrics.annotation.SimplyTimed;
import org.eclipse.microprofile.metrics.annotation.Timed;
import io.smallrye.metrics.SmallRyeMetricsMessages;
@@ -24,16 +21,10 @@ public class CDIAnnotationInfo implements AnnotationInfo {
public String name() {
if (annotation instanceof Counted) {
return ((Counted) annotation).name();
- } else if (annotation instanceof ConcurrentGauge) {
- return ((ConcurrentGauge) annotation).name();
} else if (annotation instanceof Gauge) {
return ((Gauge) annotation).name();
- } else if (annotation instanceof Metered) {
- return ((Metered) annotation).name();
} else if (annotation instanceof Timed) {
return ((Timed) annotation).name();
- } else if (annotation instanceof SimplyTimed) {
- return ((SimplyTimed) annotation).name();
} else {
throw new IllegalArgumentException("Unknown metric annotation type " + annotation.annotationType());
}
@@ -43,16 +34,10 @@ public String name() {
public boolean absolute() {
if (annotation instanceof Counted) {
return ((Counted) annotation).absolute();
- } else if (annotation instanceof ConcurrentGauge) {
- return ((ConcurrentGauge) annotation).absolute();
} else if (annotation instanceof Gauge) {
return ((Gauge) annotation).absolute();
- } else if (annotation instanceof Metered) {
- return ((Metered) annotation).absolute();
} else if (annotation instanceof Timed) {
return ((Timed) annotation).absolute();
- } else if (annotation instanceof SimplyTimed) {
- return ((SimplyTimed) annotation).absolute();
} else {
throw SmallRyeMetricsMessages.msg.unknownMetricAnnotationType(annotation.annotationType());
}
@@ -62,16 +47,10 @@ public boolean absolute() {
public String[] tags() {
if (annotation instanceof Counted) {
return ((Counted) annotation).tags();
- } else if (annotation instanceof ConcurrentGauge) {
- return ((ConcurrentGauge) annotation).tags();
} else if (annotation instanceof Gauge) {
return ((Gauge) annotation).tags();
- } else if (annotation instanceof Metered) {
- return ((Metered) annotation).tags();
} else if (annotation instanceof Timed) {
return ((Timed) annotation).tags();
- } else if (annotation instanceof SimplyTimed) {
- return ((SimplyTimed) annotation).tags();
} else {
throw SmallRyeMetricsMessages.msg.unknownMetricAnnotationType(annotation.annotationType());
}
@@ -81,16 +60,10 @@ public String[] tags() {
public String unit() {
if (annotation instanceof Counted) {
return ((Counted) annotation).unit();
- } else if (annotation instanceof ConcurrentGauge) {
- return ((ConcurrentGauge) annotation).unit();
} else if (annotation instanceof Gauge) {
return ((Gauge) annotation).unit();
- } else if (annotation instanceof Metered) {
- return ((Metered) annotation).unit();
} else if (annotation instanceof Timed) {
return ((Timed) annotation).unit();
- } else if (annotation instanceof SimplyTimed) {
- return ((SimplyTimed) annotation).unit();
} else {
throw SmallRyeMetricsMessages.msg.unknownMetricAnnotationType(annotation.annotationType());
}
@@ -100,16 +73,10 @@ public String unit() {
public String description() {
if (annotation instanceof Counted) {
return ((Counted) annotation).description();
- } else if (annotation instanceof ConcurrentGauge) {
- return ((ConcurrentGauge) annotation).description();
} else if (annotation instanceof Gauge) {
return ((Gauge) annotation).description();
- } else if (annotation instanceof Metered) {
- return ((Metered) annotation).description();
} else if (annotation instanceof Timed) {
return ((Timed) annotation).description();
- } else if (annotation instanceof SimplyTimed) {
- return ((SimplyTimed) annotation).description();
} else {
throw SmallRyeMetricsMessages.msg.unknownMetricAnnotationType(annotation.annotationType());
}
@@ -119,16 +86,10 @@ public String description() {
public String displayName() {
if (annotation instanceof Counted) {
return ((Counted) annotation).displayName();
- } else if (annotation instanceof ConcurrentGauge) {
- return ((ConcurrentGauge) annotation).displayName();
} else if (annotation instanceof Gauge) {
return ((Gauge) annotation).displayName();
- } else if (annotation instanceof Metered) {
- return ((Metered) annotation).displayName();
} else if (annotation instanceof Timed) {
return ((Timed) annotation).displayName();
- } else if (annotation instanceof SimplyTimed) {
- return ((SimplyTimed) annotation).displayName();
} else {
throw SmallRyeMetricsMessages.msg.unknownMetricAnnotationType(annotation.annotationType());
}
diff --git a/implementation/src/main/java/io/smallrye/metrics/jaxrs/JaxRsMetricsServletFilter.java b/implementation/src/main/java/io/smallrye/metrics/jaxrs/JaxRsMetricsServletFilter.java
index a2fa58b4..69ed4d7f 100644
--- a/implementation/src/main/java/io/smallrye/metrics/jaxrs/JaxRsMetricsServletFilter.java
+++ b/implementation/src/main/java/io/smallrye/metrics/jaxrs/JaxRsMetricsServletFilter.java
@@ -79,10 +79,11 @@ private void update(boolean success, long startTimestamp, MetricID metricID) {
}
}
+ //TODO: Verify it works properly.
private void updateAfterSuccess(long startTimestamp, MetricID metricID) {
long duration = System.nanoTime() - startTimestamp;
MetricRegistry registry = MetricRegistries.getOrCreate(MetricRegistry.Type.BASE);
- registry.getSimpleTimer(metricID).update(Duration.ofNanos(duration));
+ registry.getTimer(metricID).update(Duration.ofNanos(duration));
}
private void updateAfterFailure(MetricID metricID) {
@@ -94,9 +95,10 @@ private MetricID transformToMetricIDForFailedRequest(MetricID metricID) {
return new MetricID("REST.request.unmappedException.total", metricID.getTagsAsArray());
}
+ //TODO: Verify it works properly.
private void createMetrics(MetricID metricID) {
MetricRegistry registry = MetricRegistries.getOrCreate(MetricRegistry.Type.BASE);
- if (registry.getSimpleTimer(metricID) == null) {
+ if (registry.getTimer(metricID) == null) {
Metadata successMetadata = Metadata.builder()
.withName(metricID.getName())
.withDescription(
@@ -104,7 +106,7 @@ private void createMetrics(MetricID metricID) {
"resource method since the start of the server.")
.withUnit(MetricUnits.NANOSECONDS)
.build();
- registry.simpleTimer(successMetadata, metricID.getTagsAsArray());
+ registry.timer(successMetadata, metricID.getTagsAsArray());
}
MetricID metricIDForFailure = transformToMetricIDForFailedRequest(metricID);
if (registry.getCounter(metricIDForFailure) == null) {
diff --git a/implementation/src/main/java/io/smallrye/metrics/legacyapi/GaugeAdapter.java b/implementation/src/main/java/io/smallrye/metrics/legacyapi/GaugeAdapter.java
index 2e9c3888..342ebd45 100644
--- a/implementation/src/main/java/io/smallrye/metrics/legacyapi/GaugeAdapter.java
+++ b/implementation/src/main/java/io/smallrye/metrics/legacyapi/GaugeAdapter.java
@@ -9,6 +9,7 @@
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.MeterRegistry;
+import io.smallrye.metrics.MetricRegistries;
interface GaugeAdapter extends Gauge, MeterHolder {
@@ -26,12 +27,14 @@ static class DoubleFunctionGauge implements GaugeAdapter {
}
public GaugeAdapter register(MpMetadata metadata, MetricDescriptor metricInfo, MeterRegistry registry) {
+ MetricRegistries.MP_APP_METER_REG_ACCESS.set(true);
gauge = io.micrometer.core.instrument.Gauge.builder(metricInfo.name(), obj, f)
.description(metadata.getDescription())
.tags(metricInfo.tags())
.baseUnit(metadata.getUnit())
.strongReference(true)
.register(registry);
+ MetricRegistries.MP_APP_METER_REG_ACCESS.set(false);
return this;
}
@@ -63,12 +66,14 @@ static class FunctionGauge implements GaugeAdapter {
}
public GaugeAdapter register(MpMetadata metadata, MetricDescriptor metricInfo, MeterRegistry registry) {
+ MetricRegistries.MP_APP_METER_REG_ACCESS.set(true);
gauge = io.micrometer.core.instrument.Gauge.builder(metricInfo.name(), obj, obj -> f.apply(obj).doubleValue())
.description(metadata.getDescription())
.tags(metricInfo.tags())
.baseUnit(metadata.getUnit())
.strongReference(true)
.register(registry);
+ MetricRegistries.MP_APP_METER_REG_ACCESS.set(false);
return this;
}
@@ -99,11 +104,13 @@ static class NumberSupplierGauge implements GaugeAdapter {
@Override
public GaugeAdapter register(MpMetadata metadata, MetricDescriptor metricInfo, MeterRegistry registry) {
if (gauge == null || metadata.cleanDirtyMetadata()) {
+ MetricRegistries.MP_APP_METER_REG_ACCESS.set(true);
gauge = io.micrometer.core.instrument.Gauge.builder(metricInfo.name(), (Supplier) supplier)
.description(metadata.getDescription())
.tags(metricInfo.tags())
.baseUnit(metadata.getUnit())
.strongReference(true).register(registry);
+ MetricRegistries.MP_APP_METER_REG_ACCESS.set(false);
}
return this;
diff --git a/implementation/src/main/java/io/smallrye/metrics/legacyapi/HistogramAdapter.java b/implementation/src/main/java/io/smallrye/metrics/legacyapi/HistogramAdapter.java
index 061faa33..295f43f8 100644
--- a/implementation/src/main/java/io/smallrye/metrics/legacyapi/HistogramAdapter.java
+++ b/implementation/src/main/java/io/smallrye/metrics/legacyapi/HistogramAdapter.java
@@ -15,8 +15,13 @@ class HistogramAdapter implements Histogram, MeterHolder {
HistogramAdapter register(MpMetadata metadata, MetricDescriptor metricInfo, MeterRegistry registry) {
MetricRegistries.MP_APP_METER_REG_ACCESS.set(true);
if (summary == null || metadata.cleanDirtyMetadata()) {
- summary = DistributionSummary.builder(metricInfo.name()).description(metadata.getDescription())
- .baseUnit(metadata.getUnit()).tags(metricInfo.tags()).register(registry);
+ summary = DistributionSummary.builder(metricInfo.name())
+ .description(metadata.getDescription())
+ .baseUnit(metadata.getUnit())
+ .tags(metricInfo.tags())
+ .publishPercentiles(0.5, 0.75, 0.95, 0.98, 0.99, 0.999)
+ .percentilePrecision(5) //from 0 - 5 , more precision == more memory usage
+ .register(registry);
}
MetricRegistries.MP_APP_METER_REG_ACCESS.set(false);
return this;
diff --git a/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricRegistryAdapter.java b/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricRegistryAdapter.java
index 60c5f6f2..15f95c5f 100644
--- a/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricRegistryAdapter.java
+++ b/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricRegistryAdapter.java
@@ -16,18 +16,15 @@
import java.util.function.ToDoubleFunction;
import org.eclipse.microprofile.config.ConfigProvider;
-import org.eclipse.microprofile.metrics.ConcurrentGauge;
import org.eclipse.microprofile.metrics.Counter;
import org.eclipse.microprofile.metrics.Gauge;
import org.eclipse.microprofile.metrics.Histogram;
import org.eclipse.microprofile.metrics.Metadata;
-import org.eclipse.microprofile.metrics.Meter;
import org.eclipse.microprofile.metrics.Metric;
import org.eclipse.microprofile.metrics.MetricFilter;
import org.eclipse.microprofile.metrics.MetricID;
import org.eclipse.microprofile.metrics.MetricRegistry;
import org.eclipse.microprofile.metrics.MetricType;
-import org.eclipse.microprofile.metrics.SimpleTimer;
import org.eclipse.microprofile.metrics.Tag;
import org.eclipse.microprofile.metrics.Timer;
@@ -269,21 +266,6 @@ public LegacyMetricRegistryAdapter(Type type, MeterRegistry registry) {
this(type, registry, ApplicationNameResolver.DEFAULT);
}
- @Override
- public T register(String name, T t) throws IllegalArgumentException {
- throw new UnsupportedOperationException("Can not register a pre-constructed Metric with Micrometer");
- }
-
- @Override
- public T register(Metadata metadata, T t) throws IllegalArgumentException {
- throw new UnsupportedOperationException("Can not register a pre-constructed Metric with Micrometer");
- }
-
- @Override
- public T register(Metadata metadata, T t, Tag... tags) throws IllegalArgumentException {
- throw new UnsupportedOperationException("Can not register a pre-constructed Metric with Micrometer");
- }
-
@Override
public Counter counter(String name) {
return internalCounter(internalGetMetadata(name, MetricType.COUNTER),
@@ -333,31 +315,6 @@ CounterAdapter internalCounter(MpMetadata metadata, MetricDescriptor id) {
return result.register(metadata, id, registry);
}
- @Override
- public ConcurrentGauge concurrentGauge(String name) {
- return null;
- }
-
- @Override
- public ConcurrentGauge concurrentGauge(String name, Tag... tags) {
- return null;
- }
-
- @Override
- public ConcurrentGauge concurrentGauge(MetricID metricID) {
- return null;
- }
-
- @Override
- public ConcurrentGauge concurrentGauge(Metadata metadata) {
- return null;
- }
-
- @Override
- public ConcurrentGauge concurrentGauge(Metadata metadata, Tag... tags) {
- return null;
- }
-
public Gauge gauge(String name, T o, ToDoubleFunction f) {
return internalGauge(internalGetMetadata(name, MetricType.GAUGE),
new MetricDescriptor(name, withAppTags()), o, f);
@@ -384,7 +341,7 @@ public Gauge gauge(MetricID metricID, T o, Function Gauge gauge(Metadata metadata, T o, Function f, Tag... tags) {
String name = metadata.getName();
- return internalGauge(internalGetMetadata(name, MetricType.GAUGE),
+ return internalGauge(internalGetMetadata(metadata, MetricType.GAUGE),
new MetricDescriptor(name, withAppTags(tags)), o, f);
}
@@ -425,7 +382,7 @@ public Gauge gauge(MetricID metricID, Supplier f) {
@Override
public Gauge gauge(Metadata metadata, Supplier f, Tag... tags) {
String name = metadata.getName();
- return internalGauge(internalGetMetadata(name, MetricType.GAUGE),
+ return internalGauge(internalGetMetadata(metadata, MetricType.GAUGE),
new MetricDescriptor(name, withAppTags(tags)), f);
}
@@ -493,31 +450,6 @@ HistogramAdapter internalHistogram(MpMetadata metadata, MetricDescriptor id) {
return result.register(metadata, id, registry);
}
- @Override
- public Meter meter(String name) {
- return null;
- }
-
- @Override
- public Meter meter(String name, Tag... tags) {
- return null;
- }
-
- @Override
- public Meter meter(MetricID metricID) {
- return null;
- }
-
- @Override
- public Meter meter(Metadata metadata) {
- return null;
- }
-
- @Override
- public Meter meter(Metadata metadata, Tag... tags) {
- return null;
- }
-
@Override
public Timer timer(String name) {
return internalTimer(internalGetMetadata(name, MetricType.TIMER),
@@ -567,31 +499,6 @@ TimerAdapter internalTimer(MpMetadata metadata, MetricDescriptor id) {
return result.register(metadata, id);
}
- @Override
- public SimpleTimer simpleTimer(String name) {
- return null;
- }
-
- @Override
- public SimpleTimer simpleTimer(String name, Tag... tags) {
- return null;
- }
-
- @Override
- public SimpleTimer simpleTimer(MetricID metricID) {
- return null;
- }
-
- @Override
- public SimpleTimer simpleTimer(Metadata metadata) {
- return null;
- }
-
- @Override
- public SimpleTimer simpleTimer(Metadata metadata, Tag... tags) {
- return null;
- }
-
@Override
public Metric getMetric(MetricID metricID) {
return constructedMeters.get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
@@ -609,12 +516,6 @@ public Counter getCounter(MetricID metricID) {
.get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
}
- @Override
- public ConcurrentGauge getConcurrentGauge(MetricID metricID) {
- return (ConcurrentGauge) constructedMeters
- .get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
- }
-
@Override
public Gauge> getGauge(MetricID metricID) {
return (Gauge>) constructedMeters
@@ -627,33 +528,16 @@ public Histogram getHistogram(MetricID metricID) {
.get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
}
- @Override
- public Meter getMeter(MetricID metricID) {
- return (Meter) constructedMeters.get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
- }
-
@Override
public Timer getTimer(MetricID metricID) {
return (Timer) constructedMeters.get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
}
- @Override
- public SimpleTimer getSimpleTimer(MetricID metricID) {
- return (SimpleTimer) constructedMeters
- .get(new MetricDescriptor(metricID.getName(), withAppTags(metricID.getTagsAsArray())));
- }
-
@Override
public Metadata getMetadata(String name) {
return metadataMap.get(name);
}
- TimerAdapter injectedSimpleTimer(org.eclipse.microprofile.metrics.annotation.Metric annotation) {
- return internalSimpleTimer(
- internalGetMetadata(annotation.name(), MetricType.SIMPLE_TIMER).merge(annotation),
- new MetricDescriptor(annotation.name(), annotation.tags()));
- }
-
TimerAdapter internalSimpleTimer(MpMetadata metadata, MetricDescriptor id) {
// SimpleTimer --> Micrometer Timer
TimerAdapter result = checkCast(TimerAdapter.class, metadata,
@@ -749,16 +633,6 @@ public SortedMap getCounters(MetricFilter metricFilter) {
return getMetrics(MetricType.COUNTER, metricFilter);
}
- @Override
- public SortedMap getConcurrentGauges() {
- return getConcurrentGauges(MetricFilter.ALL);
- }
-
- @Override
- public SortedMap getConcurrentGauges(MetricFilter metricFilter) {
- return getMetrics(MetricType.CONCURRENT_GAUGE, metricFilter);
- }
-
@Override
public SortedMap getHistograms() {
return getHistograms(MetricFilter.ALL);
@@ -769,16 +643,6 @@ public SortedMap getHistograms(MetricFilter metricFilter) {
return getMetrics(MetricType.HISTOGRAM, metricFilter);
}
- @Override
- public SortedMap getMeters() {
- return getMeters(MetricFilter.ALL);
- }
-
- @Override
- public SortedMap getMeters(MetricFilter metricFilter) {
- return getMetrics(MetricType.METERED, metricFilter);
- }
-
@Override
public SortedMap getTimers() {
return getTimers(MetricFilter.ALL);
@@ -789,16 +653,6 @@ public SortedMap getTimers(MetricFilter metricFilter) {
return getMetrics(MetricType.TIMER, metricFilter);
}
- @Override
- public SortedMap getSimpleTimers() {
- return getSimpleTimers(MetricFilter.ALL);
- }
-
- @Override
- public SortedMap getSimpleTimers(MetricFilter metricFilter) {
- return getMetrics(MetricType.SIMPLE_TIMER, metricFilter);
- }
-
@Override
public SortedMap getMetrics(MetricFilter filter) {
SortedMap out = new TreeMap<>();
diff --git a/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricsExtension.java b/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricsExtension.java
index 3d075768..eaf82e8c 100644
--- a/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricsExtension.java
+++ b/implementation/src/main/java/io/smallrye/metrics/legacyapi/LegacyMetricsExtension.java
@@ -29,11 +29,8 @@
import org.eclipse.microprofile.metrics.MetricID;
import org.eclipse.microprofile.metrics.MetricRegistry;
-import org.eclipse.microprofile.metrics.annotation.ConcurrentGauge;
import org.eclipse.microprofile.metrics.annotation.Counted;
import org.eclipse.microprofile.metrics.annotation.Gauge;
-import org.eclipse.microprofile.metrics.annotation.Metered;
-import org.eclipse.microprofile.metrics.annotation.SimplyTimed;
import org.eclipse.microprofile.metrics.annotation.Timed;
import io.smallrye.metrics.MetricProducer;
@@ -114,8 +111,8 @@ void registerAnnotatedTypes(@Observes BeforeBeanDiscovery bbd, BeanManager manag
/*
* For classes annotated with metrics (@Counted, etc, add to metricsInterface list - to address cdi injection).
*/
- private void findAnnotatedInterfaces(@Observes @WithAnnotations({ Counted.class, Gauge.class, Metered.class,
- SimplyTimed.class, Timed.class, ConcurrentGauge.class }) ProcessAnnotatedType pat) {
+ private void findAnnotatedInterfaces(
+ @Observes @WithAnnotations({ Counted.class, Gauge.class, Timed.class }) ProcessAnnotatedType pat) {
Class clazz = pat.getAnnotatedType().getJavaClass();
Package pack = clazz.getPackage();
diff --git a/implementation/src/main/java/io/smallrye/metrics/legacyapi/TimerAdapter.java b/implementation/src/main/java/io/smallrye/metrics/legacyapi/TimerAdapter.java
index 4b38c5f5..9969da9c 100644
--- a/implementation/src/main/java/io/smallrye/metrics/legacyapi/TimerAdapter.java
+++ b/implementation/src/main/java/io/smallrye/metrics/legacyapi/TimerAdapter.java
@@ -5,7 +5,6 @@
import java.util.concurrent.TimeUnit;
import org.eclipse.microprofile.metrics.MetricType;
-import org.eclipse.microprofile.metrics.SimpleTimer;
import org.eclipse.microprofile.metrics.Snapshot;
import io.micrometer.core.instrument.Meter;
@@ -28,13 +27,15 @@ class TimerAdapter implements org.eclipse.microprofile.metrics.Timer, MeterHolde
public TimerAdapter register(MpMetadata metadata, MetricDescriptor descriptor) {
MetricRegistries.MP_APP_METER_REG_ACCESS.set(true);
if (timer == null || metadata.cleanDirtyMetadata()) {
- timer = Timer.builder(descriptor.name()).description(metadata.getDescription()).tags(descriptor.tags())
+ timer = Timer
+ .builder(descriptor.name())
+ .description(metadata.getDescription())
+ .tags(descriptor.tags())
+ .publishPercentiles(0.5, 0.75, 0.95, 0.98, 0.99, 0.999)
+ .percentilePrecision(5) //from 0 - 5 , more precision == more memory usage
.register(registry);
}
MetricRegistries.MP_APP_METER_REG_ACCESS.set(false);
- if (metadata.type == MetricType.SIMPLE_TIMER) {
- metricType = MetricType.SIMPLE_TIMER;
- }
return this;
}
@@ -74,31 +75,6 @@ public long getCount() {
return timer.count();
}
- //TODO: remove
- @Override
- public double getFifteenMinuteRate() {
- throw new UnsupportedOperationException("This operation is not supported when used with micrometer");
- }
-
- //TODO: remove
- @Override
- public double getFiveMinuteRate() {
- throw new UnsupportedOperationException("This operation is not supported when used with micrometer");
- }
-
- //TODO: remove
- @Override
- public double getMeanRate() {
- throw new UnsupportedOperationException("This operation is not supported when used with micrometer");
- }
-
- //TODO: remove
- @Override
- public double getOneMinuteRate() {
- throw new UnsupportedOperationException("This operation is not supported when used with micrometer");
- }
-
- //TODO: remove
@Override
public Snapshot getSnapshot() {
throw new UnsupportedOperationException("This operation is not supported when used with micrometer");
@@ -117,7 +93,7 @@ public void stop(Timer.Sample sample) {
sample.stop(timer);
}
- class SampleAdapter implements org.eclipse.microprofile.metrics.Timer.Context, SimpleTimer.Context {
+ class SampleAdapter implements org.eclipse.microprofile.metrics.Timer.Context {
final Timer timer;
final Timer.Sample sample;
diff --git a/implementation/src/main/java/io/smallrye/metrics/legacyapi/interceptors/MetricResolver.java b/implementation/src/main/java/io/smallrye/metrics/legacyapi/interceptors/MetricResolver.java
index 414e4a84..b0c7338f 100644
--- a/implementation/src/main/java/io/smallrye/metrics/legacyapi/interceptors/MetricResolver.java
+++ b/implementation/src/main/java/io/smallrye/metrics/legacyapi/interceptors/MetricResolver.java
@@ -7,11 +7,8 @@
import org.eclipse.microprofile.metrics.MetricRegistry;
import org.eclipse.microprofile.metrics.Tag;
-import org.eclipse.microprofile.metrics.annotation.ConcurrentGauge;
import org.eclipse.microprofile.metrics.annotation.Counted;
import org.eclipse.microprofile.metrics.annotation.Gauge;
-import org.eclipse.microprofile.metrics.annotation.Metered;
-import org.eclipse.microprofile.metrics.annotation.SimplyTimed;
import org.eclipse.microprofile.metrics.annotation.Timed;
import io.smallrye.metrics.SmallRyeMetricsMessages;
@@ -30,26 +27,14 @@ public Of counted(BeanInfo topClass, MemberInfo element) {
return resolverOf(topClass, element, Counted.class);
}
- public Of concurrentGauge(BeanInfo topClass, MemberInfo element) {
- return resolverOf(topClass, element, ConcurrentGauge.class);
- }
-
public Of gauge(BeanInfo topClass, MemberInfo method) {
return resolverOf(topClass, method, Gauge.class);
}
- public Of metered(BeanInfo topClass, MemberInfo element) {
- return resolverOf(topClass, element, Metered.class);
- }
-
public Of timed(BeanInfo bean, MemberInfo element) {
return resolverOf(bean, element, Timed.class);
}
- public Of simplyTimed(BeanInfo bean, MemberInfo element) {
- return resolverOf(bean, element, SimplyTimed.class);
- }
-
private Of resolverOf(BeanInfo bean, MemberInfo element, Class metric) {
if (element.isAnnotationPresent(metric)) {
return elementResolverOf(element, metric);
diff --git a/implementation/src/main/java/io/smallrye/metrics/setup/MetricsMetadata.java b/implementation/src/main/java/io/smallrye/metrics/setup/MetricsMetadata.java
index 370d198e..6428b8c1 100644
--- a/implementation/src/main/java/io/smallrye/metrics/setup/MetricsMetadata.java
+++ b/implementation/src/main/java/io/smallrye/metrics/setup/MetricsMetadata.java
@@ -3,9 +3,7 @@
import static io.smallrye.metrics.legacyapi.TagsUtils.parseTagsAsArray;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
-import java.util.stream.Stream;
import org.eclipse.microprofile.metrics.Metadata;
import org.eclipse.microprofile.metrics.MetricID;
@@ -15,6 +13,7 @@
import org.eclipse.microprofile.metrics.annotation.Counted;
import org.eclipse.microprofile.metrics.annotation.Timed;
+import io.micrometer.core.instrument.Tags;
import io.smallrye.metrics.OriginAndMetadata;
import io.smallrye.metrics.elementdesc.AnnotationInfo;
import io.smallrye.metrics.elementdesc.BeanInfo;
@@ -38,9 +37,22 @@ public static List registerMetrics(MetricRegistry registry, MetricReso
Tag[] tags = parseTagsAsArray(t.tags());
registry.counter(metadata, tags);
if (registry instanceof LegacyMetricRegistryAdapter) {
+
+ //FIXME: Temporary, resolve the mp.metrics.appName tag if if available to append to MembersToMetricMapping
+ //so that interceptors can find the annotated metric
+ //Possibly remove MembersToMetricMapping in future, and directly query metric/meter-registry.
+ Tags mmTags = ((LegacyMetricRegistryAdapter) registry).withAppTags(tags);
+
+ List mpListTags = new ArrayList();
+ mmTags.forEach(tag -> {
+ Tag mpTag = new Tag(tag.getKey(), tag.getValue());
+ mpListTags.add(mpTag);
+ });
+
+ Tag[] mpTagArray = mpListTags.toArray(new Tag[0]);
+
//add this CDI MetricID into MetricRegistry's MetricID list....
- MetricID metricID = new MetricID(metadata.getName(),
- appendScopeTags(tags, (LegacyMetricRegistryAdapter) registry));
+ MetricID metricID = new MetricID(metadata.getName(), mpTagArray);
metricIDs.add(metricID);
//Some list in MetricRegistry that maps the CDI element, metricID and metric type
@@ -57,8 +69,7 @@ public static List registerMetrics(MetricRegistry registry, MetricReso
Tag[] tags = parseTagsAsArray(t.tags());
registry.timer(metadata, tags);
if (registry instanceof LegacyMetricRegistryAdapter) {
- MetricID metricID = new MetricID(metadata.getName(),
- appendScopeTags(tags, (LegacyMetricRegistryAdapter) registry));
+ MetricID metricID = new MetricID(metadata.getName());
metricIDs.add(metricID);
((LegacyMetricRegistryAdapter) registry).getMemberToMetricMappings().addMetric(element, metricID,
MetricType.TIMER);
@@ -75,9 +86,4 @@ public static Metadata getMetadata(Object origin, String name, String unit, Stri
.withDisplayName(displayName).build();
return new OriginAndMetadata(origin, metadata);
}
-
- private static Tag[] appendScopeTags(Tag[] tags, LegacyMetricRegistryAdapter adapter) {
- return Stream.concat(Arrays.stream(tags), Arrays.stream(adapter.scopeTagsLegacy())).toArray(Tag[]::new);
- }
-
}
diff --git a/pom.xml b/pom.xml
index 6f6a59f2..a9da5187 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
smallrye-metrics-parent
- 5.0.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
pom
SmallRye: MicroProfile Metrics Parent
@@ -34,7 +34,7 @@
2.0
- 3.0
+ 5.0.0-SNAPSHOT
1.8.5
diff --git a/release/pom.xml b/release/pom.xml
index 08c4726b..f5dd40cb 100644
--- a/release/pom.xml
+++ b/release/pom.xml
@@ -5,7 +5,7 @@
io.smallrye
smallrye-metrics-parent
- 5.0.1-SNAPSHOT
+ 5.0.0-SNAPSHOT
smallrye-metrics-release