Search in sources :

Example 31 with Gauge

use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.

the class MetricSchemaCompatibilityTest method backwardCompatibleMetricTypes.

/**
 * Assuring that when the configuration flag useSemanticMetricTypes is NOT set,
 * created metric types match the old behavior.
 */
@Test
void backwardCompatibleMetricTypes() {
    assertSchemaCompatibility(Collections.singletonList(new Pair(GAUGE, DOUBLE)), registry.createGauge(batch, Gauge.builder("gauge", () -> 1).register(registry)));
    assertSchemaCompatibility(Collections.singletonList(new Pair(GAUGE, DOUBLE)), registry.createCounter(batch, Counter.builder("counter").register(registry)));
    assertSchemaCompatibility(Arrays.asList(new Pair(GAUGE, DISTRIBUTION), new Pair(GAUGE, DOUBLE), new Pair(GAUGE, INT64)), registry.createTimer(batch, Timer.builder("timer").register(registry)));
    assertSchemaCompatibility(Arrays.asList(new Pair(GAUGE, DISTRIBUTION), new Pair(GAUGE, DOUBLE), new Pair(GAUGE, INT64)), registry.createSummary(batch, DistributionSummary.builder("summary").register(registry)));
    assertSchemaCompatibility(Arrays.asList(new Pair(GAUGE, INT64), new Pair(GAUGE, DOUBLE)), registry.createLongTaskTimer(batch, LongTaskTimer.builder("longTaskTimer").register(registry)));
    assertSchemaCompatibility(Collections.singletonList(new Pair(GAUGE, DOUBLE)), registry.createTimeGauge(batch, TimeGauge.builder("timeGauge", () -> 1, TimeUnit.SECONDS).register(registry)));
    assertSchemaCompatibility(Collections.singletonList(new Pair(GAUGE, DOUBLE)), registry.createFunctionCounter(batch, FunctionCounter.builder("functionCounter", 1, value -> 1).register(registry)));
    assertSchemaCompatibility(Collections.singletonList(new Pair(GAUGE, DISTRIBUTION)), registry.createFunctionTimer(batch, FunctionTimer.builder("functionTimer", 1, value -> 1, value -> 1, TimeUnit.SECONDS).register(registry)));
    assertSchemaCompatibility(Collections.singletonList(new Pair(GAUGE, DOUBLE)), registry.createMeter(batch, Meter.builder("gauge", Meter.Type.OTHER, Collections.singletonList(new Measurement(() -> 1.0, Statistic.UNKNOWN))).register(registry)));
}
Also used : Statistic(io.micrometer.core.instrument.Statistic) LongTaskTimer(io.micrometer.core.instrument.LongTaskTimer) Arrays(java.util.Arrays) MockClock(io.micrometer.core.instrument.MockClock) MetricDescriptor(com.google.api.MetricDescriptor) HashMap(java.util.HashMap) TimeGauge(io.micrometer.core.instrument.TimeGauge) MetricKind(com.google.api.MetricDescriptor.MetricKind) Timer(io.micrometer.core.instrument.Timer) ValueType(com.google.api.MetricDescriptor.ValueType) Map(java.util.Map) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Counter(io.micrometer.core.instrument.Counter) Gauge(io.micrometer.core.instrument.Gauge) TimeSeries(com.google.monitoring.v3.TimeSeries) Meter(io.micrometer.core.instrument.Meter) Collectors(java.util.stream.Collectors) FunctionTimer(io.micrometer.core.instrument.FunctionTimer) Measurement(io.micrometer.core.instrument.Measurement) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) List(java.util.List) Stream(java.util.stream.Stream) DistributionSummary(io.micrometer.core.instrument.DistributionSummary) FunctionCounter(io.micrometer.core.instrument.FunctionCounter) Collections(java.util.Collections) Measurement(io.micrometer.core.instrument.Measurement) Test(org.junit.jupiter.api.Test)

Example 32 with Gauge

use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.

the class KairosMeterRegistryTest method writeGaugeShouldDropInfiniteValues.

