% 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: % 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) % end
ID User Name Running Tasks CPUs MEM Max Share Connected
{{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'])}}
% else:

No frameworks are connected.

% end

Slaves

% # TODO: Sort these by slave ID. % if len(state['slaves']) > 0: % for slave in state['slaves']: % end
ID Hostname CPUs MEM Connected
{{slave['id']}} {{slave['hostname']}} {{slave['resources']['cpus']}} {{format_mem(slave['resources']['mem'])}} {{format_time(slave['registered_time'])}}
% else:

No slaves are connected.

% end

Resource Offers

% # TODO: Sort these by offer ID. % if offered_cpus > 0 or offered_mem > 0: % for framework in state['frameworks']: % for offer in framework['offers']: % end % end
Offer ID Framework ID Slave ID CPUs MEM
{{offer['id']}} {{offer['framework_id']}} {{offer['slave_id']}} {{offer['resources']['cpus']}} {{format_mem(offer['resources']['mem'])}}
% else:

No offers are active.

% end

Framework History

% if len(state['completed_frameworks']) > 0: % for framework in state['completed_frameworks']: % end
ID User Name Connected Disconnected
{{framework['id']}} {{framework['user']}} {{framework['name']}} {{format_time(framework['registered_time'])}} {{format_time(framework['unregistered_time'])}}
% else:

No frameworks have completed.

% end