Remove injectable constructors in metrics library

Users of the client library should be responsible for providing the bindings required. By removing the injectable constructors and named bindings in their parameters, the client library is no longer forcing its users to provide bindings with specific named annotations.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=170490834
This commit is contained in:
jianglai 2017-09-29 09:19:37 -07:00 committed by Ben McIlwain
parent ac0718079d
commit dc41d7923e
2 changed files with 6 additions and 18 deletions

View file

@ -30,8 +30,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.inject.Inject;
import javax.inject.Named;
/**
* Engine to write metrics to a {@link MetricWriter} on a regular periodic basis.
@ -57,11 +55,8 @@ public class MetricReporter extends AbstractScheduledService {
* @param writeInterval time period between metric writes, in seconds.
* @param threadFactory factory to use when creating background threads.
*/
@Inject
public MetricReporter(
MetricWriter metricWriter,
@Named("metricsWriteInterval") long writeInterval,
@Named("metricsBackgroundThreadFactory") ThreadFactory threadFactory) {
MetricWriter metricWriter, long writeInterval, ThreadFactory threadFactory) {
this(
metricWriter,
writeInterval,

View file

@ -27,11 +27,10 @@ import com.google.common.collect.ImmutableMap;
import dagger.Module;
import dagger.Provides;
import google.registry.config.RegistryConfig.Config;
import google.registry.monitoring.metrics.MetricReporter;
import google.registry.monitoring.metrics.MetricWriter;
import google.registry.monitoring.metrics.stackdriver.StackdriverWriter;
import java.util.Set;
import java.util.concurrent.ThreadFactory;
import javax.inject.Named;
import org.joda.time.Duration;
/** Dagger module for Google Stackdriver service connection objects. */
@ -85,15 +84,9 @@ public final class StackdriverModule {
}
@Provides
@Named("metricsBackgroundThreadFactory")
static ThreadFactory provideThreadFactory() {
return ThreadManager.backgroundThreadFactory();
}
@Provides
@Named("metricsWriteInterval")
static long provideMetricsWriteInterval(
@Config("metricsWriteInterval") Duration metricsWriteInterval) {
return metricsWriteInterval.getStandardSeconds();
static MetricReporter provideMetricReporter(
MetricWriter metricWriter, @Config("metricsWriteInterval") Duration writeInterval) {
return new MetricReporter(
metricWriter, writeInterval.getStandardSeconds(), ThreadManager.backgroundThreadFactory());
}
}