|
@@ -38,6 +38,7 @@ import org.apache.hadoop.metrics2.lib.MetricsRegistry;
|
|
|
import org.apache.hadoop.metrics2.lib.MutableCounterInt;
|
|
|
import org.apache.hadoop.metrics2.lib.MutableCounterLong;
|
|
|
import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
|
|
|
+import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
|
|
|
import org.apache.hadoop.metrics2.lib.MutableRate;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
|
|
import org.apache.hadoop.yarn.api.records.Resource;
|
|
@@ -59,8 +60,8 @@ public class QueueMetrics implements MetricsSource {
|
|
|
@Metric("# of apps killed") MutableCounterInt appsKilled;
|
|
|
@Metric("# of apps failed") MutableCounterInt appsFailed;
|
|
|
|
|
|
- @Metric("Allocated memory in MB") MutableGaugeInt allocatedMB;
|
|
|
- @Metric("Allocated CPU in virtual cores") MutableGaugeInt allocatedVCores;
|
|
|
+ @Metric("Allocated memory in MB") MutableGaugeLong allocatedMB;
|
|
|
+ @Metric("Allocated CPU in virtual cores") MutableGaugeLong allocatedVCores;
|
|
|
@Metric("# of allocated containers") MutableGaugeInt allocatedContainers;
|
|
|
@Metric("Aggregate # of allocated containers") MutableCounterLong aggregateContainersAllocated;
|
|
|
@Metric("Aggregate # of allocated node-local containers")
|
|
@@ -70,13 +71,13 @@ public class QueueMetrics implements MetricsSource {
|
|
|
@Metric("Aggregate # of allocated off-switch containers")
|
|
|
MutableCounterLong aggregateOffSwitchContainersAllocated;
|
|
|
@Metric("Aggregate # of released containers") MutableCounterLong aggregateContainersReleased;
|
|
|
- @Metric("Available memory in MB") MutableGaugeInt availableMB;
|
|
|
- @Metric("Available CPU in virtual cores") MutableGaugeInt availableVCores;
|
|
|
- @Metric("Pending memory allocation in MB") MutableGaugeInt pendingMB;
|
|
|
- @Metric("Pending CPU allocation in virtual cores") MutableGaugeInt pendingVCores;
|
|
|
+ @Metric("Available memory in MB") MutableGaugeLong availableMB;
|
|
|
+ @Metric("Available CPU in virtual cores") MutableGaugeLong availableVCores;
|
|
|
+ @Metric("Pending memory allocation in MB") MutableGaugeLong pendingMB;
|
|
|
+ @Metric("Pending CPU allocation in virtual cores") MutableGaugeLong pendingVCores;
|
|
|
@Metric("# of pending containers") MutableGaugeInt pendingContainers;
|
|
|
- @Metric("# of reserved memory in MB") MutableGaugeInt reservedMB;
|
|
|
- @Metric("Reserved CPU in virtual cores") MutableGaugeInt reservedVCores;
|
|
|
+ @Metric("# of reserved memory in MB") MutableGaugeLong reservedMB;
|
|
|
+ @Metric("Reserved CPU in virtual cores") MutableGaugeLong reservedVCores;
|
|
|
@Metric("# of reserved containers") MutableGaugeInt reservedContainers;
|
|
|
@Metric("# of active users") MutableGaugeInt activeUsers;
|
|
|
@Metric("# of active applications") MutableGaugeInt activeApplications;
|
|
@@ -325,7 +326,7 @@ public class QueueMetrics implements MetricsSource {
|
|
|
* @param limit resource limit
|
|
|
*/
|
|
|
public void setAvailableResourcesToQueue(Resource limit) {
|
|
|
- availableMB.set(limit.getMemory());
|
|
|
+ availableMB.set(limit.getMemorySize());
|
|
|
availableVCores.set(limit.getVirtualCores());
|
|
|
}
|
|
|
|
|
@@ -362,8 +363,8 @@ public class QueueMetrics implements MetricsSource {
|
|
|
|
|
|
private void _incrPendingResources(int containers, Resource res) {
|
|
|
pendingContainers.incr(containers);
|
|
|
- pendingMB.incr(res.getMemory() * containers);
|
|
|
- pendingVCores.incr(res.getVirtualCores() * containers);
|
|
|
+ pendingMB.incr(res.getMemorySize() * containers);
|
|
|
+ pendingVCores.incr(res.getVirtualCoresSize() * containers);
|
|
|
}
|
|
|
|
|
|
public void decrPendingResources(String user, int containers, Resource res) {
|
|
@@ -379,8 +380,8 @@ public class QueueMetrics implements MetricsSource {
|
|
|
|
|
|
private void _decrPendingResources(int containers, Resource res) {
|
|
|
pendingContainers.decr(containers);
|
|
|
- pendingMB.decr(res.getMemory() * containers);
|
|
|
- pendingVCores.decr(res.getVirtualCores() * containers);
|
|
|
+ pendingMB.decr(res.getMemorySize() * containers);
|
|
|
+ pendingVCores.decr(res.getVirtualCoresSize() * containers);
|
|
|
}
|
|
|
|
|
|
public void incrNodeTypeAggregations(String user, NodeType type) {
|
|
@@ -407,8 +408,8 @@ public class QueueMetrics implements MetricsSource {
|
|
|
allocatedContainers.incr(containers);
|
|
|
aggregateContainersAllocated.incr(containers);
|
|
|
|
|
|
- allocatedMB.incr(res.getMemory() * containers);
|
|
|
- allocatedVCores.incr(res.getVirtualCores() * containers);
|
|
|
+ allocatedMB.incr(res.getMemorySize() * containers);
|
|
|
+ allocatedVCores.incr(res.getVirtualCoresSize() * containers);
|
|
|
if (decrPending) {
|
|
|
_decrPendingResources(containers, res);
|
|
|
}
|
|
@@ -428,10 +429,10 @@ public class QueueMetrics implements MetricsSource {
|
|
|
* @param res
|
|
|
*/
|
|
|
public void allocateResources(String user, Resource res) {
|
|
|
- allocatedMB.incr(res.getMemory());
|
|
|
+ allocatedMB.incr(res.getMemorySize());
|
|
|
allocatedVCores.incr(res.getVirtualCores());
|
|
|
|
|
|
- pendingMB.decr(res.getMemory());
|
|
|
+ pendingMB.decr(res.getMemorySize());
|
|
|
pendingVCores.decr(res.getVirtualCores());
|
|
|
|
|
|
QueueMetrics userMetrics = getUserMetrics(user);
|
|
@@ -446,8 +447,8 @@ public class QueueMetrics implements MetricsSource {
|
|
|
public void releaseResources(String user, int containers, Resource res) {
|
|
|
allocatedContainers.decr(containers);
|
|
|
aggregateContainersReleased.incr(containers);
|
|
|
- allocatedMB.decr(res.getMemory() * containers);
|
|
|
- allocatedVCores.decr(res.getVirtualCores() * containers);
|
|
|
+ allocatedMB.decr(res.getMemorySize() * containers);
|
|
|
+ allocatedVCores.decr(res.getVirtualCoresSize() * containers);
|
|
|
QueueMetrics userMetrics = getUserMetrics(user);
|
|
|
if (userMetrics != null) {
|
|
|
userMetrics.releaseResources(user, containers, res);
|
|
@@ -464,7 +465,7 @@ public class QueueMetrics implements MetricsSource {
|
|
|
* @param res
|
|
|
*/
|
|
|
public void releaseResources(String user, Resource res) {
|
|
|
- allocatedMB.decr(res.getMemory());
|
|
|
+ allocatedMB.decr(res.getMemorySize());
|
|
|
allocatedVCores.decr(res.getVirtualCores());
|
|
|
QueueMetrics userMetrics = getUserMetrics(user);
|
|
|
if (userMetrics != null) {
|
|
@@ -477,7 +478,7 @@ public class QueueMetrics implements MetricsSource {
|
|
|
|
|
|
public void reserveResource(String user, Resource res) {
|
|
|
reservedContainers.incr();
|
|
|
- reservedMB.incr(res.getMemory());
|
|
|
+ reservedMB.incr(res.getMemorySize());
|
|
|
reservedVCores.incr(res.getVirtualCores());
|
|
|
QueueMetrics userMetrics = getUserMetrics(user);
|
|
|
if (userMetrics != null) {
|
|
@@ -490,7 +491,7 @@ public class QueueMetrics implements MetricsSource {
|
|
|
|
|
|
public void unreserveResource(String user, Resource res) {
|
|
|
reservedContainers.decr();
|
|
|
- reservedMB.decr(res.getMemory());
|
|
|
+ reservedMB.decr(res.getMemorySize());
|
|
|
reservedVCores.decr(res.getVirtualCores());
|
|
|
QueueMetrics userMetrics = getUserMetrics(user);
|
|
|
if (userMetrics != null) {
|
|
@@ -563,11 +564,11 @@ public class QueueMetrics implements MetricsSource {
|
|
|
return BuilderUtils.newResource(allocatedMB.value(), allocatedVCores.value());
|
|
|
}
|
|
|
|
|
|
- public int getAllocatedMB() {
|
|
|
+ public long getAllocatedMB() {
|
|
|
return allocatedMB.value();
|
|
|
}
|
|
|
|
|
|
- public int getAllocatedVirtualCores() {
|
|
|
+ public long getAllocatedVirtualCores() {
|
|
|
return allocatedVCores.value();
|
|
|
}
|
|
|
|
|
@@ -575,19 +576,19 @@ public class QueueMetrics implements MetricsSource {
|
|
|
return allocatedContainers.value();
|
|
|
}
|
|
|
|
|
|
- public int getAvailableMB() {
|
|
|
+ public long getAvailableMB() {
|
|
|
return availableMB.value();
|
|
|
}
|
|
|
|
|
|
- public int getAvailableVirtualCores() {
|
|
|
+ public long getAvailableVirtualCores() {
|
|
|
return availableVCores.value();
|
|
|
}
|
|
|
|
|
|
- public int getPendingMB() {
|
|
|
+ public long getPendingMB() {
|
|
|
return pendingMB.value();
|
|
|
}
|
|
|
|
|
|
- public int getPendingVirtualCores() {
|
|
|
+ public long getPendingVirtualCores() {
|
|
|
return pendingVCores.value();
|
|
|
}
|
|
|
|
|
@@ -595,11 +596,11 @@ public class QueueMetrics implements MetricsSource {
|
|
|
return pendingContainers.value();
|
|
|
}
|
|
|
|
|
|
- public int getReservedMB() {
|
|
|
+ public long getReservedMB() {
|
|
|
return reservedMB.value();
|
|
|
}
|
|
|
|
|
|
- public int getReservedVirtualCores() {
|
|
|
+ public long getReservedVirtualCores() {
|
|
|
return reservedVCores.value();
|
|
|
}
|
|
|
|