/******************************************************************************* * Copyright (c) 2005, 2014 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); *******************************************************************************/ package org.springside.modules.metrics; import static org.assertj.core.api.Assertions.*; import java.util.Map; import org.junit.Test; import org.springside.modules.metrics.metric.Counter; import org.springside.modules.metrics.metric.Histogram; import org.springside.modules.metrics.metric.HistogramMetric; import org.springside.modules.metrics.metric.Timer; public class MetricRegistryTest { @Test public void counter() { MetricRegistry metricRegistry = new MetricRegistry(); Counter counter = metricRegistry.counter(MetricRegistry.name("UserService", "getUser.counter")); assertThat(counter).isNotNull(); Map<String, Counter> counters = metricRegistry.getCounters(); Counter counter2 = counters.get("UserService.getUser.counter"); assertThat(counter2).isNotNull().isSameAs(counter); Counter counter3 = metricRegistry.counter(MetricRegistry.name("UserService", "getUser.counter")); assertThat(counter3).isNotNull().isSameAs(counter); } @Test public void histogram() { MetricRegistry metricRegistry = new MetricRegistry(); Histogram histogram = metricRegistry.histogram(MetricRegistry.name("UserService", "getUser.latency")); assertThat(histogram).isNotNull(); Map<String, Histogram> histograms = metricRegistry.getHistograms(); Histogram histogram2 = histograms.get("UserService.getUser.latency"); assertThat(histogram2).isNotNull().isSameAs(histogram); Histogram histogram3 = metricRegistry.histogram(MetricRegistry.name("UserService", "getUser.latency")); assertThat(histogram3).isNotNull().isSameAs(histogram); } @Test public void execution() { MetricRegistry metricRegistry = new MetricRegistry(); Timer execution = metricRegistry.timer(MetricRegistry.name("UserService", "getUser.execution")); assertThat(execution).isNotNull(); Map<String, Timer> executions = metricRegistry.getTimers(); Timer execution2 = executions.get("UserService.getUser.execution"); assertThat(execution2).isNotNull().isSameAs(execution); Timer execution3 = metricRegistry.timer(MetricRegistry.name("UserService", "getUser.execution")); assertThat(execution3).isNotNull().isSameAs(execution); } @Test public void defaultPcts() { MetricRegistry metricRegistry = new MetricRegistry(); // set pcts 60,70 Histogram histogram = metricRegistry.histogram(MetricRegistry.name("UserService", "getUser.histogram.setPcts"), 60d, 70d); for (int i = 1; i <= 100; i++) { histogram.update(i); } HistogramMetric metric = histogram.calculateMetric(); assertThat(metric.pcts.get(60d)).isEqualTo(60); assertThat(metric.pcts.get(70d)).isEqualTo(70); // new default 50 metricRegistry.setDefaultPcts(new Double[] { 50d }); Histogram histogramWithNewDefaultPcts = metricRegistry.histogram(MetricRegistry.name("UserService", "getUser.histogram.newDefault")); for (int i = 1; i <= 100; i++) { histogramWithNewDefaultPcts.update(i); } metric = histogramWithNewDefaultPcts.calculateMetric(); assertThat(metric.pcts.get(50d)).isEqualTo(50); assertThat(metric.pcts.get(90d)).isNull(); } }