有没有办法在mesos中获取任务使用的最大内存?

时间:2017-09-07 10:28:51

标签: scala mesos

上下文

我在Scala中基于Mesos Scheduler Interface实现了Scheduler

所有任务都经过精心策划。

期望:

现在,我希望能够监控已完成任务所消耗的最大内存。

对于Scheduler.statusUpdate()状态的每个任务,我希望在TASK_FINISHED方法的实现中执行此监视任务。

问题:

在此方法中,提供了SchedulerDriverProtos.TaskStatus

那么,有没有办法从SchedulerDriverProtos.TaskStatus检索相应任务使用的最大内存?

2 个答案:

答案 0 :(得分:2)

Mesos在slave(1)/monitor/statistics中公开有关任务统计信息的信息。您需要在每个代理上刮取此端点并聚合响应以获取给定任务的最大值。

答案 1 :(得分:1)

根据Mesos代理配置的隔离类型,例如: cgroups/*或者如果您使用的是Docker容器,您可以考虑在代理主机上运行外部服务,以便为您收集和聚合内存和其他运行时统计信息。例如,您可以使用诸如cadvisor之类的收集器守护程序来监视您的任务,然后ship将这些指标发送到持久数据存储区,以便以灵活的方式查询它们。