in src/main/java/com/amazonaws/services/glue/catalog/CloudWatchLogsReporter.java [33:94]
public CloudWatchLogsReporter(Configuration config) {
// connect to cloudwatch logs in the region as specified by the configuration
// or the environment
AWSLogsClientBuilder logBuilder = AWSLogsClientBuilder.standard();
String hadoopConfigRegion = config.get("AWS_REGION", null);
String setRegion = hadoopConfigRegion == null ? System.getProperty("AWS_REGION") : hadoopConfigRegion;
logBuilder.setRegion(setRegion == null ? "us-east-1" : setRegion);
awsLogs = logBuilder.build();
// set the log stream name to local host, and override with configured log
// stream name if there is one
try {
LOG_STREAM_NAME = java.net.InetAddress.getLocalHost().getHostName();
} catch (Exception e) {
LOG_STREAM_NAME = "DEFAULT_HOSTNAME";
}
String configLogStream = config.get("LOG_STREAM_NAME, null");
if (configLogStream != null) {
LOG_STREAM_NAME = configLogStream;
}
boolean isFoundLogStream = false;
// DescribeLogGroupsRequest describeLogGroupsRequest = new
// DescribeLogGroupsRequest();
// describeLogGroupsRequest.setLogGroupNamePrefix(LOG_GROUP_NAME);
// DescribeLogGroupsResult describeLogGroupsResult =
// awsLogs.describeLogGroups(describeLogGroupsRequest);
// if (describeLogGroupsResult.getLogGroups().size() == 0) {
// CreateLogGroupResult logGroupResult = awsLogs.createLogGroup(new
// CreateLogGroupRequest(LOG_GROUP_NAME));
// }
DescribeLogStreamsRequest describeLogStreamsRequest = new DescribeLogStreamsRequest(LOG_GROUP_NAME);
describeLogStreamsRequest.setLogStreamNamePrefix(LOG_STREAM_NAME);
List<LogStream> logStreams = null;
try {
logStreams = awsLogs.describeLogStreams(describeLogStreamsRequest).getLogStreams();
} catch (ResourceNotFoundException e) {
// Creating Log group
CreateLogGroupResult logGroupResult = awsLogs.createLogGroup(new CreateLogGroupRequest(LOG_GROUP_NAME));
logStreams = awsLogs.describeLogStreams(describeLogStreamsRequest).getLogStreams();
}
if (logStreams.size() != 0) {
Iterator<LogStream> lsIterator = logStreams.iterator();
while (lsIterator.hasNext() && !isFoundLogStream) {
LogStream currLS = lsIterator.next();
if (currLS.getLogStreamName().equals(LOG_STREAM_NAME)) {
isFoundLogStream = true;
this.uploadSeqToken = currLS.getUploadSequenceToken();
}
}
}
if (logStreams.size() == 0 || !isFoundLogStream) {
awsLogs.createLogStream(new CreateLogStreamRequest(LOG_GROUP_NAME, LOG_STREAM_NAME));
}
}