mirror of
https://github.com/google/nomulus.git
synced 2025-05-17 17:59:41 +02:00
Make metrics export run on backend module
This fixes a previous issue where metrics generated on the tools/backend modules weren't being successfully exported to BigQuery. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=119047757
This commit is contained in:
parent
17c4ad83c8
commit
e6d3f42e60
7 changed files with 34 additions and 15 deletions
|
@ -13,6 +13,16 @@
|
|||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<!-- Whitebox Metrics servlet. -->
|
||||
<servlet>
|
||||
<servlet-name>metrics</servlet-name>
|
||||
<servlet-class>com.google.domain.registry.monitoring.whitebox.MetricsTaskServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>metrics</servlet-name>
|
||||
<url-pattern>/_dr/task/metrics</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- RDE -->
|
||||
|
||||
<!--
|
||||
|
|
|
@ -103,16 +103,6 @@
|
|||
<url-pattern>/check</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Whitebox Metrics servlet. -->
|
||||
<servlet>
|
||||
<servlet-name>metrics</servlet-name>
|
||||
<servlet-class>com.google.domain.registry.monitoring.whitebox.MetricsTaskServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>metrics</servlet-name>
|
||||
<url-pattern>/_dr/task/metrics</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Security config -->
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
|
|
|
@ -18,6 +18,8 @@ import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
|||
import static com.google.appengine.api.taskqueue.TaskOptions.Builder.withUrl;
|
||||
import static com.google.domain.registry.bigquery.BigqueryUtils.toBigqueryTimestamp;
|
||||
|
||||
import com.google.appengine.api.modules.ModulesService;
|
||||
import com.google.appengine.api.modules.ModulesServiceFactory;
|
||||
import com.google.appengine.api.taskqueue.TaskOptions;
|
||||
import com.google.appengine.api.taskqueue.TransientFailureException;
|
||||
import com.google.common.base.Supplier;
|
||||
|
@ -33,12 +35,15 @@ import java.util.UUID;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/** A collector of metric information. */
|
||||
abstract class Metrics {
|
||||
public abstract class Metrics {
|
||||
|
||||
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
||||
|
||||
public static final String QUEUE = "bigquery-streaming-metrics";
|
||||
|
||||
@NonFinalForTesting
|
||||
private static ModulesService modulesService = ModulesServiceFactory.getModulesService();
|
||||
|
||||
@NonFinalForTesting
|
||||
private static Clock clock = new SystemClock();
|
||||
|
||||
|
@ -60,7 +65,9 @@ abstract class Metrics {
|
|||
|
||||
public void export() {
|
||||
try {
|
||||
TaskOptions opts = withUrl("/_dr/task/metrics")
|
||||
String hostname = modulesService.getVersionHostname("backend", null);
|
||||
TaskOptions opts = withUrl(MetricsTaskServlet.PATH)
|
||||
.header("Host", hostname)
|
||||
.param("insertId", idGenerator.get())
|
||||
.param("startTime", toBigqueryTimestamp(startTimeMillis, TimeUnit.MILLISECONDS))
|
||||
.param("endTime", toBigqueryTimestamp(clock.nowUtc().getMillis(), TimeUnit.MILLISECONDS));
|
||||
|
|
|
@ -51,6 +51,8 @@ import javax.servlet.http.HttpServletResponse;
|
|||
/** Servlet for exporting metrics to BigQuery. */
|
||||
public class MetricsTaskServlet extends HttpServlet {
|
||||
|
||||
public static final String PATH = "/_dr/task/metrics";
|
||||
|
||||
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
||||
private static final String DATASET_ID = "metrics";
|
||||
private static final String PROJECT_ID = RegistryEnvironment.get().config().getProjectId();
|
||||
|
@ -81,7 +83,7 @@ public class MetricsTaskServlet extends HttpServlet {
|
|||
ImmutableMap.Builder<String, Object> b = new ImmutableMap.Builder<>();
|
||||
|
||||
@SuppressWarnings({"cast", "unchecked"}) // Return type is always a Set<String>.
|
||||
Set<String> parameterKeys = (Set<String>) req.getParameterMap().keySet();
|
||||
Set<String> parameterKeys = req.getParameterMap().keySet();
|
||||
|
||||
for (String key : Sets.difference(parameterKeys, filter)) {
|
||||
b.put(key, req.getParameter(key));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue