private void outputContainerLogMeta(String containerId, String nodeId, String nodeHttpAddress) throws IOException { String containerString = String.format( LogCLIHelpers.CONTAINER_ON_NODE_PATTERN, containerId, nodeId); outStream.println(containerString); outStream.println(StringUtils.repeat("=", containerString.length())); outStream.printf(LogCLIHelpers.PER_LOG_FILE_INFO_PATTERN, "LogFile", "LogLength", "LastModificationTime", "LogAggregationType"); outStream.println(StringUtils.repeat("=", containerString.length() * 2)); List<Pair<ContainerLogFileInfo, String>> infos = getContainerLogFiles( getConf(), containerId, nodeHttpAddress); for (Pair<ContainerLogFileInfo, String> info : infos) { outStream.printf(LogCLIHelpers.PER_LOG_FILE_INFO_PATTERN, info.getKey().getFileName(), info.getKey().getFileSize(), info.getKey().getLastModifiedTime(), info.getValue()); } }
public void addLogMeta(String fileName, String fileSize, String lastModificationTime) { logMeta.add(new ContainerLogFileInfo(fileName, fileSize, lastModificationTime)); }
public ContainerLogFileInfo(String fileName, String fileSize, String lastModifiedTime) { this.setFileName(fileName); this.setFileSize(fileSize); this.setLastModifiedTime(lastModifiedTime); }
@Override public int compare(ContainerLogFileInfo o1, ContainerLogFileInfo o2) { return createAggregatedLogFileName(o1.getFileName(), o1.getLastModifiedTime()).compareTo( createAggregatedLogFileName(o2.getFileName(), o2.getLastModifiedTime())); } });
matchedFile = true; } else if (useRegex) { if (isFileMatching(logInfo.getFileName(), filePattern)) { matchedFile = true; if (filePattern.contains(logInfo.getFileName())) { matchedFile = true; matchedFiles.add(logInfo.getFileName()); if (!ignoreSizeLimit) { decrLogSizeLimit(Math.min( Long.parseLong(logInfo.getFileSize()), size)); if (getLogSizeLimitLeft() < 0) { throw new RuntimeException("The total log size is too large."
Assert.assertTrue(log.getNodeId().equals(nodeId.toString())); for (ContainerLogFileInfo file : log.getContainerLogMeta()) { fileNames.add(file.getFileName());
.getContainerLogsInfo(); assertTrue(logMeta.size() == 1); assertEquals(logMeta.get(0).getFileName(), fileName); assertEquals(logMeta.get(0).getFileSize(), String.valueOf(content.length()));
Assert.assertTrue(log.getContainerLogMeta().size() == 3); for (ContainerLogFileInfo file : log.getContainerLogMeta()) { fileNames.add(file.getFileName()); Assert.assertTrue(log.getContainerLogMeta().size() == 3); for (ContainerLogFileInfo file : log.getContainerLogMeta()) { fileNames.add(file.getFileName()); Assert.assertTrue(log.getNodeId().equals(nodeId.toString())); for (ContainerLogFileInfo file : log.getContainerLogMeta()) { fileNames.add(file.getFileName()); Assert.assertTrue(log.getNodeId().equals(nodeId.toString())); for (ContainerLogFileInfo file : log.getContainerLogMeta()) { fileNames.add(file.getFileName());
for (ContainerLogFileInfo logMeta : containerLogMeta .getContainerLogMeta()) { out.printf(PER_LOG_FILE_INFO_PATTERN, logMeta.getFileName(), logMeta.getFileSize(), logMeta.getLastModifiedTime(), "AGGREGATED");
.getContainerLogsInfo(); assertTrue(logMeta.size() == 1); assertEquals(logMeta.get(0).getFileName(), fileName); assertEquals(logMeta.get(0).getFileSize(), String.valueOf( content.length())); } else { .getContainerLogsInfo(); assertTrue(logMeta.size() == 1); assertEquals(logMeta.get(0).getFileName(), fileName); assertEquals(logMeta.get(0).getFileSize(), String.valueOf( content.length())); } else {
private static List<ContainerLogFileInfo> getContainerLogsInfo( ContainerId id, String remoteUser, Context nmContext) throws YarnException { List<ContainerLogFileInfo> logFiles = new ArrayList<>(); List<File> logDirs = ContainerLogsUtils.getContainerLogDirs( id, remoteUser, nmContext); for (File containerLogsDir : logDirs) { File[] logs = containerLogsDir.listFiles(); if (logs != null) { for (File log : logs) { if (log.isFile()) { ContainerLogFileInfo logMeta = new ContainerLogFileInfo( log.getName(), Long.toString(log.length()), Times.format(log.lastModified())); logFiles.add(logMeta); } } } } return logFiles; } }
long timestamp = convertDateToTimeStamp(fileInfo.getLastModifiedTime()); foundLogFile = true; String fileName = createAggregatedLogFileName(fileInfo.getFileName(), fileInfo.getLastModifiedTime()); html.p().a(url("containerlogs", $(CONTAINER_ID), $(APP_OWNER), fileInfo.getFileName(), "?start=-4096&" + LOG_AGGREGATION_TYPE + "=" + LOG_AGGREGATION_REMOTE_TYPE + "&start.time=" + (timestamp - 1000) + "&end.time=" + (timestamp + 1000)), fileName + " : Total file length is " + fileInfo.getFileSize() + " bytes.").__();
private ContainerLogFileInfo generatePerContainerLogFileInfoFromJSON( JSONObject meta) throws JSONException { String fileName = meta.has("fileName") ? meta.getString("fileName") : "N/A"; String fileSize = meta.has("fileSize") ? meta.getString("fileSize") : "N/A"; String lastModificationTime = meta.has("lastModifiedTime") ? meta.getString("lastModifiedTime") : "N/A"; return new ContainerLogFileInfo(fileName, fileSize, lastModificationTime); }