mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
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:
parent
4a34807b1d
commit
b45c2ca2ee
11 changed files with 214 additions and 25 deletions
|
@ -35,6 +35,7 @@ java_library(
|
|||
"//java/google/registry/keyring/api",
|
||||
"//java/google/registry/mapreduce",
|
||||
"//java/google/registry/model",
|
||||
"//java/google/registry/monitoring/metrics",
|
||||
"//java/google/registry/monitoring/whitebox",
|
||||
"//java/google/registry/rde",
|
||||
"//java/google/registry/request",
|
||||
|
|
|
@ -26,6 +26,7 @@ import google.registry.groups.GroupsModule;
|
|||
import google.registry.groups.GroupssettingsModule;
|
||||
import google.registry.keyring.api.KeyModule;
|
||||
import google.registry.keyring.api.VoidKeyringModule;
|
||||
import google.registry.monitoring.metrics.MetricReporter;
|
||||
import google.registry.monitoring.whitebox.StackdriverModule;
|
||||
import google.registry.rde.JSchModule;
|
||||
import google.registry.request.Modules.AppIdentityCredentialModule;
|
||||
|
@ -71,4 +72,5 @@ import javax.inject.Singleton;
|
|||
})
|
||||
interface BackendComponent {
|
||||
BackendRequestComponent startRequest(RequestModule requestModule);
|
||||
MetricReporter metricReporter();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue