use of org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.UserMetricsInfo in project hadoop by apache.
the class MetricsOverviewTable method render.
@Override
protected void render(Block html) {
//Yes this is a hack, but there is no other way to insert
//CSS in the correct spot
html.style(".metrics {margin-bottom:5px}");
ClusterMetricsInfo clusterMetrics = new ClusterMetricsInfo(this.rm);
DIV<Hamlet> div = html.div().$class("metrics");
div.h3("Cluster Metrics").table("#metricsoverview").thead().$class("ui-widget-header").tr().th().$class("ui-state-default")._("Apps Submitted")._().th().$class("ui-state-default")._("Apps Pending")._().th().$class("ui-state-default")._("Apps Running")._().th().$class("ui-state-default")._("Apps Completed")._().th().$class("ui-state-default")._("Containers Running")._().th().$class("ui-state-default")._("Memory Used")._().th().$class("ui-state-default")._("Memory Total")._().th().$class("ui-state-default")._("Memory Reserved")._().th().$class("ui-state-default")._("VCores Used")._().th().$class("ui-state-default")._("VCores Total")._().th().$class("ui-state-default")._("VCores Reserved")._()._()._().tbody().$class("ui-widget-content").tr().td(String.valueOf(clusterMetrics.getAppsSubmitted())).td(String.valueOf(clusterMetrics.getAppsPending())).td(String.valueOf(clusterMetrics.getAppsRunning())).td(String.valueOf(clusterMetrics.getAppsCompleted() + clusterMetrics.getAppsFailed() + clusterMetrics.getAppsKilled())).td(String.valueOf(clusterMetrics.getContainersAllocated())).td(StringUtils.byteDesc(clusterMetrics.getAllocatedMB() * BYTES_IN_MB)).td(StringUtils.byteDesc(clusterMetrics.getTotalMB() * BYTES_IN_MB)).td(StringUtils.byteDesc(clusterMetrics.getReservedMB() * BYTES_IN_MB)).td(String.valueOf(clusterMetrics.getAllocatedVirtualCores())).td(String.valueOf(clusterMetrics.getTotalVirtualCores())).td(String.valueOf(clusterMetrics.getReservedVirtualCores()))._()._()._();
div.h3("Cluster Nodes Metrics").table("#nodemetricsoverview").thead().$class("ui-widget-header").tr().th().$class("ui-state-default")._("Active Nodes")._().th().$class("ui-state-default")._("Decommissioning Nodes")._().th().$class("ui-state-default")._("Decommissioned Nodes")._().th().$class("ui-state-default")._("Lost Nodes")._().th().$class("ui-state-default")._("Unhealthy Nodes")._().th().$class("ui-state-default")._("Rebooted Nodes")._().th().$class("ui-state-default")._("Shutdown Nodes")._()._()._().tbody().$class("ui-widget-content").tr().td().a(url("nodes"), String.valueOf(clusterMetrics.getActiveNodes()))._().td().a(url("nodes/decommissioning"), String.valueOf(clusterMetrics.getDecommissioningNodes()))._().td().a(url("nodes/decommissioned"), String.valueOf(clusterMetrics.getDecommissionedNodes()))._().td().a(url("nodes/lost"), String.valueOf(clusterMetrics.getLostNodes()))._().td().a(url("nodes/unhealthy"), String.valueOf(clusterMetrics.getUnhealthyNodes()))._().td().a(url("nodes/rebooted"), String.valueOf(clusterMetrics.getRebootedNodes()))._().td().a(url("nodes/shutdown"), String.valueOf(clusterMetrics.getShutdownNodes()))._()._()._()._();
String user = request().getRemoteUser();
if (user != null) {
UserMetricsInfo userMetrics = new UserMetricsInfo(this.rm, user);
if (userMetrics.metricsAvailable()) {
div.h3("User Metrics for " + user).table("#usermetricsoverview").thead().$class("ui-widget-header").tr().th().$class("ui-state-default")._("Apps Submitted")._().th().$class("ui-state-default")._("Apps Pending")._().th().$class("ui-state-default")._("Apps Running")._().th().$class("ui-state-default")._("Apps Completed")._().th().$class("ui-state-default")._("Containers Running")._().th().$class("ui-state-default")._("Containers Pending")._().th().$class("ui-state-default")._("Containers Reserved")._().th().$class("ui-state-default")._("Memory Used")._().th().$class("ui-state-default")._("Memory Pending")._().th().$class("ui-state-default")._("Memory Reserved")._().th().$class("ui-state-default")._("VCores Used")._().th().$class("ui-state-default")._("VCores Pending")._().th().$class("ui-state-default")._("VCores Reserved")._()._()._().tbody().$class("ui-widget-content").tr().td(String.valueOf(userMetrics.getAppsSubmitted())).td(String.valueOf(userMetrics.getAppsPending())).td(String.valueOf(userMetrics.getAppsRunning())).td(String.valueOf((userMetrics.getAppsCompleted() + userMetrics.getAppsFailed() + userMetrics.getAppsKilled()))).td(String.valueOf(userMetrics.getRunningContainers())).td(String.valueOf(userMetrics.getPendingContainers())).td(String.valueOf(userMetrics.getReservedContainers())).td(StringUtils.byteDesc(userMetrics.getAllocatedMB() * BYTES_IN_MB)).td(StringUtils.byteDesc(userMetrics.getPendingMB() * BYTES_IN_MB)).td(StringUtils.byteDesc(userMetrics.getReservedMB() * BYTES_IN_MB)).td(String.valueOf(userMetrics.getAllocatedVirtualCores())).td(String.valueOf(userMetrics.getPendingVirtualCores())).td(String.valueOf(userMetrics.getReservedVirtualCores()))._()._()._();
}
}
SchedulerInfo schedulerInfo = new SchedulerInfo(this.rm);
div.h3("Scheduler Metrics").table("#schedulermetricsoverview").thead().$class("ui-widget-header").tr().th().$class("ui-state-default")._("Scheduler Type")._().th().$class("ui-state-default")._("Scheduling Resource Type")._().th().$class("ui-state-default")._("Minimum Allocation")._().th().$class("ui-state-default")._("Maximum Allocation")._().th().$class("ui-state-default")._("Maximum Cluster Application Priority")._()._()._().tbody().$class("ui-widget-content").tr().td(String.valueOf(schedulerInfo.getSchedulerType())).td(String.valueOf(schedulerInfo.getSchedulerResourceTypes())).td(schedulerInfo.getMinAllocation().toString()).td(schedulerInfo.getMaxAllocation().toString()).td(String.valueOf(schedulerInfo.getMaxClusterLevelAppPriority()))._()._()._();
div._();
}
Aggregations