% import json
% import os
% import time
% import urllib
% from datetime import datetime
% from webui_lib import *
% url = "http://localhost:" + master_port + "/master/state.json"
% data = urllib.urlopen(url).read()
% state = json.loads(data)
Mesos Master
Mesos Master
% pid = state['pid'] # master@ip:port
% _, server = pid.split("@", 1)
% ip, port = server.split(":", 1)
% format = "%a %b %d %Y %I:%M:%S %p " + time.strftime("%Z", time.gmtime())
% start_local = datetime.fromtimestamp(state['start_time']).strftime(format)
% start_utc = datetime.utcfromtimestamp(state['start_time']).isoformat(' ')
Server: {{HOSTNAME}}:{{port}} ({{ip}}:{{port}})
Built: {{state['build_date']}} by {{state['build_user']}}
Started: {{start_local}} ({{start_utc}} UTC)
ID: {{state['id']}}
Log:
% if log_dir != "":
[last 100 lines]
[full]
% else:
Logging to a file is not enabled, please set the 'log_dir' option.
% end
Resources
% total_cpus = 0
% total_mem = 0
% for slave in state['slaves']:
% total_cpus += slave['resources']['cpus']
% total_mem += slave['resources']['mem']
% end
% offered_cpus = 0
% offered_mem = 0
% for framework in state['frameworks']:
% for offer in framework['offers']:
% offered_cpus += offer['resources']['cpus']
% offered_mem += offer['resources']['mem']
% end
% end
% running_cpus = 0
% running_mem = 0
% for framework in state['frameworks']:
% running_cpus += framework['resources']['cpus']
% running_mem += framework['resources']['mem']
% end
% running_cpus -= offered_cpus
% running_mem -= offered_mem
% idle_cpus = total_cpus - (offered_cpus + running_cpus)
% idle_mem = total_mem - (offered_mem + running_mem)
Total: |
|
{{total_cpus}} CPUs |
|
{{format_mem(total_mem)}} MEM |
Used: |
|
{{running_cpus}} CPUs |
|
{{format_mem(running_mem)}} MEM |
Offered: |
|
{{offered_cpus}} CPUs |
|
{{format_mem(offered_mem)}} MEM |
Idle: |
|
{{idle_cpus}} CPUs |
|
{{format_mem(idle_mem)}} MEM |
Active Frameworks
% # TODO: Sort these by framework ID.
% if len(state['frameworks']) > 0:
ID |
User |
Name |
Running Tasks |
CPUs |
MEM |
Max Share |
Connected |
% for framework in state['frameworks']:
% cpu_share = 0
% if total_cpus > 0:
% cpu_share = framework['resources']['cpus'] / float(total_cpus)
% end
% mem_share = 0
% if total_mem > 0:
% mem_share = framework['resources']['mem'] / float(total_mem)
% end
% max_share = max(cpu_share, mem_share)
{{framework['id']}} |
{{framework['user']}} |
{{framework['name']}}
|
{{len(framework['tasks'])}} |
{{framework['resources']['cpus']}} |
{{format_mem(framework['resources']['mem'])}} |
{{'%.2f' % max_share}} |
{{format_time(framework['registered_time'])}} |
% end
% else:
No frameworks are connected.
% end
Slaves
% # TODO: Sort these by slave ID.
% if len(state['slaves']) > 0:
ID |
Hostname |
CPUs |
MEM |
Connected |
% for slave in state['slaves']:
{{slave['id']}} |
{{slave['hostname']}}
|
{{slave['resources']['cpus']}} |
{{format_mem(slave['resources']['mem'])}} |
{{format_time(slave['registered_time'])}} |
% end
% else:
No slaves are connected.
% end
Resource Offers
% # TODO: Sort these by offer ID.
% if offered_cpus > 0 or offered_mem > 0:
Offer ID |
Framework ID |
Slave ID |
CPUs |
MEM |
% for framework in state['frameworks']:
% for offer in framework['offers']:
{{offer['id']}} |
{{offer['framework_id']}} |
{{offer['slave_id']}} |
{{offer['resources']['cpus']}} |
{{format_mem(offer['resources']['mem'])}} |
% end
% end
% else:
No offers are active.
% end
Framework History
% if len(state['completed_frameworks']) > 0:
ID |
User |
Name |
Connected |
Disconnected |
% for framework in state['completed_frameworks']:
{{framework['id']}} |
{{framework['user']}} |
{{framework['name']}}
|
{{format_time(framework['registered_time'])}} |
{{format_time(framework['unregistered_time'])}} |
% end
% else:
No frameworks have completed.
% end