YARN-8155. Improve ATSv2 client logging in RM and NM publisher. Contributed by Abhishek Modi.

This commit is contained in:
Rohith Sharma K S 2018-06-14 12:38:10 +05:30
parent ddd09d59f3
commit 9119b3cf8f
3 changed files with 56 additions and 13 deletions

View File

@ -190,9 +190,20 @@ public void reportContainerResourceUsage(Container container, Long pmemUsage,
LOG.error("Seems like client has been removed before the container"
+ " metric could be published for " + container.getContainerId());
}
} catch (IOException | YarnException e) {
} catch (IOException e) {
LOG.error("Failed to publish Container metrics for container "
+ container.getContainerId(), e);
+ container.getContainerId());
if (LOG.isDebugEnabled()) {
LOG.debug("Failed to publish Container metrics for container "
+ container.getContainerId(), e);
}
} catch (YarnException e) {
LOG.error("Failed to publish Container metrics for container "
+ container.getContainerId(), e.getMessage());
if (LOG.isDebugEnabled()) {
LOG.debug("Failed to publish Container metrics for container "
+ container.getContainerId(), e);
}
}
}
}
@ -284,9 +295,20 @@ private void publishContainerLocalizationEvent(
LOG.error("Seems like client has been removed before the event could be"
+ " published for " + container.getContainerId());
}
} catch (IOException | YarnException e) {
} catch (IOException e) {
LOG.error("Failed to publish Container metrics for container "
+ container.getContainerId(), e);
+ container.getContainerId());
if (LOG.isDebugEnabled()) {
LOG.debug("Failed to publish Container metrics for container "
+ container.getContainerId(), e);
}
} catch (YarnException e) {
LOG.error("Failed to publish Container metrics for container "
+ container.getContainerId(), e.getMessage());
if (LOG.isDebugEnabled()) {
LOG.debug("Failed to publish Container metrics for container "
+ container.getContainerId(), e);
}
}
}
@ -315,8 +337,16 @@ private void putEntity(TimelineEntity entity, ApplicationId appId) {
LOG.error("Seems like client has been removed before the entity "
+ "could be published for " + entity);
}
} catch (Exception e) {
LOG.error("Error when publishing entity " + entity, e);
} catch (IOException e) {
LOG.error("Error when publishing entity " + entity);
if (LOG.isDebugEnabled()) {
LOG.debug("Error when publishing entity " + entity, e);
}
} catch (YarnException e) {
LOG.error("Error when publishing entity " + entity, e.getMessage());
if (LOG.isDebugEnabled()) {
LOG.debug("Error when publishing entity " + entity, e);
}
}
}

View File

@ -18,6 +18,7 @@
package org.apache.hadoop.yarn.server.resourcemanager.metrics;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@ -457,8 +458,11 @@ private void putEntity(TimelineEntity entity, ApplicationId appId) {
entities.addEntity(entity);
timelineCollector.putEntities(entities,
UserGroupInformation.getCurrentUser());
} catch (Exception e) {
LOG.error("Error when publishing entity " + entity, e);
} catch (IOException e) {
LOG.error("Error when publishing entity " + entity);
if (LOG.isDebugEnabled()) {
LOG.debug("Error when publishing entity " + entity, e);
}
}
}

View File

@ -61,6 +61,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.IllegalFormatException;
/**
* The main per-node REST end point for timeline service writes. It is
* essentially a container service that routes requests to the appropriate
@ -166,7 +169,7 @@ public Response putEntities(
TimelineCollector collector = collectorManager.get(appID);
if (collector == null) {
LOG.error("Application: "+ appId + " is not found");
throw new NotFoundException(); // different exception?
throw new NotFoundException("Application: "+ appId + " is not found");
}
boolean isAsync = async != null && async.trim().equalsIgnoreCase("true");
@ -179,7 +182,10 @@ public Response putEntities(
}
return Response.ok().build();
} catch (Exception e) {
} catch (NotFoundException | ForbiddenException e) {
throw new WebApplicationException(e,
Response.Status.INTERNAL_SERVER_ERROR);
} catch (IOException e) {
LOG.error("Error putting entities", e);
throw new WebApplicationException(e,
Response.Status.INTERNAL_SERVER_ERROR);
@ -221,14 +227,17 @@ public Response putDomain(
TimelineCollector collector = collectorManager.get(appID);
if (collector == null) {
LOG.error("Application: " + appId + " is not found");
throw new NotFoundException(); // different exception?
throw new NotFoundException("Application: " + appId + " is not found");
}
domain.setOwner(callerUgi.getShortUserName());
collector.putDomain(domain, callerUgi);
return Response.ok().build();
} catch (Exception e) {
} catch (NotFoundException e) {
throw new WebApplicationException(e,
Response.Status.INTERNAL_SERVER_ERROR);
} catch (IOException e) {
LOG.error("Error putting entities", e);
throw new WebApplicationException(e,
Response.Status.INTERNAL_SERVER_ERROR);
@ -242,7 +251,7 @@ private static ApplicationId parseApplicationId(String appId) {
} else {
return null;
}
} catch (Exception e) {
} catch (IllegalFormatException e) {
LOG.error("Invalid application ID: " + appId);
return null;
}