use of org.eclipse.microprofile.metrics.MetricID in project Payara by payara.
the class OpenMetricsExporterTest method eachTypeAndHelpLineOccursOnlyOnceForEachOpenMetricsName.
/*
* Below tests are no examples from the specification
*/
@Test
public void eachTypeAndHelpLineOccursOnlyOnceForEachOpenMetricsName() {
Gauge<Long> g1 = () -> 1L;
MetricID g1ID = new MetricID("common", new Tag("a", "b"));
Gauge<Long> g2 = () -> 2L;
MetricID g2ID = new MetricID("common", new Tag("some", "other"));
Metadata metadata = Metadata.builder().withName("common").withDescription("description").build();
exporter.export(g1ID, g1, metadata);
exporter.export(g2ID, g2, metadata);
assertEquals("# TYPE application_common gauge\n" + "# HELP application_common description\n" + "application_common{a=\"b\"} 1\n" + "application_common{some=\"other\"} 2\n", actual.getBuffer().toString());
}
use of org.eclipse.microprofile.metrics.MetricID in project Payara by payara.
the class OpenMetricsExporterTest method gaugesWithNonNumberValuesAreNotExported.
@Test
public void gaugesWithNonNumberValuesAreNotExported() {
Gauge<String> gauge = () -> "hello world";
MetricID metricID = new MetricID("test3");
Metadata metadata = Metadata.builder().withName(metricID.getName()).build();
assertOutputEquals("", metricID, gauge, metadata);
}
use of org.eclipse.microprofile.metrics.MetricID in project Payara by payara.
the class OpenMetricsExporterTest method exportTags.
@Test
@SuppressWarnings("unchecked")
public void exportTags() {
Gauge<Long> fooVal = mock(Gauge.class);
when(fooVal.getValue()).thenReturn(12345L);
MetricID fooValID = new MetricID("fooVal", new Tag("store", "webshop"));
Metadata fooValMetadata = Metadata.builder().withName(fooValID.getName()).withDescription("The average duration of foo requests during last 5 minutes").withUnit(MetricUnits.MILLISECONDS).build();
MetricExporter base = exporter.in(Type.BASE);
base.export(fooValID, fooVal, fooValMetadata);
Gauge<Long> barVal = mock(Gauge.class);
when(barVal.getValue()).thenReturn(42L);
MetricID barValID = new MetricID("barVal", new Tag("component", "backend"), new Tag("store", "webshop"));
Metadata barValMetadata = Metadata.builder().withName(barValID.getName()).withUnit(MetricUnits.KILOBYTES).build();
base.export(barValID, barVal, barValMetadata);
Gauge<Long> barVal2 = mock(Gauge.class);
when(barVal2.getValue()).thenReturn(63L);
MetricID barVal2ID = new MetricID("barVal", new Tag("component", "frontend"), new Tag("store", "webshop"));
base.export(barVal2ID, barVal2, barValMetadata);
assertOutputEqualsFile("GaugeTags.txt");
}
use of org.eclipse.microprofile.metrics.MetricID in project Payara by payara.
the class OpenMetricsExporterTest method exportGauge.
@Test
public void exportGauge() {
@SuppressWarnings("unchecked") Gauge<Long> gauge = mock(Gauge.class);
when(gauge.getValue()).thenReturn(80L);
MetricID metricID = new MetricID("cost");
Metadata metadata = Metadata.builder().withName(metricID.getName()).withDescription("The running cost of the server in dollars.").withUnit("dollars").build();
assertOutputEqualsFile("Gauge.txt", metricID, gauge, metadata);
}
use of org.eclipse.microprofile.metrics.MetricID in project Payara by payara.
the class AnnotationReaderGetOrRegisterTest method assertGetsOrRegisters.
private <T extends Metric, A extends Annotation> void assertGetsOrRegisters(AnnotationReader<A> reader, Class<T> metric, int expectedTags) {
InjectionPoint point = testMethodAsInjectionPoint();
T c1 = reader.getOrRegister(point, metric, registry);
assertNotNull(c1);
T c2 = reader.getOrRegister(point, metric, registry);
assertNotNull(c2);
assertSame(c1, c2);
Set<MetricID> metricIDs = registry.getMetricIDs();
assertEquals(1, metricIDs.size());
MetricID metricID = metricIDs.iterator().next();
assertEquals(expectedTags, metricID.getTagsAsArray().length);
if (expectedTags == 2) {
assertArrayEquals(new Tag[] { new Tag("a", "b"), new Tag("c", "d") }, metricID.getTagsAsArray());
}
Metadata metadata = registry.getMetadata(metricID.getName());
assertNotNull(metadata);
A annotation = null;
try {
annotation = reader.annotation(point);
} catch (IllegalArgumentException ex) {
// with no annotation, done
return;
}
assertEquals(reader.type(), metadata.getTypeRaw());
String displayName = reader.displayName(annotation);
if (displayName.isEmpty()) {
assertEquals(metricID.getName(), metadata.getDisplayName());
} else {
assertEquals(displayName, metadata.getDisplayName());
}
String description = reader.description(annotation);
if (description.isEmpty()) {
assertFalse(metadata.description().isPresent());
} else {
assertEquals(description, metadata.getDescription());
}
String unit = reader.unit(annotation);
if (unit.isEmpty()) {
assertFalse(metadata.unit().isPresent());
} else {
assertEquals(unit, metadata.getUnit());
}
}
Aggregations