|
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertNull;
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
import static org.mockito.Mockito.when;
|
|
|
|
|
|
+import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.metrics2.MetricsRecordBuilder;
|
|
|
import org.apache.hadoop.metrics2.MetricsSource;
|
|
|
import org.apache.hadoop.metrics2.MetricsSystem;
|
|
@@ -41,6 +42,7 @@ import org.junit.Test;
|
|
|
|
|
|
public class TestQueueMetrics {
|
|
|
static final int GB = 1024; // MB
|
|
|
+ private static final Configuration conf = new Configuration();
|
|
|
|
|
|
final MetricsSystem ms = new MetricsSystemImpl();
|
|
|
|
|
@@ -48,7 +50,8 @@ public class TestQueueMetrics {
|
|
|
String queueName = "single";
|
|
|
String user = "alice";
|
|
|
|
|
|
- QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, false);
|
|
|
+ QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, false,
|
|
|
+ conf);
|
|
|
MetricsSource queueSource= queueSource(ms, queueName);
|
|
|
AppSchedulingInfo app = mockApp(user);
|
|
|
|
|
@@ -62,7 +65,7 @@ public class TestQueueMetrics {
|
|
|
// configurable cluster/queue resources
|
|
|
checkResources(queueSource, 0, 0, 0, 0, 100*GB, 15*GB, 5, 0, 0);
|
|
|
|
|
|
- metrics.incrAppsRunning(user);
|
|
|
+ metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
metrics.allocateResources(user, 3, Resources.createResource(2*GB));
|
|
@@ -81,7 +84,8 @@ public class TestQueueMetrics {
|
|
|
String queueName = "single";
|
|
|
String user = "alice";
|
|
|
|
|
|
- QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, false);
|
|
|
+ QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, false,
|
|
|
+ new Configuration());
|
|
|
MetricsSource queueSource = queueSource(ms, queueName);
|
|
|
AppSchedulingInfo app = mockApp(user);
|
|
|
|
|
@@ -89,7 +93,7 @@ public class TestQueueMetrics {
|
|
|
MetricsSource userSource = userSource(ms, queueName, user);
|
|
|
checkApps(queueSource, 1, 1, 0, 0, 0, 0);
|
|
|
|
|
|
- metrics.incrAppsRunning(user);
|
|
|
+ metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
metrics.finishApp(app, RMAppAttemptState.FAILED);
|
|
@@ -100,7 +104,7 @@ public class TestQueueMetrics {
|
|
|
metrics.submitApp(user, 2);
|
|
|
checkApps(queueSource, 1, 1, 0, 0, 0, 0);
|
|
|
|
|
|
- metrics.incrAppsRunning(user);
|
|
|
+ metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
// Suppose say application has failed this time as well.
|
|
@@ -112,7 +116,7 @@ public class TestQueueMetrics {
|
|
|
metrics.submitApp(user, 3);
|
|
|
checkApps(queueSource, 1, 1, 0, 0, 0, 0);
|
|
|
|
|
|
- metrics.incrAppsRunning(user);
|
|
|
+ metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
|
// Suppose say application has finished.
|
|
@@ -126,7 +130,8 @@ public class TestQueueMetrics {
|
|
|
String queueName = "single2";
|
|
|
String user = "dodo";
|
|
|
|
|
|
- QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, true);
|
|
|
+ QueueMetrics metrics = QueueMetrics.forQueue(ms, queueName, null, true,
|
|
|
+ conf);
|
|
|
MetricsSource queueSource = queueSource(ms, queueName);
|
|
|
AppSchedulingInfo app = mockApp(user);
|
|
|
|
|
@@ -144,7 +149,7 @@ public class TestQueueMetrics {
|
|
|
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);
|
|
|
|
|
|
- metrics.incrAppsRunning(user);
|
|
|
+ metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
checkApps(userSource, 1, 0, 1, 0, 0, 0);
|
|
|
|
|
@@ -167,11 +172,11 @@ public class TestQueueMetrics {
|
|
|
String user = "alice";
|
|
|
|
|
|
QueueMetrics parentMetrics =
|
|
|
- QueueMetrics.forQueue(ms, parentQueueName, null, true);
|
|
|
+ QueueMetrics.forQueue(ms, parentQueueName, null, true, conf);
|
|
|
Queue parentQueue = make(stub(Queue.class).returning(parentMetrics).
|
|
|
from.getMetrics());
|
|
|
QueueMetrics metrics =
|
|
|
- QueueMetrics.forQueue(ms, leafQueueName, parentQueue, true);
|
|
|
+ QueueMetrics.forQueue(ms, leafQueueName, parentQueue, true, conf);
|
|
|
MetricsSource parentQueueSource = queueSource(ms, parentQueueName);
|
|
|
MetricsSource queueSource = queueSource(ms, leafQueueName);
|
|
|
AppSchedulingInfo app = mockApp(user);
|
|
@@ -195,7 +200,7 @@ public class TestQueueMetrics {
|
|
|
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);
|
|
|
|
|
|
- metrics.incrAppsRunning(user);
|
|
|
+ metrics.incrAppsRunning(app, user);
|
|
|
checkApps(queueSource, 1, 0, 1, 0, 0, 0);
|
|
|
checkApps(userSource, 1, 0, 1, 0, 0, 0);
|
|
|
|