Wire in MetricReporter into the backend servlet to publish metrics

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130468842
This commit is contained in:
shikhman 2016-08-16 17:40:19 -07:00 committed by Ben McIlwain
parent 4a34807b1d
commit b45c2ca2ee
11 changed files with 214 additions and 25 deletions

View file

@ -18,11 +18,15 @@ import static java.util.Arrays.asList;
import com.google.common.base.Function;
import com.google.common.collect.FluentIterable;
import google.registry.monitoring.metrics.MetricReporter;
import google.registry.request.RequestHandler;
import google.registry.request.RequestModule;
import google.registry.util.FormattingLogger;
import java.io.IOException;
import java.lang.reflect.Method;
import java.security.Security;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -32,6 +36,8 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider;
public final class BackendServlet extends HttpServlet {
private static final BackendComponent component = DaggerBackendComponent.create();
private static final MetricReporter metricReporter = component.metricReporter();
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
private static final RequestHandler<BackendRequestComponent> requestHandler =
RequestHandler.create(BackendRequestComponent.class, FluentIterable
@ -46,6 +52,23 @@ public final class BackendServlet extends HttpServlet {
@Override
public void init() {
Security.addProvider(new BouncyCastleProvider());
try {
metricReporter.startAsync().awaitRunning(10, TimeUnit.SECONDS);
logger.info("Started up MetricReporter");
} catch (TimeoutException timeoutException) {
logger.severefmt("Failed to initialize MetricReporter: %s", timeoutException);
}
}
@Override
public void destroy() {
try {
metricReporter.stopAsync().awaitTerminated(10, TimeUnit.SECONDS);
logger.info("Shut down MetricReporter");
} catch (TimeoutException timeoutException) {
logger.severefmt("Failed to stop MetricReporter: %s", timeoutException);
}
}
@Override