You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2016/04/13 01:07:47 UTC
mesos git commit: Added task metadata to ResourceUsage.
Repository: mesos
Updated Branches:
refs/heads/master c7802c030 -> 2155843c3
Added task metadata to ResourceUsage.
This makes non-terminal task metadata available in the container
resource usage. Notably this may be useful when task labels need
to be examined for the purposes of oversubscription.
Review: https://reviews.apache.org/r/45932
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/2155843c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/2155843c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/2155843c
Branch: refs/heads/master
Commit: 2155843c31fde0b20be64cb15a78ca2c61599a1c
Parents: c7802c0
Author: Zhitao Li <zh...@gmail.com>
Authored: Tue Apr 12 16:00:23 2016 -0700
Committer: Benjamin Mahler <bm...@apache.org>
Committed: Tue Apr 12 16:00:23 2016 -0700
----------------------------------------------------------------------
CHANGELOG | 3 +++
include/mesos/mesos.proto | 10 ++++++++++
include/mesos/v1/mesos.proto | 10 ++++++++++
src/slave/slave.cpp | 12 ++++++++++++
src/tests/oversubscription_tests.cpp | 13 ++++++++++++-
5 files changed, 47 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/2155843c/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index cbc4f9b..02b6094 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -58,6 +58,9 @@ Additional API Changes:
* [MESOS-5029] - Added 'labels' to ExecutorInfo.
+ * [MESOS-5030] - Added non-terminal task metadata to the container resource
+ usage information.
+
3rd Party Upgrades:
* [MESOS-4805] - Upgraded vendored ry-http-parser-1c3624a to nodejs/http-parser 2.6.1.
* [MESOS-4678] - Upgraded vendored protobuf 2.5.0 to 2.6.1.
http://git-wip-us.apache.org/repos/asf/mesos/blob/2155843c/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index eefa292..1232bcd 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -1021,6 +1021,16 @@ message ResourceUsage {
// The container id for the executor specified in the executor_info field.
required ContainerID container_id = 4;
+
+ message Task {
+ required string name = 1;
+ required TaskID id = 2;
+ repeated Resource resources = 3;
+ optional Labels labels = 4;
+ }
+
+ // Non-terminal tasks.
+ repeated Task tasks = 5;
}
repeated Executor executors = 1;
http://git-wip-us.apache.org/repos/asf/mesos/blob/2155843c/include/mesos/v1/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/v1/mesos.proto b/include/mesos/v1/mesos.proto
index 9b4f68f..1048fae 100644
--- a/include/mesos/v1/mesos.proto
+++ b/include/mesos/v1/mesos.proto
@@ -1020,6 +1020,16 @@ message ResourceUsage {
// The container id for the executor specified in the executor_info field.
required ContainerID container_id = 4;
+
+ message Task {
+ required string name = 1;
+ required TaskID id = 2;
+ repeated Resource resources = 3;
+ optional Labels labels = 4;
+ }
+
+ // Non-terminal tasks.
+ repeated Task tasks = 5;
}
repeated Executor executors = 1;
http://git-wip-us.apache.org/repos/asf/mesos/blob/2155843c/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 9de7e15..6ee277d 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -5174,6 +5174,18 @@ Future<ResourceUsage> Slave::usage()
entry->mutable_allocated()->CopyFrom(executor->resources);
entry->mutable_container_id()->CopyFrom(executor->containerId);
+ // We include non-terminal tasks in ResourceUsage.
+ foreach (const Task* task, executor->launchedTasks.values()) {
+ ResourceUsage::Executor::Task* t = entry->add_tasks();
+ t->set_name(task->name());
+ t->mutable_id()->CopyFrom(task->task_id());
+ t->mutable_resources()->CopyFrom(task->resources());
+
+ if (task->has_labels()) {
+ t->mutable_labels()->CopyFrom(task->labels());
+ }
+ }
+
futures.push_back(containerizer->usage(executor->containerId));
}
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/2155843c/src/tests/oversubscription_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/oversubscription_tests.cpp b/src/tests/oversubscription_tests.cpp
index f983765..f73f7be 100644
--- a/src/tests/oversubscription_tests.cpp
+++ b/src/tests/oversubscription_tests.cpp
@@ -227,8 +227,10 @@ TEST_F(OversubscriptionTest, FetchResourceUsage)
EXPECT_NE(0u, offers.get().size());
TaskInfo task = createTask(offers.get()[0], "sleep 10", DEFAULT_EXECUTOR_ID);
+ task.mutable_labels()->add_labels()->CopyFrom(
+ createLabel("key1", "value1"));
task.mutable_executor()->mutable_labels()->add_labels()->CopyFrom(
- createLabel("key", "value"));
+ createLabel("key2", "value2"));
Future<TaskStatus> status;
EXPECT_CALL(sched, statusUpdate(&driver, _))
@@ -257,6 +259,15 @@ TEST_F(OversubscriptionTest, FetchResourceUsage)
ASSERT_EQ(usage.get().executors(0).statistics(), statistics);
ASSERT_EQ(task.executor().labels(),
usage.get().executors(0).executor_info().labels());
+ ASSERT_EQ(1, usage.get().executors(0).tasks().size());
+ ASSERT_EQ(task.name(),
+ usage.get().executors(0).tasks(0).name());
+ ASSERT_EQ(task.task_id(),
+ usage.get().executors(0).tasks(0).id());
+ ASSERT_EQ(task.resources(),
+ usage.get().executors(0).tasks(0).resources());
+ ASSERT_EQ(task.labels(),
+ usage.get().executors(0).tasks(0).labels());
EXPECT_CALL(exec, shutdown(_))
.Times(AtMost(1));