All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.dropwizard.metrics.common.ConsoleReporterFactory Maven / Gradle / Ivy

There is a newer version: 5.0.0-rc.3
Show newest version
package io.dropwizard.metrics.common;

import com.codahale.metrics.ConsoleReporter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.ScheduledReporter;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import jakarta.validation.constraints.NotNull;

import java.io.PrintStream;
import java.util.TimeZone;

/**
 * A factory for configuring and building {@link ConsoleReporter} instances.
 * 

* Configuration Parameters: *

* * * * * * * * * * * * * * * * * * * * * *
NameDefaultDescription
timeZoneUTCThe timezone to display dates/times for.
outputstdoutThe stream to write to. One of {@code stdout} or {@code stderr}.
See {@link BaseFormattedReporterFactory} for more options.
See {@link BaseReporterFactory} for more options.
*/ @JsonTypeName("console") public class ConsoleReporterFactory extends BaseFormattedReporterFactory { public enum ConsoleStream { STDOUT, STDERR; public PrintStream get() { if (this == STDERR) { return System.err; } else { return System.out; } } } @NotNull private TimeZone timeZone = TimeZone.getTimeZone("UTC"); @NotNull private ConsoleStream output = ConsoleStream.STDOUT; @JsonProperty public TimeZone getTimeZone() { return timeZone; } @JsonProperty public void setTimeZone(TimeZone timeZone) { this.timeZone = timeZone; } @JsonProperty public ConsoleStream getOutput() { return output; } @JsonProperty public void setOutput(ConsoleStream stream) { this.output = stream; } @Override public ScheduledReporter build(MetricRegistry registry) { return ConsoleReporter.forRegistry(registry) .convertDurationsTo(getDurationUnit()) .convertRatesTo(getRateUnit()) .filter(getFilter()) .formattedFor(getLocale()) .formattedFor(getTimeZone()) .outputTo(getOutput().get()) .disabledMetricAttributes(getDisabledAttributes()) .build(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy