Skip to content

Commit

Permalink
Merge pull request #1319 from joschi/reporter-factories
Browse files Browse the repository at this point in the history
Test {Ganglia,Graphite}ReporterFactory classes
(cherry picked from commit 856e250)
  • Loading branch information
nickbabcock authored and joschi committed Oct 31, 2015
1 parent d87360c commit 56e975b
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 7 deletions.
4 changes: 4 additions & 0 deletions dropwizard-example/example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,7 @@ viewRendererConfiguration:
.ftl:
strict_syntax: yes
whitespace_stripping: yes

metrics:
type: graphite
frequency: 10s
4 changes: 4 additions & 0 deletions dropwizard-example/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-views-mustache</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-metrics-graphite</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.google.common.collect.ImmutableMap;
import io.dropwizard.Configuration;
import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.metrics.graphite.GraphiteReporterFactory;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.Valid;
Expand All @@ -22,10 +23,13 @@ public class HelloWorldConfiguration extends Configuration {
@Valid
@NotNull
private DataSourceFactory database = new DataSourceFactory();

@NotNull
private Map<String, Map<String, String>> viewRendererConfiguration = Collections.emptyMap();

@Valid
private GraphiteReporterFactory graphiteReporterFactory = new GraphiteReporterFactory();

@JsonProperty
public String getTemplate() {
return template;
Expand Down Expand Up @@ -73,4 +77,14 @@ public void setViewRendererConfiguration(Map<String, Map<String, String>> viewRe
}
this.viewRendererConfiguration = builder.build();
}

@JsonProperty("metrics")
public GraphiteReporterFactory getGraphiteReporterFactory() {
return graphiteReporterFactory;
}

@JsonProperty("metrics")
public void setGraphiteReporterFactory(GraphiteReporterFactory graphiteReporterFactory) {
this.graphiteReporterFactory = graphiteReporterFactory;
}
}
5 changes: 5 additions & 0 deletions dropwizard-metrics-ganglia/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,10 @@
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-ganglia</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-configuration</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -1,13 +1,27 @@
package io.dropwizard.metrics.ganglia;

import com.google.common.base.Optional;
import io.dropwizard.configuration.ConfigurationFactory;
import io.dropwizard.jackson.DiscoverableSubtypeResolver;
import org.assertj.core.api.Assertions;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.validation.BaseValidator;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class GangliaReporterFactoryTest {

@Test
public void isDiscoverable() throws Exception {
Assertions.assertThat(new DiscoverableSubtypeResolver().getDiscoveredSubtypes())
.contains(GangliaReporterFactory.class);
assertThat(new DiscoverableSubtypeResolver().getDiscoveredSubtypes())
.contains(GangliaReporterFactory.class);
}

@Test
public void createDefaultFactory() throws Exception {
final GangliaReporterFactory factory = new ConfigurationFactory<>(GangliaReporterFactory.class,
BaseValidator.newValidator(), Jackson.newObjectMapper(), "dw")
.build();
assertThat(factory.getFrequency()).isEqualTo(Optional.absent());
}
}
5 changes: 5 additions & 0 deletions dropwizard-metrics-graphite/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-configuration</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.graphite.Graphite;
import com.codahale.metrics.graphite.GraphiteReporter;
import com.google.common.base.Optional;
import io.dropwizard.configuration.ConfigurationFactory;
import io.dropwizard.jackson.DiscoverableSubtypeResolver;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.validation.BaseValidator;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
Expand All @@ -17,7 +21,15 @@ public class GraphiteReporterFactoryTest {
@Test
public void isDiscoverable() throws Exception {
assertThat(new DiscoverableSubtypeResolver().getDiscoveredSubtypes())
.contains(GraphiteReporterFactory.class);
.contains(GraphiteReporterFactory.class);
}

@Test
public void createDefaultFactory() throws Exception {
final GraphiteReporterFactory factory = new ConfigurationFactory<>(GraphiteReporterFactory.class,
BaseValidator.newValidator(), Jackson.newObjectMapper(), "dw")
.build();
assertThat(factory.getFrequency()).isEqualTo(Optional.absent());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.ScheduledReporter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.common.collect.ImmutableSet;
import io.dropwizard.util.Duration;
import io.dropwizard.validation.MinDuration;
import org.hibernate.validator.valuehandling.UnwrapValidatedValue;

import javax.validation.Valid;
Expand Down Expand Up @@ -86,9 +88,9 @@ public abstract class BaseReporterFactory implements ReporterFactory {
@NotNull
private ImmutableSet<String> includes = ImmutableSet.of();

@NotNull
@Valid
@UnwrapValidatedValue(false)
@MinDuration(0)
@UnwrapValidatedValue
private Optional<Duration> frequency = Optional.absent();

private boolean useRegexFilters = false;
Expand Down Expand Up @@ -173,6 +175,7 @@ public void setUseRegexFilters(boolean useRegexFilters) {
* @see #getIncludes()
* @see #getExcludes()
*/
@JsonIgnore
public MetricFilter getFilter() {
final StringMatchingStrategy stringMatchingStrategy = getUseRegexFilters() ?
REGEX_STRING_MATCHING_STRATEGY : DEFAULT_STRING_MATCHING_STRATEGY;
Expand Down

0 comments on commit 56e975b

Please sign in to comment.