mirror of
https://github.com/google/nomulus.git
synced 2025-05-13 16:07:15 +02:00
Inject the BigQuery streaming metrics queue
This makes local development easier by allowing a stub to be injected for the queue. Based on Justin Graham's PR: https://github.com/google/nomulus/pull/51 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=144439454
This commit is contained in:
parent
f7e84b56a0
commit
8f8d67a17b
3 changed files with 16 additions and 3 deletions
|
@ -14,10 +14,10 @@
|
||||||
|
|
||||||
package google.registry.monitoring.whitebox;
|
package google.registry.monitoring.whitebox;
|
||||||
|
|
||||||
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
|
||||||
import static com.google.appengine.api.taskqueue.TaskOptions.Builder.withUrl;
|
import static com.google.appengine.api.taskqueue.TaskOptions.Builder.withUrl;
|
||||||
|
|
||||||
import com.google.appengine.api.modules.ModulesService;
|
import com.google.appengine.api.modules.ModulesService;
|
||||||
|
import com.google.appengine.api.taskqueue.Queue;
|
||||||
import com.google.appengine.api.taskqueue.TaskOptions;
|
import com.google.appengine.api.taskqueue.TaskOptions;
|
||||||
import com.google.appengine.api.taskqueue.TransientFailureException;
|
import com.google.appengine.api.taskqueue.TransientFailureException;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
|
@ -36,10 +36,11 @@ public class BigQueryMetricsEnqueuer {
|
||||||
|
|
||||||
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass();
|
||||||
|
|
||||||
public static final String QUEUE = "bigquery-streaming-metrics";
|
public static final String QUEUE_BIGQUERY_STREAMING_METRICS = "bigquery-streaming-metrics";
|
||||||
|
|
||||||
@Inject ModulesService modulesService;
|
@Inject ModulesService modulesService;
|
||||||
@Inject @Named("insertIdGenerator") Supplier<String> idGenerator;
|
@Inject @Named("insertIdGenerator") Supplier<String> idGenerator;
|
||||||
|
@Inject @Named(QUEUE_BIGQUERY_STREAMING_METRICS) Queue queue;
|
||||||
|
|
||||||
@Inject BigQueryMetricsEnqueuer() {}
|
@Inject BigQueryMetricsEnqueuer() {}
|
||||||
|
|
||||||
|
@ -54,7 +55,7 @@ public class BigQueryMetricsEnqueuer {
|
||||||
opts.param(entry.getKey(), entry.getValue());
|
opts.param(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
opts.param("tableId", metric.getTableId());
|
opts.param("tableId", metric.getTableId());
|
||||||
getQueue(QUEUE).add(opts);
|
queue.add(opts);
|
||||||
} catch (TransientFailureException e) {
|
} catch (TransientFailureException e) {
|
||||||
// Log and swallow. We may drop some metrics here but this should be rare.
|
// Log and swallow. We may drop some metrics here but this should be rare.
|
||||||
logger.info(e, e.getMessage());
|
logger.info(e, e.getMessage());
|
||||||
|
|
|
@ -14,9 +14,12 @@
|
||||||
|
|
||||||
package google.registry.monitoring.whitebox;
|
package google.registry.monitoring.whitebox;
|
||||||
|
|
||||||
|
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
||||||
|
import static google.registry.monitoring.whitebox.BigQueryMetricsEnqueuer.QUEUE_BIGQUERY_STREAMING_METRICS;
|
||||||
import static google.registry.request.RequestParameters.extractRequiredParameter;
|
import static google.registry.request.RequestParameters.extractRequiredParameter;
|
||||||
|
|
||||||
import com.google.api.services.bigquery.model.TableFieldSchema;
|
import com.google.api.services.bigquery.model.TableFieldSchema;
|
||||||
|
import com.google.appengine.api.taskqueue.Queue;
|
||||||
import com.google.apphosting.api.ApiProxy;
|
import com.google.apphosting.api.ApiProxy;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
@ -80,4 +83,10 @@ public class WhiteboxModule {
|
||||||
@Named("requestLogId") String requestLogId, Clock clock) {
|
@Named("requestLogId") String requestLogId, Clock clock) {
|
||||||
return EppMetric.builderForRequest(requestLogId, clock);
|
return EppMetric.builderForRequest(requestLogId, clock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Named(QUEUE_BIGQUERY_STREAMING_METRICS)
|
||||||
|
static Queue provideBigQueryStreamingMetricsQueue() {
|
||||||
|
return getQueue(QUEUE_BIGQUERY_STREAMING_METRICS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,9 @@
|
||||||
|
|
||||||
package google.registry.monitoring.whitebox;
|
package google.registry.monitoring.whitebox;
|
||||||
|
|
||||||
|
import static com.google.appengine.api.taskqueue.QueueFactory.getQueue;
|
||||||
import static google.registry.bigquery.BigqueryUtils.toBigqueryTimestamp;
|
import static google.registry.bigquery.BigqueryUtils.toBigqueryTimestamp;
|
||||||
|
import static google.registry.monitoring.whitebox.BigQueryMetricsEnqueuer.QUEUE_BIGQUERY_STREAMING_METRICS;
|
||||||
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
@ -59,6 +61,7 @@ public class BigQueryMetricsEnqueuerTest {
|
||||||
enqueuer = new BigQueryMetricsEnqueuer();
|
enqueuer = new BigQueryMetricsEnqueuer();
|
||||||
enqueuer.idGenerator = Suppliers.ofInstance("laffo");
|
enqueuer.idGenerator = Suppliers.ofInstance("laffo");
|
||||||
enqueuer.modulesService = modulesService;
|
enqueuer.modulesService = modulesService;
|
||||||
|
enqueuer.queue = getQueue(QUEUE_BIGQUERY_STREAMING_METRICS);
|
||||||
when(modulesService.getVersionHostname(Matchers.anyString(), Matchers.anyString()))
|
when(modulesService.getVersionHostname(Matchers.anyString(), Matchers.anyString()))
|
||||||
.thenReturn("1.backend.test.localhost");
|
.thenReturn("1.backend.test.localhost");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue