.setLogName(logId) .setHttpRequest(HttpRequest.newBuilder().setStatus(500).build()) .setResource(MonitoredResource.newBuilder("global").build()) .build(); JsonPayload secondPayload = .setLogName(logId) .setOperation(Operation.of("operationId", "operationProducer")) .setResource(MonitoredResource.newBuilder("cloudsql_database").build()) .build(); logging().write(ImmutableList.of(firstEntry));
public static void main(String... args) throws Exception { // Create a service object // Credentials are inferred from the environment LoggingOptions options = LoggingOptions.getDefaultInstance(); try (Logging logging = options.getService()) { // Create a log entry LogEntry firstEntry = LogEntry.newBuilder(StringPayload.of("message")) .setLogName("test-log") .setResource( MonitoredResource.newBuilder("global") .addLabel("project_id", options.getProjectId()) .build()) .build(); logging.write(Collections.singleton(firstEntry)); // List log entries Page<LogEntry> entries = logging.listLogEntries( EntryListOption.filter( "logName=projects/" + options.getProjectId() + "/logs/test-log")); for (LogEntry logEntry : entries.iterateAll()) { System.out.println(logEntry); } } } }
@Test public void testToBuilder() { compareMonitoredResource(MONITORED_RESOURCE, MONITORED_RESOURCE.toBuilder().build()); MonitoredResource monitoredResource = MONITORED_RESOURCE.toBuilder().setType("global").clearLabels().build(); assertEquals("global", monitoredResource.getType()); assertEquals(ImmutableMap.of(), monitoredResource.getLabels()); monitoredResource = monitoredResource .toBuilder() .setType(TYPE) .setLabels(ImmutableMap.of("dataset-id", "myDataset")) .addLabel("zone", "myZone") .build(); compareMonitoredResource(MONITORED_RESOURCE, monitoredResource); }
public static MonitoredResource getResource(String projectId, String resourceTypeParam) { String resourceType = resourceTypeParam; if (Strings.isNullOrEmpty(resourceType)) { Resource detectedResourceType = getAutoDetectedResourceType(); resourceType = detectedResourceType.getKey(); } // Currently, "gae_app" is the supported logging Resource type, but we distinguish // between "gae_app_flex", "gae_app_standard" to support zone id, instance name logging on flex // VMs. // Hence, "gae_app_flex", "gae_app_standard" are trimmed to "gae_app" String resourceName = resourceType.startsWith("gae_app") ? "gae_app" : resourceType; MonitoredResource.Builder builder = MonitoredResource.newBuilder(resourceName).addLabel(Label.ProjectId.getKey(), projectId); for (Label label : resourceTypeWithLabels.get(resourceType)) { String value = getValue(label); if (value != null) { builder.addLabel(label.getKey(), value); } } return builder.build(); }
/** Returns a builder for this {@code MonitoredResource} object. */ public Builder toBuilder() { return new Builder(this); }
/** * Returns a builder for {@code MonitoredResource} objects given the resource's type. */ public static Builder builder(String type) { return new Builder(type); }
/** * Returns a builder for this {@code MonitoredResource} object. */ public Builder toBuilder() { return new Builder(this); }
/** Returns a builder for {@code MonitoredResource} objects given the resource's type. */ public static Builder newBuilder(String type) { return new Builder(type); }
/** Expects a new or existing Stackdriver log name as the first argument.*/ public static void main(String... args) throws Exception { // Instantiates a client Logging logging = LoggingOptions.getDefaultInstance().getService(); // The name of the log to write to String logName = args[0]; // "my-log"; // The data to write to the log String text = "Hello, world!"; LogEntry entry = LogEntry.newBuilder(StringPayload.of(text)) .setSeverity(Severity.ERROR) .setLogName(logName) .setResource(MonitoredResource.newBuilder("global").build()) .build(); // Writes the log entry asynchronously logging.write(Collections.singleton(entry)); System.out.printf("Logged: %s%n", text); } }
.setPayload(StringPayload.of("otherPayload")) .setLogName("otherLogName") .setResource(MonitoredResource.newBuilder("global").build()) .setTimestamp(43) .setReceiveTimestamp(34) .build(); assertEquals("otherLogName", logEntry.getLogName()); assertEquals(MonitoredResource.newBuilder("global").build(), logEntry.getResource()); assertEquals(43, (long) logEntry.getTimestamp()); assertEquals(34, (long) logEntry.getReceiveTimestamp());
@Test public void testBuilder() { assertEquals(TYPE, MONITORED_RESOURCE.getType()); assertEquals(LABELS, MONITORED_RESOURCE.getLabels()); MonitoredResource monitoredResource = MonitoredResource.newBuilder(TYPE) .addLabel("dataset-id", "myDataset") .addLabel("zone", "myZone") .build(); assertEquals(TYPE, monitoredResource.getType()); assertEquals(LABELS, monitoredResource.getLabels()); compareMonitoredResource(MONITORED_RESOURCE, monitoredResource); monitoredResource = MonitoredResource.newBuilder(TYPE) .setType("global") .addLabel("dataset-id", "myDataset") .addLabel("zone", "myZone") .clearLabels() .build(); assertEquals("global", monitoredResource.getType()); assertEquals(ImmutableMap.of(), monitoredResource.getLabels()); }
/** * Example of writing log entries and providing a default log name and monitored resource. Logging * writes are asynchronous by default. {@link Logging#setWriteSynchronicity(Synchronicity)} can be * used to update the synchronicity. */ // [TARGET write(Iterable, WriteOption...)] // [VARIABLE "my_log_name"] public void write(String logName) { // [START logging_write_log_entry] List<LogEntry> entries = new ArrayList<>(); entries.add(LogEntry.of(StringPayload.of("Entry payload"))); Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("key", "value"); entries.add(LogEntry.of(JsonPayload.of(jsonMap))); logging.write( entries, WriteOption.logName(logName), WriteOption.resource(MonitoredResource.newBuilder("global").build())); // [END logging_write_log_entry] }
public static MonitoredResource getResource(String projectId, String resourceTypeParam) { String resourceType = resourceTypeParam; if (Strings.isNullOrEmpty(resourceType)) { Resource detectedResourceType = getAutoDetectedResourceType(); resourceType = detectedResourceType.getKey(); } // Currently, "gae_app" is the supported logging Resource type, but we distinguish // between "gae_app_flex", "gae_app_standard" to support zone id, instance name logging on flex // VMs. // Hence, "gae_app_flex", "gae_app_standard" are trimmed to "gae_app" String resourceName = resourceType.startsWith("gae_app") ? "gae_app" : resourceType; MonitoredResource.Builder builder = MonitoredResource.newBuilder(resourceName).addLabel(Label.ProjectId.getKey(), projectId); for (Label label : resourceTypeWithLabels.get(resourceType)) { String value = getValue(label); if (value != null) { builder.addLabel(label.getKey(), value); } } return builder.build(); }
/** Returns a builder for {@code MonitoredResource} objects given the resource's type. */ public static Builder newBuilder(String type) { return new Builder(type); }
/** Returns a builder for this {@code MonitoredResource} object. */ public Builder toBuilder() { return new Builder(this); }