public static void main(String... args) throws Exception { // Create a service object // Credentials are inferred from the environment try (Logging logging = LoggingOptions.getDefaultInstance().getService()) { // Create a metric MetricInfo metricInfo = MetricInfo.newBuilder("test-metric", "severity >= ERROR") .setDescription("Log entries with severity higher or equal to ERROR") .build(); logging.create(metricInfo); // List metrics Page<Metric> metrics = logging.listMetrics(); for (Metric metric : metrics.iterateAll()) { System.out.println(metric); } } } }
@Test public void testUpdateAsync() throws ExecutionException, InterruptedException { initializeExpectedMetric(2); MetricInfo updatedInfo = METRIC_INFO.toBuilder().setFilter(NEW_FILTER).build(); Metric expectedMetric = new Metric(serviceMockReturnsOptions, new MetricInfo.BuilderImpl(updatedInfo)); expect(logging.getOptions()).andReturn(mockOptions).times(2); expect(logging.updateAsync(expectedMetric)) .andReturn(ApiFutures.immediateFuture(expectedMetric)); replay(logging); initializeMetric(); Metric updatedMetric = metric.toBuilder().setFilter(NEW_FILTER).build().updateAsync().get(); compareMetric(expectedMetric, updatedMetric); }
static MetricInfo fromPb(LogMetric metricPb) { Builder builder = newBuilder(metricPb.getName(), metricPb.getFilter()); if (!metricPb.getDescription().equals("")) { builder.setDescription(metricPb.getDescription()); } return builder.build(); } }
@Test public void testCreateGetUpdateAndDeleteMetric() { String name = formatForTest("test-create-get-update-metric"); MetricInfo metricInfo = MetricInfo.newBuilder(name, "severity>=ERROR").setDescription("description").build(); Metric metric = logging().create(metricInfo); assertEquals(name, metric.getName()); assertEquals("severity>=ERROR", metric.getFilter()); assertEquals("description", metric.getDescription()); assertEquals(metric, logging().getMetric(name)); metric = metric .toBuilder() .setDescription("newDescription") .setFilter("severity>=WARNING") .build() .update(); assertEquals(name, metric.getName()); assertEquals("severity>=WARNING", metric.getFilter()); assertEquals("newDescription", metric.getDescription()); assertTrue(metric.delete()); assertFalse(metric.delete()); }
/** Example of asynchronously updating a metric. */ // [TARGET updateAsync(MetricInfo)] // [VARIABLE "my_metric_name"] public Metric updateMetricAsync(String metricName) throws ExecutionException, InterruptedException { // [START updateMetricAsync] MetricInfo metricInfo = MetricInfo.newBuilder(metricName, "severity>=ERROR") .setDescription("new description") .build(); Future<Metric> future = logging.updateAsync(metricInfo); // ... Metric metric = future.get(); // [END updateMetricAsync] return metric; }
@Test public void testToBuilder() { compareMetricInfo(METRIC_INFO, METRIC_INFO.toBuilder().build()); MetricInfo metricInfo = METRIC_INFO .toBuilder() .setName(NEW_NAME) .setDescription(NEW_DESCRIPTION) .setFilter(NEW_FILTER) .build(); assertEquals(NEW_NAME, metricInfo.getName()); assertEquals(NEW_FILTER, metricInfo.getFilter()); assertEquals(NEW_DESCRIPTION, metricInfo.getDescription()); metricInfo = metricInfo.toBuilder().setName(NAME).setDescription(DESCRIPTION).setFilter(FILTER).build(); compareMetricInfo(METRIC_INFO, metricInfo); }
/** Example of updating a metric. */ // [TARGET update(MetricInfo)] // [VARIABLE "my_metric_name"] public Metric updateMetric(String metricName) { // [START updateMetric] MetricInfo metricInfo = MetricInfo.newBuilder(metricName, "severity>=ERROR") .setDescription("new description") .build(); Metric metric = logging.update(metricInfo); // [END updateMetric] return metric; }
@Test public void testUpdate() { initializeExpectedMetric(2); MetricInfo updatedInfo = METRIC_INFO.toBuilder().setFilter(NEW_FILTER).build(); Metric expectedMetric = new Metric(serviceMockReturnsOptions, new MetricInfo.BuilderImpl(updatedInfo)); expect(logging.getOptions()).andReturn(mockOptions).times(2); expect(logging.update(expectedMetric)).andReturn(expectedMetric); replay(logging); initializeMetric(); Metric updatedMetric = metric.toBuilder().setFilter(NEW_FILTER).build().update(); compareMetric(expectedMetric, updatedMetric); }
@Test public void testReloadAsync() throws ExecutionException, InterruptedException { initializeExpectedMetric(2); MetricInfo updatedInfo = METRIC_INFO.toBuilder().setFilter(NEW_FILTER).build(); Metric expectedMetric = new Metric(serviceMockReturnsOptions, new MetricInfo.BuilderImpl(updatedInfo)); expect(logging.getOptions()).andReturn(mockOptions); expect(logging.getMetricAsync(NAME)).andReturn(ApiFutures.immediateFuture(expectedMetric)); replay(logging); initializeMetric(); Metric updatedMetric = metric.reloadAsync().get(); compareMetric(expectedMetric, updatedMetric); }
@Test public void testReload() { initializeExpectedMetric(2); MetricInfo updatedInfo = METRIC_INFO.toBuilder().setFilter(NEW_FILTER).build(); Metric expectedMetric = new Metric(serviceMockReturnsOptions, new MetricInfo.BuilderImpl(updatedInfo)); expect(logging.getOptions()).andReturn(mockOptions); expect(logging.getMetric(NAME)).andReturn(expectedMetric); replay(logging); initializeMetric(); Metric updatedMetric = metric.reload(); compareMetric(expectedMetric, updatedMetric); }
@Test public void testUpdateNonExistingMetric() { String name = formatForTest("test-update-non-existing-metric"); MetricInfo metricInfo = MetricInfo.newBuilder(name, "severity>=ERROR").setDescription("description").build(); assertNull(logging().getMetric(name)); Metric metric = logging().update(metricInfo); assertEquals(name, metric.getName()); assertEquals("severity>=ERROR", metric.getFilter()); assertEquals("description", metric.getDescription()); assertTrue(metric.delete()); }
static MetricInfo fromPb(LogMetric metricPb) { Builder builder = newBuilder(metricPb.getName(), metricPb.getFilter()); if (!metricPb.getDescription().equals("")) { builder.setDescription(metricPb.getDescription()); } return builder.build(); } }