@Test
void writeGaugeShouldDropInfiniteValues() {
    meterRegistry.gauge("my.gauge", Double.POSITIVE_INFINITY);
    Gauge gauge = meterRegistry.find("my.gauge").gauge();
    assertThat(meterRegistry.writeGauge(gauge)).isEmpty();
    meterRegistry.gauge("my.gauge", Double.NEGATIVE_INFINITY);
    gauge = meterRegistry.find("my.gauge").gauge();
    assertThat(meterRegistry.writeGauge(gauge)).isEmpty();
}
Also used : Gauge(io.micrometer.core.instrument.Gauge) TimeGauge(io.micrometer.core.instrument.TimeGauge) Test(org.junit.jupiter.api.Test)

Example 33 with Gauge

use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.

the class JCacheMetricsTest method reportExpectedMetrics.

@Test
void reportExpectedMetrics() {
    MeterRegistry meterRegistry = new SimpleMeterRegistry();
    metrics.bindTo(meterRegistry);
    verifyCommonCacheMetrics(meterRegistry, metrics);
    Gauge cacheRemovals = fetch(meterRegistry, "cache.removals").gauge();
    assertThat(cacheRemovals.value()).isEqualTo(expectedAttributeValue.doubleValue());
}
Also used : SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Gauge(io.micrometer.core.instrument.Gauge) Test(org.junit.jupiter.api.Test) AbstractCacheMetricsTest(io.micrometer.core.instrument.binder.cache.AbstractCacheMetricsTest)

Example 34 with Gauge

use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.

the class JvmInfoMetricsTest method assertJvmInfo.

@Test
void assertJvmInfo() {
    MeterRegistry registry = new SimpleMeterRegistry();
    new JvmInfoMetrics().bindTo(registry);
    Collection<Gauge> gauges = Search.in(registry).name("jvm.info").gauges();
    assertThat(gauges.size()).isEqualTo(1);
    Gauge jvmInfo = gauges.iterator().next();
    assertThat(jvmInfo.value()).isEqualTo(1L);
    Meter.Id id = jvmInfo.getId();
    assertThat(id.getTag("version")).isNotNull();
    assertThat(id.getTag("vendor")).isNotNull();
    assertThat(id.getTag("runtime")).isNotNull();
}
Also used : Meter(io.micrometer.core.instrument.Meter) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Gauge(io.micrometer.core.instrument.Gauge) Test(org.junit.jupiter.api.Test)

Example 35 with Gauge

use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.

the class EhCache2MetricsTest method reportMetrics.

@Test
void reportMetrics() {
    MeterRegistry registry = new SimpleMeterRegistry();
    metrics.bindTo(registry);
    verifyCommonCacheMetrics(registry, metrics);
    StatisticsGateway stats = cache.getStatistics();
    Gauge remoteSize = fetch(registry, "cache.remoteSize").gauge();
    assertThat(remoteSize.value()).isEqualTo(stats.getRemoteSize());
    FunctionCounter cacheRemovals = fetch(registry, "cache.removals").functionCounter();
    assertThat(cacheRemovals.count()).isEqualTo(stats.cacheRemoveCount());
    String cacheAdded = "cache.puts.added";
    FunctionCounter putsAdded = fetch(registry, cacheAdded, Tags.of("result", "added")).functionCounter();
    assertThat(putsAdded.count()).isEqualTo(stats.cachePutAddedCount());
    FunctionCounter putsUpdated = fetch(registry, cacheAdded, Tags.of("result", "updated")).functionCounter();
    assertThat(putsUpdated.count()).isEqualTo(stats.cachePutUpdatedCount());
    Gauge offHeapSize = fetch(registry, "cache.local.offheap.size").gauge();
    assertThat(offHeapSize.value()).isEqualTo(stats.getLocalOffHeapSizeInBytes());
    Gauge heapSize = fetch(registry, "cache.local.heap.size").gauge();
    assertThat(heapSize.value()).isEqualTo(stats.getLocalHeapSizeInBytes());
    Gauge diskSize = fetch(registry, "cache.local.disk.size").gauge();
    assertThat(diskSize.value()).isEqualTo(stats.getLocalDiskSizeInBytes());
    // miss metrics
    String misses = "cache.misses";
    FunctionCounter expiredMisses = fetch(registry, misses, Tags.of("reason", "expired")).functionCounter();
    assertThat(expiredMisses.count()).isEqualTo(stats.cacheMissExpiredCount());
    FunctionCounter notFoundMisses = fetch(registry, misses, Tags.of("reason", "notFound")).functionCounter();
    assertThat(notFoundMisses.count()).isEqualTo(stats.cacheMissNotFoundCount());
    // commit transaction metrics
    String xaCommits = "cache.xa.commits";
    FunctionCounter readOnlyCommits = fetch(registry, xaCommits, Tags.of("result", "readOnly")).functionCounter();
    assertThat(readOnlyCommits.count()).isEqualTo(stats.xaCommitReadOnlyCount());
    FunctionCounter exceptionCommits = fetch(registry, xaCommits, Tags.of("result", "exception")).functionCounter();
    assertThat(exceptionCommits.count()).isEqualTo(stats.xaCommitExceptionCount());
    FunctionCounter committedCommits = fetch(registry, xaCommits, Tags.of("result", "committed")).functionCounter();
    assertThat(committedCommits.count()).isEqualTo(stats.xaCommitCommittedCount());
    // rollback transaction metrics
    String xaRollbacks = "cache.xa.rollbacks";
    FunctionCounter exceptionRollback = fetch(registry, xaRollbacks, Tags.of("result", "exception")).functionCounter();
    assertThat(exceptionRollback.count()).isEqualTo(stats.xaRollbackExceptionCount());
    FunctionCounter successRollback = fetch(registry, xaRollbacks, Tags.of("result", "success")).functionCounter();
    assertThat(successRollback.count()).isEqualTo(stats.xaRollbackSuccessCount());
    // recovery transaction metrics
    String xaRecoveries = "cache.xa.recoveries";
    FunctionCounter nothingRecovered = fetch(registry, xaRecoveries, Tags.of("result", "nothing")).functionCounter();
    assertThat(nothingRecovered.count()).isEqualTo(stats.xaRecoveryNothingCount());
    FunctionCounter successRecoveries = fetch(registry, xaRecoveries, Tags.of("result", "success")).functionCounter();
    assertThat(successRecoveries.count()).isEqualTo(stats.xaRecoveryRecoveredCount());
}
Also used : SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) StatisticsGateway(net.sf.ehcache.statistics.StatisticsGateway) FunctionCounter(io.micrometer.core.instrument.FunctionCounter) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Gauge(io.micrometer.core.instrument.Gauge) Test(org.junit.jupiter.api.Test) AbstractCacheMetricsTest(io.micrometer.core.instrument.binder.cache.AbstractCacheMetricsTest)

Aggregations

Gauge (io.micrometer.core.instrument.Gauge)43 Test (org.junit.jupiter.api.Test)27 TimeGauge (io.micrometer.core.instrument.TimeGauge)16 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)10 MeterRegistry (io.micrometer.core.instrument.MeterRegistry)9 FunctionCounter (io.micrometer.core.instrument.FunctionCounter)7 Meter (io.micrometer.core.instrument.Meter)7 DistributionSummary (io.micrometer.core.instrument.DistributionSummary)6 FunctionTimer (io.micrometer.core.instrument.FunctionTimer)6 Timer (io.micrometer.core.instrument.Timer)6 Counter (io.micrometer.core.instrument.Counter)5 LongTaskTimer (io.micrometer.core.instrument.LongTaskTimer)5 TimeUnit (java.util.concurrent.TimeUnit)5 Test (org.junit.Test)5 Issue (io.micrometer.core.Issue)4 Measurement (io.micrometer.core.instrument.Measurement)4 MockClock (io.micrometer.core.instrument.MockClock)4 AbstractCacheMetricsTest (io.micrometer.core.instrument.binder.cache.AbstractCacheMetricsTest)4 Statistic (io.micrometer.core.instrument.Statistic)3 Arrays (java.util.Arrays)3