|
@@ -66,20 +66,20 @@ public class TestQueueMetrics {
|
|
|
MetricsSource userSource = userSource(ms, queueName, user);
|
|
|
checkApps(queueSource, 1, 1, 0, 0, 0, 0);
|
|
|
|
|
|
- metrics.setAvailableResourcesToQueue(Resources.createResource(100*GB));
|
|
|
- metrics.incrPendingResources(user, 5, Resources.createResource(15*GB));
|
|
|
+ metrics.setAvailableResourcesToQueue(Resources.createResource(100*GB, 100));
|
|
|
+ metrics.incrPendingResources(user, 5, Resources.createResource(15*GB, 15));
|
|
|
// Available resources is set externally, as it depends on dynamic
|
|
|
// configurable cluster/queue resources
|
|
|
- checkResources(queueSource, 0, 0, 0, 0, 100*GB, 15*GB, 5, 0, 0);
|
|
|
+ checkResources(queueSource, 0, 0, 0, 0, 0, 100*GB, 100, 15*GB, 15, 5, 0, 0, 0);
|
|
|
|
|
|
metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
- metrics.allocateResources(user, 3, Resources.createResource(2*GB));
|
|
|
- checkResources(queueSource, 6*GB, 3, 3, 0, 100*GB, 9*GB, 2, 0, 0);
|
|
|
+ metrics.allocateResources(user, 3, Resources.createResource(2*GB, 2));
|
|
|
+ checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
|
|
|
|
|
|
- metrics.releaseResources(user, 1, Resources.createResource(2*GB));
|
|
|
- checkResources(queueSource, 4*GB, 2, 3, 1, 100*GB, 9*GB, 2, 0, 0);
|
|
|
+ metrics.releaseResources(user, 1, Resources.createResource(2*GB, 2));
|
|
|
+ checkResources(queueSource, 4*GB, 4, 2, 3, 1, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
|
|
|
|
|
|
metrics.finishApp(app, RMAppAttemptState.FINISHED);
|
|
|
checkApps(queueSource, 1, 0, 0, 1, 0, 0);
|
|
@@ -148,25 +148,25 @@ public class TestQueueMetrics {
|
|
|
checkApps(queueSource, 1, 1, 0, 0, 0, 0);
|
|
|
checkApps(userSource, 1, 1, 0, 0, 0, 0);
|
|
|
|
|
|
- metrics.setAvailableResourcesToQueue(Resources.createResource(100*GB));
|
|
|
- metrics.setAvailableResourcesToUser(user, Resources.createResource(10*GB));
|
|
|
- metrics.incrPendingResources(user, 5, Resources.createResource(15*GB));
|
|
|
+ metrics.setAvailableResourcesToQueue(Resources.createResource(100*GB, 100));
|
|
|
+ metrics.setAvailableResourcesToUser(user, Resources.createResource(10*GB, 10));
|
|
|
+ metrics.incrPendingResources(user, 5, Resources.createResource(15*GB, 15));
|
|
|
// Available resources is set externally, as it depends on dynamic
|
|
|
// configurable cluster/queue resources
|
|
|
- checkResources(queueSource, 0, 0, 0, 0, 100*GB, 15*GB, 5, 0, 0);
|
|
|
- checkResources(userSource, 0, 0, 0, 0, 10*GB, 15*GB, 5, 0, 0);
|
|
|
+ checkResources(queueSource, 0, 0, 0, 0, 0, 100*GB, 100, 15*GB, 15, 5, 0, 0, 0);
|
|
|
+ checkResources(userSource, 0, 0, 0, 0, 0, 10*GB, 10, 15*GB, 15, 5, 0, 0, 0);
|
|
|
|
|
|
metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
checkApps(userSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
- metrics.allocateResources(user, 3, Resources.createResource(2*GB));
|
|
|
- checkResources(queueSource, 6*GB, 3, 3, 0, 100*GB, 9*GB, 2, 0, 0);
|
|
|
- checkResources(userSource, 6*GB, 3, 3, 0, 10*GB, 9*GB, 2, 0, 0);
|
|
|
+ metrics.allocateResources(user, 3, Resources.createResource(2*GB, 2));
|
|
|
+ checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
|
|
|
+ checkResources(userSource, 6*GB, 6, 3, 3, 0, 10*GB, 10, 9*GB, 9, 2, 0, 0, 0);
|
|
|
|
|
|
- metrics.releaseResources(user, 1, Resources.createResource(2*GB));
|
|
|
- checkResources(queueSource, 4*GB, 2, 3, 1, 100*GB, 9*GB, 2, 0, 0);
|
|
|
- checkResources(userSource, 4*GB, 2, 3, 1, 10*GB, 9*GB, 2, 0, 0);
|
|
|
+ metrics.releaseResources(user, 1, Resources.createResource(2*GB, 2));
|
|
|
+ checkResources(queueSource, 4*GB, 4, 2, 3, 1, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
|
|
|
+ checkResources(userSource, 4*GB, 4, 2, 3, 1, 10*GB, 10, 9*GB, 9, 2, 0, 0, 0);
|
|
|
|
|
|
metrics.finishApp(app, RMAppAttemptState.FINISHED);
|
|
|
checkApps(queueSource, 1, 0, 0, 1, 0, 0);
|
|
@@ -197,35 +197,35 @@ public class TestQueueMetrics {
|
|
|
checkApps(userSource, 1, 1, 0, 0, 0, 0);
|
|
|
checkApps(parentUserSource, 1, 1, 0, 0, 0, 0);
|
|
|
|
|
|
- parentMetrics.setAvailableResourcesToQueue(Resources.createResource(100*GB));
|
|
|
- metrics.setAvailableResourcesToQueue(Resources.createResource(100*GB));
|
|
|
- parentMetrics.setAvailableResourcesToUser(user, Resources.createResource(10*GB));
|
|
|
- metrics.setAvailableResourcesToUser(user, Resources.createResource(10*GB));
|
|
|
- metrics.incrPendingResources(user, 5, Resources.createResource(15*GB));
|
|
|
- checkResources(queueSource, 0, 0, 0, 0, 100*GB, 15*GB, 5, 0, 0);
|
|
|
- checkResources(parentQueueSource, 0, 0, 0, 0, 100*GB, 15*GB, 5, 0, 0);
|
|
|
- checkResources(userSource, 0, 0, 0, 0, 10*GB, 15*GB, 5, 0, 0);
|
|
|
- checkResources(parentUserSource, 0, 0, 0, 0, 10*GB, 15*GB, 5, 0, 0);
|
|
|
+ parentMetrics.setAvailableResourcesToQueue(Resources.createResource(100*GB, 100));
|
|
|
+ metrics.setAvailableResourcesToQueue(Resources.createResource(100*GB, 100));
|
|
|
+ parentMetrics.setAvailableResourcesToUser(user, Resources.createResource(10*GB, 10));
|
|
|
+ metrics.setAvailableResourcesToUser(user, Resources.createResource(10*GB, 10));
|
|
|
+ metrics.incrPendingResources(user, 5, Resources.createResource(15*GB, 15));
|
|
|
+ checkResources(queueSource, 0, 0, 0, 0, 0, 100*GB, 100, 15*GB, 15, 5, 0, 0, 0);
|
|
|
+ checkResources(parentQueueSource, 0, 0, 0, 0, 0, 100*GB, 100, 15*GB, 15, 5, 0, 0, 0);
|
|
|
+ checkResources(userSource, 0, 0, 0, 0, 0, 10*GB, 10, 15*GB, 15, 5, 0, 0, 0);
|
|
|
+ checkResources(parentUserSource, 0, 0, 0, 0, 0, 10*GB, 10, 15*GB, 15, 5, 0, 0, 0);
|
|
|
|
|
|
metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
checkApps(userSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
- metrics.allocateResources(user, 3, Resources.createResource(2*GB));
|
|
|
- metrics.reserveResource(user, Resources.createResource(3*GB));
|
|
|
+ metrics.allocateResources(user, 3, Resources.createResource(2*GB, 2));
|
|
|
+ metrics.reserveResource(user, Resources.createResource(3*GB, 3));
|
|
|
// Available resources is set externally, as it depends on dynamic
|
|
|
// configurable cluster/queue resources
|
|
|
- checkResources(queueSource, 6*GB, 3, 3, 0, 100*GB, 9*GB, 2, 3*GB, 1);
|
|
|
- checkResources(parentQueueSource, 6*GB, 3, 3, 0, 100*GB, 9*GB, 2, 3*GB, 1);
|
|
|
- checkResources(userSource, 6*GB, 3, 3, 0, 10*GB, 9*GB, 2, 3*GB, 1);
|
|
|
- checkResources(parentUserSource, 6*GB, 3, 3, 0, 10*GB, 9*GB, 2, 3*GB, 1);
|
|
|
-
|
|
|
- metrics.releaseResources(user, 1, Resources.createResource(2*GB));
|
|
|
- metrics.unreserveResource(user, Resources.createResource(3*GB));
|
|
|
- checkResources(queueSource, 4*GB, 2, 3, 1, 100*GB, 9*GB, 2, 0, 0);
|
|
|
- checkResources(parentQueueSource, 4*GB, 2, 3, 1, 100*GB, 9*GB, 2, 0, 0);
|
|
|
- checkResources(userSource, 4*GB, 2, 3, 1, 10*GB, 9*GB, 2, 0, 0);
|
|
|
- checkResources(parentUserSource, 4*GB, 2, 3, 1, 10*GB, 9*GB, 2, 0, 0);
|
|
|
+ checkResources(queueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 3*GB, 3, 1);
|
|
|
+ checkResources(parentQueueSource, 6*GB, 6, 3, 3, 0, 100*GB, 100, 9*GB, 9, 2, 3*GB, 3, 1);
|
|
|
+ checkResources(userSource, 6*GB, 6, 3, 3, 0, 10*GB, 10, 9*GB, 9, 2, 3*GB, 3, 1);
|
|
|
+ checkResources(parentUserSource, 6*GB, 6, 3, 3, 0, 10*GB, 10, 9*GB, 9, 2, 3*GB, 3, 1);
|
|
|
+
|
|
|
+ metrics.releaseResources(user, 1, Resources.createResource(2*GB, 2));
|
|
|
+ metrics.unreserveResource(user, Resources.createResource(3*GB, 3));
|
|
|
+ checkResources(queueSource, 4*GB, 4, 2, 3, 1, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
|
|
|
+ checkResources(parentQueueSource, 4*GB, 4, 2, 3, 1, 100*GB, 100, 9*GB, 9, 2, 0, 0, 0);
|
|
|
+ checkResources(userSource, 4*GB, 4, 2, 3, 1, 10*GB, 10, 9*GB, 9, 2, 0, 0, 0);
|
|
|
+ checkResources(parentUserSource, 4*GB, 4, 2, 3, 1, 10*GB, 10, 9*GB, 9, 2, 0, 0, 0);
|
|
|
|
|
|
metrics.finishApp(app, RMAppAttemptState.FINISHED);
|
|
|
checkApps(queueSource, 1, 0, 0, 1, 0, 0);
|
|
@@ -277,18 +277,23 @@ public class TestQueueMetrics {
|
|
|
}
|
|
|
|
|
|
public static void checkResources(MetricsSource source, int allocatedMB,
|
|
|
- int allocCtnrs, long aggreAllocCtnrs, long aggreReleasedCtnrs,
|
|
|
- int availableMB, int pendingMB, int pendingCtnrs,
|
|
|
- int reservedMB, int reservedCtnrs) {
|
|
|
+ int allocatedCores, int allocCtnrs, long aggreAllocCtnrs,
|
|
|
+ long aggreReleasedCtnrs, int availableMB, int availableCores, int pendingMB,
|
|
|
+ int pendingCores, int pendingCtnrs, int reservedMB, int reservedCores,
|
|
|
+ int reservedCtnrs) {
|
|
|
MetricsRecordBuilder rb = getMetrics(source);
|
|
|
assertGauge("AllocatedMB", allocatedMB, rb);
|
|
|
+ assertGauge("AllocatedVCores", allocatedCores, rb);
|
|
|
assertGauge("AllocatedContainers", allocCtnrs, rb);
|
|
|
assertCounter("AggregateContainersAllocated", aggreAllocCtnrs, rb);
|
|
|
assertCounter("AggregateContainersReleased", aggreReleasedCtnrs, rb);
|
|
|
assertGauge("AvailableMB", availableMB, rb);
|
|
|
+ assertGauge("AvailableVCores", availableCores, rb);
|
|
|
assertGauge("PendingMB", pendingMB, rb);
|
|
|
+ assertGauge("PendingVCores", pendingCores, rb);
|
|
|
assertGauge("PendingContainers", pendingCtnrs, rb);
|
|
|
assertGauge("ReservedMB", reservedMB, rb);
|
|
|
+ assertGauge("ReservedVCores", reservedCores, rb);
|
|
|
assertGauge("ReservedContainers", reservedCtnrs, rb);
|
|
|
}
|
|
|
|