Skip to content

Commit dc4e67c

Browse files
gregwgarrettjonesgoogle
authored andcommitted
---
yaml --- r: 5371 b: refs/heads/master c: c04d163 h: refs/heads/master i: 5369: d60d6e9 5367: 99eefaf
1 parent a35bd20 commit dc4e67c

4 files changed

Lines changed: 64 additions & 33 deletions

File tree

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 1667b5037255c68d0cc843b81a296c8e2ed3254e
2+
refs/heads/master: c04d1635f542c94662a05a01975a6e373703ab7c
33
refs/heads/travis: dae77e558b884bc1b165155482d76c8e40b0fca4
44
refs/heads/gh-pages: 229631582f8957646f81e92ae5a326504f48ee5b
55
refs/tags/0.0.9: 22f1839238f66c39e67ed4dfdcd273b1ae2e8444

trunk/google-cloud-core/src/main/java/com/google/cloud/ServiceOptions.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,8 @@ protected static String googleCloudProjectId() {
408408
try {
409409
URL url = new URL("http://metadata/computeMetadata/v1/project/project-id");
410410
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
411+
// TODO replace X-Google-Metadata-Request with:
412+
// connection.setRequestProperty("Metadata-Flavor", "Google");
411413
connection.setRequestProperty("X-Google-Metadata-Request", "True");
412414
InputStream input = connection.getInputStream();
413415
if (connection.getResponseCode() == 200) {

trunk/google-cloud-logging/src/main/java/com/google/cloud/logging/GaeFlexLoggingEnhancer.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616

1717
package com.google.cloud.logging;
1818

19+
import java.io.BufferedReader;
20+
import java.io.IOException;
21+
import java.io.InputStreamReader;
22+
import java.net.HttpURLConnection;
23+
import java.net.URL;
24+
import java.nio.charset.StandardCharsets;
1925
import java.util.logging.LogRecord;
2026

2127
import com.google.cloud.MonitoredResource.Builder;
@@ -65,13 +71,30 @@ public GaeFlexLoggingEnhancer() {
6571

6672
@Override
6773
public void enhanceMonitoredResource(Builder builder) {
68-
if (gaeInstanceId != null) {
69-
if (System.getenv("GAE_SERVICE") != null) {
70-
builder.addLabel("module_id", System.getenv("GAE_SERVICE"));
71-
}
72-
if (System.getenv("GAE_VERSION") != null) {
73-
builder.addLabel("version_id", System.getenv("GAE_VERSION"));
74+
if (gaeInstanceId == null) {
75+
return;
76+
}
77+
if (System.getenv("GAE_SERVICE") != null) {
78+
builder.addLabel("module_id", System.getenv("GAE_SERVICE"));
79+
}
80+
if (System.getenv("GAE_VERSION") != null) {
81+
builder.addLabel("version_id", System.getenv("GAE_VERSION"));
82+
}
83+
try {
84+
HttpURLConnection metadata = (HttpURLConnection) new URL(
85+
"http://metadata.google.internal/computeMetadata/v1/instance/zone").openConnection();
86+
metadata.setRequestProperty("Metadata-Flavor", "Google");
87+
if (metadata.getResponseCode() == 200 && metadata.getContentLength() > 0) {
88+
String zone = new BufferedReader(
89+
new InputStreamReader(metadata.getInputStream(), StandardCharsets.UTF_8)).readLine();
90+
if (zone.contains("/")) {
91+
zone = zone.substring(zone.lastIndexOf('/')+1);
92+
builder.addLabel("zone", zone);
93+
}
7494
}
95+
} catch (IOException ex) {
96+
// report the error, but do not throw as the inclusion of zone is optional
97+
ex.printStackTrace();
7598
}
7699
}
77100

trunk/google-cloud-logging/src/main/java/com/google/cloud/logging/LoggingHandler.java

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -163,19 +163,24 @@ public LoggingHandler(String log, LoggingOptions options, MonitoredResource moni
163163
* or {@link LogEntry} instances built by this handler.
164164
*/
165165
public LoggingHandler(String log, LoggingOptions options, MonitoredResource monitoredResource, List<Enhancer> enhancers) {
166-
LogConfigHelper helper = new LogConfigHelper();
167-
String className = getClass().getName();
168-
this.options = options != null ? options : LoggingOptions.getDefaultInstance();
169-
this.flushLevel = helper.getLevelProperty(className + ".flushLevel", LoggingLevel.ERROR);
170-
this.flushSize = helper.getLongProperty(className + ".flushSize", 1L);
171-
setLevel(helper.getLevelProperty(className + ".level", Level.INFO));
172-
setFilter(helper.getFilterProperty(className + ".filter", null));
173-
setFormatter(helper.getFormatterProperty(className + ".formatter", new SimpleFormatter()));
174-
String logName = firstNonNull(log, helper.getProperty(className + ".log", "java.log"));
175-
this.enhancers = enhancers != null ? enhancers : helper.getEnhancerProperty(className + ".enhancers");
176-
String resourceType = helper.getProperty(className + ".resourceType", "global");
177-
MonitoredResource resource = monitoredResource != null ? monitoredResource : getDefaultResource(resourceType);
178-
writeOptions = new WriteOption[]{WriteOption.logName(logName), WriteOption.resource(resource)};
166+
try {
167+
LogConfigHelper helper = new LogConfigHelper();
168+
String className = getClass().getName();
169+
this.options = options != null ? options : LoggingOptions.getDefaultInstance();
170+
this.flushLevel = helper.getLevelProperty(className + ".flushLevel", LoggingLevel.ERROR);
171+
this.flushSize = helper.getLongProperty(className + ".flushSize", 1L);
172+
setLevel(helper.getLevelProperty(className + ".level", Level.INFO));
173+
setFilter(helper.getFilterProperty(className + ".filter", null));
174+
setFormatter(helper.getFormatterProperty(className + ".formatter", new SimpleFormatter()));
175+
String logName = firstNonNull(log, helper.getProperty(className + ".log", "java.log"));
176+
this.enhancers = enhancers != null ? enhancers : helper.getEnhancerProperty(className + ".enhancers");
177+
String resourceType = helper.getProperty(className + ".resourceType", "global");
178+
MonitoredResource resource = monitoredResource != null ? monitoredResource : getDefaultResource(resourceType);
179+
writeOptions = new WriteOption[]{WriteOption.logName(logName), WriteOption.resource(resource)};
180+
} catch (Exception ex) {
181+
reportError(null, ex, ErrorManager.OPEN_FAILURE);
182+
throw ex;
183+
}
179184
}
180185

181186
private static List<LoggingHandler> getLoggingHandlers(Logger logger) {
@@ -354,23 +359,24 @@ private LogEntry entryFor(LogRecord record) {
354359
String payload;
355360
try {
356361
payload = getFormatter().format(record);
362+
Level level = record.getLevel();
363+
LogEntry.Builder builder = LogEntry.newBuilder(Payload.StringPayload.of(payload))
364+
.addLabel("levelName", level.getName())
365+
.addLabel("levelValue", String.valueOf(level.intValue()))
366+
.setTimestamp(record.getMillis())
367+
.setSeverity(severityFor(level));
368+
369+
for (Enhancer enhancer : enhancers) {
370+
enhancer.enhanceLogEntry(builder, record);
371+
}
372+
enhanceLogEntry(builder, record);
373+
return builder.build();
357374
} catch (Exception ex) {
358-
// Formatting can fail but we should not throw an exception, we report the error instead
375+
// Formatting or enhancing can fail but we should not throw an exception,
376+
// we report the error instead
359377
reportError(null, ex, ErrorManager.FORMAT_FAILURE);
360378
return null;
361379
}
362-
Level level = record.getLevel();
363-
LogEntry.Builder builder = LogEntry.newBuilder(Payload.StringPayload.of(payload))
364-
.addLabel("levelName", level.getName())
365-
.addLabel("levelValue", String.valueOf(level.intValue()))
366-
.setTimestamp(record.getMillis())
367-
.setSeverity(severityFor(level));
368-
369-
for (Enhancer enhancer : enhancers) {
370-
enhancer.enhanceLogEntry(builder, record);
371-
}
372-
enhanceLogEntry(builder, record);
373-
return builder.build();
374380
}
375381

376382
@Deprecated

0 commit comments

Comments
 (0)