|
22 | 22 | import org.apache.hadoop.yarn.api.records.ResourceTypeInfo; |
23 | 23 | import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager; |
24 | 24 | import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ClusterMetricsInfo; |
| 25 | +import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ResourceInfo; |
25 | 26 | import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.SchedulerInfo; |
26 | 27 | import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.UserMetricsInfo; |
27 | 28 |
|
@@ -60,7 +61,38 @@ protected void render(Block html) { |
60 | 61 | ClusterMetricsInfo clusterMetrics = new ClusterMetricsInfo(this.rm); |
61 | 62 |
|
62 | 63 | DIV<Hamlet> div = html.div().$class("metrics"); |
63 | | - |
| 64 | + |
| 65 | + long usedMemoryBytes = 0; |
| 66 | + long totalMemoryBytes = 0; |
| 67 | + long reservedMemoryBytes = 0; |
| 68 | + long usedVCores = 0; |
| 69 | + long totalVCores = 0; |
| 70 | + long reservedVCores = 0; |
| 71 | + if (clusterMetrics.getCrossPartitionMetricsAvailable()) { |
| 72 | + ResourceInfo usedAllPartitions = |
| 73 | + clusterMetrics.getTotalUsedResourcesAcrossPartition(); |
| 74 | + ResourceInfo totalAllPartitions = |
| 75 | + clusterMetrics.getTotalClusterResourcesAcrossPartition(); |
| 76 | + ResourceInfo reservedAllPartitions = |
| 77 | + clusterMetrics.getTotalReservedResourcesAcrossPartition(); |
| 78 | + usedMemoryBytes = usedAllPartitions.getMemorySize() * BYTES_IN_MB; |
| 79 | + totalMemoryBytes = totalAllPartitions.getMemorySize() * BYTES_IN_MB; |
| 80 | + reservedMemoryBytes = reservedAllPartitions.getMemorySize() * BYTES_IN_MB; |
| 81 | + usedVCores = usedAllPartitions.getvCores(); |
| 82 | + totalVCores = totalAllPartitions.getvCores(); |
| 83 | + reservedVCores = reservedAllPartitions.getvCores(); |
| 84 | + // getTotalUsedResourcesAcrossPartition includes reserved resources. |
| 85 | + usedMemoryBytes -= reservedMemoryBytes; |
| 86 | + usedVCores -= reservedVCores; |
| 87 | + } else { |
| 88 | + usedMemoryBytes = clusterMetrics.getAllocatedMB() * BYTES_IN_MB; |
| 89 | + totalMemoryBytes = clusterMetrics.getTotalMB() * BYTES_IN_MB; |
| 90 | + reservedMemoryBytes = clusterMetrics.getReservedMB() * BYTES_IN_MB; |
| 91 | + usedVCores = clusterMetrics.getAllocatedVirtualCores(); |
| 92 | + totalVCores = clusterMetrics.getTotalVirtualCores(); |
| 93 | + reservedVCores = clusterMetrics.getReservedVirtualCores(); |
| 94 | + } |
| 95 | + |
64 | 96 | div.h3("Cluster Metrics"). |
65 | 97 | table("#metricsoverview"). |
66 | 98 | thead().$class("ui-widget-header"). |
@@ -89,13 +121,14 @@ protected void render(Block html) { |
89 | 121 | clusterMetrics.getAppsFailed() + clusterMetrics.getAppsKilled() |
90 | 122 | ) |
91 | 123 | ). |
92 | | - td(String.valueOf(clusterMetrics.getContainersAllocated())). |
93 | | - td(StringUtils.byteDesc(clusterMetrics.getAllocatedMB() * BYTES_IN_MB)). |
94 | | - td(StringUtils.byteDesc(clusterMetrics.getTotalMB() * BYTES_IN_MB)). |
95 | | - td(StringUtils.byteDesc(clusterMetrics.getReservedMB() * BYTES_IN_MB)). |
96 | | - td(String.valueOf(clusterMetrics.getAllocatedVirtualCores())). |
97 | | - td(String.valueOf(clusterMetrics.getTotalVirtualCores())). |
98 | | - td(String.valueOf(clusterMetrics.getReservedVirtualCores())). |
| 124 | + td(String.valueOf( |
| 125 | + clusterMetrics.getTotalAllocatedContainersAcrossPartition())). |
| 126 | + td(StringUtils.byteDesc(usedMemoryBytes)). |
| 127 | + td(StringUtils.byteDesc(totalMemoryBytes)). |
| 128 | + td(StringUtils.byteDesc(reservedMemoryBytes)). |
| 129 | + td(String.valueOf(usedVCores)). |
| 130 | + td(String.valueOf(totalVCores)). |
| 131 | + td(String.valueOf(reservedVCores)). |
99 | 132 | __(). |
100 | 133 | __().__(); |
101 | 134 |
|
|
0 commit comments