{% extends "base.html" %}
{% block body %}
{% if error %}
{{ response_code }}
{{ error_description }}
{% endif %}
{% if single_configuration %}
{% if page == 'deploy' %}
{% include 'deploy.html' %}
{% endif %}
{% if page == 'details' %}
{% include 'details.html' %}
{% endif %}
{% if page == 'configurations' %}
{% include 'configurations.html' %}
{% endif %}
{% if page == 'shardtool' %}
{% include 'shardtool.html' %}
{% endif %}
{% if page == 'instances' and instances %}
{% set ha_count = instances['hosts_alive_count'] %}
{% set ht_count = instances['hosts_total_count'] %}
{% set h_perc = 100.0 * ha_count / ht_count %}
{% set ia_count = instances['instances_alive_count'] %}
{% set it_count = instances['instances_total_count'] %}
{% set i_perc = 100.0 * ia_count / it_count %}
hosts instances
crashes / instance / 1 5 15 min
alive
{{ '%.2f%%' % (h_perc) }} ({{ ha_count }} / {{ ht_count }})
{{ '%.2f%%' % (i_perc) }} ({{ ia_count }} / {{ it_count }})
{{ '%.3f' % instances['crashes'][0] }}
{{ '%.3f' % instances['crashes'][1] }}
{{ '%.3f' % instances['crashes'][2] }}
dead unprepared prepared inactive
active
hosts
{{ '%.2f%%' % (100.0*instances.dhc/instances.thc,) }}
+h
({{ instances.dhc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.uhc/instances.thc,) }}
+h
({{ instances.uhc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.phc/instances.thc,) }}
+h
({{ instances.phc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.ihc/instances.thc,) }}
+h
({{ instances.ihc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.ahc/instances.thc,) }}
+h
({{ instances.ahc }} / {{ instances.thc }})
{% for m in instances.dead_hosts %}
+{{ m }}
{% endfor %}
{% for m in instances.inactive_hosts %}
+{{ m }}
{% endfor %}
{% for m in instances.prepared_hosts %}
+{{ m }}
{% endfor %}
{% for m in instances.unprepared_hosts %}
+{{ m }}
{% endfor %}
{% for m in instances.active_hosts %}
+{{ m }}
{% endfor %}
inactive on alive
instances
{{ '%.2f%%' % (100.0*instances.dic/instances.instances_total_count,) }}
+i:p
({{ instances.dic }} / {{ instances.instances_total_count }})
{% for m in instances.dead_instances %}
+{{ m }}
{% endfor %}
CGROUPS
I
instances
{% for k in instances['c_keys'] %}
{{ k }}
i:p
{{ '%.2f%%' % (100.0*instances['c_lens'][k]/instances['instances_alive_count'],) }}
({{ instances['c_lens'][k] }}/{{ instances['instances_alive_count']}})
{% endfor %}
{% for k in instances['c_keys'] %}
{% for m in instances['cgroups'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
SUPERMIND
H I instances
{% for k in instances.u_keys %}
{{ k }}
+h
i:p
{{ '%.2f%%' % (100.0*instances['supermind'][k]/instances['instances_alive_count'],) }}
({{ instances['supermind'][k] }}/{{ instances['instances_alive_count'] }})
{% endfor %}
{% for k in instances.u_keys %}
{% for m in instances.supermind_h[k] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances.u_keys %}
{% for m in instances.supermind_i[k] %}
{{ m }}
{% endfor %}
{% endfor %}
SHARDS CMS
H I
instances
{% for k in instances['s_keys'] %}
{{ k.split('#')[0] }} {{ k.split('#')[1] }}
+h
i:p
{{ '%.2f%%' % (100.0*instances['shards'][k]/instances['instances_alive_count'],) }}
({{ instances['shards'][k] }}/{{ instances['instances_alive_count']}})
{% endfor %}
{% for k in instances['s_keys'] %}
{% for m in instances['shards_h'][k] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances['s_keys'] %}
{% for m in instances['shards_i'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
SVN url
H I
instances
{% for k in instances['r_keys'] %}
{{ k }}
+h
i:p
{{ '%.2f%%' % (100.0*instances['revisions'][k]/instances['instances_alive_count'],) }}
({{ instances['revisions'][k] }}/{{ instances['instances_alive_count']}})
{% endfor %}
{% for k in instances['r_keys'] %}
{% for m in instances['revisions_h'][k] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances['r_keys'] %}
{% for m in instances['revisions_i'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
Binary's MD5 uname
H I
instances
{% for k in instances['b_keys'] %}
{{ k.split('#')[0] }} {{ k.split('#')[1] }}
+h
i:p
{{ '%.2f%%' % (100.0*instances['bmd5'][k]/instances['instances_alive_count'],) }}
({{ instances['bmd5'][k] }}/{{ instances['instances_alive_count']}})
{% endfor %}
{% for k in instances['b_keys'] %}
{% for m in instances['bmd5_h'][k] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances['b_keys'] %}
{% for m in instances['bmd5_i'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
Models archive's MD5
H I
instances
{% for k in instances['m_keys'] %}
{{ k.split('#')[0] }}
+h
i:p
{{ '%.2f%%' % (100.0*instances['mmd5'][k]/instances['instances_alive_count'],) }}
({{ instances['mmd5'][k] }}/{{ instances['instances_alive_count']}})
{% endfor %}
{% for k in instances['m_keys'] %}
{% for m in instances['mmd5_h'][k] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances['m_keys'] %}
{% for m in instances['mmd5_i'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
{% if instances['be_keys'] | length > 0 %}
BALANCER EXPERIMENTS
H I instances
{% for k in instances.be_keys %}
{{ k }}
+h
i:p
{{ '%.2f%%' % (100.0*instances['balancer_experiments'][k]/instances['instances_alive_count'],) }}
({{ instances['balancer_experiments'][k] }}/{{ instances['instances_alive_count'] }})
{% endfor %}
{% for k in instances.be_keys %}
{% for m in instances.balancer_experiments_h[k] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances.be_keys %}
{% for m in instances.balancer_experiments_i[k] %}
{{ m }}
{% endfor %}
{% endfor %}
{% endif %}
{% for k in instances.bsc_disable_hosts %}
+{{ k }}
{% endfor %}
{% if instances['shardtool'] %}
Shardtool status
shards
I
H
{% for k in instances['shardtool']['keys'] %}
{{ k }}
{{ instances['shardtool']['instances'][k] | length }} / {{ instances['shardtool']['shard_count'] }}
i:p
+h
{% endfor %}
{% for k in instances['shardtool']['keys'] %}
{% for m in instances['shardtool']['instances'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
{% for k in instances['shardtool']['keys'] %}
{% for m in instances['shardtool']['instances'][k] %}
{{ m }}
{% endfor %}
{% endfor %}
{% endif %}
{% endif %}
{% if page == 'shards' and shards %}
shard
not ready or dead hosts
ready hosts
tier
init
{% for s in shards_keys %}
{{ s }}
{% for h in shards[s]['nrhosts'] %}
{% if shards[s]['nrhosts'][h]['ts'] > 0 %}
{% set p = 100.0*shards[s]['nrhosts'][h]['ds']/shards[s]['nrhosts'][h]['ts'] %}
{% else %}
{% set p = 0 %}
{% endif %}
{{ h }}
{{ '%.3f' % (shards[s]['nrhosts'][h]['ds']/1024/1024/1024) }} /
{{ '%.3f' % (shards[s]['nrhosts'][h]['ts']/1024/1024/1024) }} GB
{% endfor %}
{% for h in shards[s]['rhosts'] %}
{% set p = 100.0 %}
{{ h }}
{%endfor%}
{{ shards[s]['tier'] }}
NO{% else %}>YES{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% if page == 'kernels' and versions and versions2 and versions3%}
kernels
{% for k, v in versions | dictsort(by='value') %}
{{ k[0]
}}
{{
k[1] }}
{{ '%.2f%%' % (100.0 * (-v[0]) / hosts_count, ) }}
({{ (-v[0]) }} / {{ hosts_count }} )
+h
{% endfor %}
{% for k in versions %}
{% for m in versions[k][1] %}
+{{ m }}
{% endfor %}
{% endfor %}
setups
{% for k, v in versions2 | dictsort(by='value') %}
{{ k
}}
{% set p = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %}
{{ '%.2f%%' | format(p) }}
({{ -v[0] }} / {{ hosts_count }} )
+h
{% endfor %}
{% for k in versions2 %}
{% for m in versions2[k][1] %}
+{{ m }}
{% endfor %}
{% endfor %}
golovan
{% for k, v in versions3 | dictsort(by='value') %}
{{ k
}}
{% set p = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %}
{{ '%.2f%%' | format(p) }}
({{ -v[0] }} / {{ hosts_count }} )
+h
{% endfor %}
{% for k in versions3 %}
{% for m in versions3[k][1] %}
+{{ m }}
{% endfor %}
{% endfor %}
iss
{% for k, v in versions4 | dictsort(by='value') %}
{{ k
}}
{% set p = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %}
{{ '%.2f%%' | format(p) }}
({{ -v[0] }} / {{ hosts_count }} )
+h
{% endfor %}
{% for k in versions4 %}
{% for m in versions4[k][1] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% endif %}
{% if page == 'packages' and packages %}
packages
{% for p in packages | sort %}
{{ p }}
{% endfor %}
{% for p in packages | sort %}
{% for k, v in packages[p] | dictsort(by='value') %}
{{ k
}}
{% set pe = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %}
{{ '%.2f' | format(pe) }}% ({{ -(v[0]) }} / {{ hosts_count }})
+h
{% endfor %}
{% for k, v in packages[p] | dictsort(by='value') %}
{% for m in v[1] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% endfor %}
{% endif %}
{% if page == 'skynet' and skyinfo %}
{% set services = ['copier', 'cqueue', 'cqudp'] %}
{% for service in services %}
{{ service }}
{% set cnt = hosts_count - (skyinfo['hosts_dead'] | length) %}
{% set p = 0 if not cnt else 100.0 * skyinfo[service]['hosts_alive_count'] / cnt %}
{{ '%.2f%%' % (p) }} ({{ skyinfo[service]['hosts_alive_count'] }}/{{ cnt }})
defunct
+h
{% for m in skyinfo[service]['hosts_defunct'] %}
+{{ m }}
{% endfor %}
{% endfor %}
sky get
{% set p = 100.0 * mon.copier.success_count / mon.copier.total_count if mon.copier.total_count else 0 %}
{{ '%.2f%%' % (p) }} ({{ mon.copier.success_count }}/{{ mon.copier.total_count }})
defunct
+h
{% for m in mon.copier.defunct_hosts %}
+{{ m }}
{% endfor %}
sky ping
{% set p = 100.0 * mon.cqueue.success_count / mon.cqueue.total_count if mon.cqueue.total_count else 0 %}
{{ '%.2f%%' % (p) }} ({{ mon.cqueue.success_count }}/{{ mon.cqueue.total_count }})
defunct
+h
{% for m in mon.cqueue.defunct_hosts %}
+{{ m }}
{% endfor %}
cqudp ping
{% set p = 100.0 * mon.cqudp.success_count / mon.cqudp.total_count if mon.cqudp.total_count else 0 %}
{{ '%.2f%%' % (p) }} ({{ mon.cqudp.success_count }}/{{ mon.cqudp.total_count }})
defunct
+h
{% for m in mon.cqudp.defunct_hosts %}
+{{ m }}
{% endfor %}
dead +h
{% for m in skyinfo['hosts_dead'] %}
+{{ m }}
{% endfor %}
{% endif %}
{% if confs_keys %}
active hosts alive instances configuration
{% for c in confs_keys %}
{% set conf = confs[c] %}
{% set ha_count = conf['hosts_active_count'] %}
{% set hi_count = conf['hosts_inactive_count'] %}
{% set h_perc = 100.0 * conf['hosts_active_perc'] %}
{% set h_count = ha_count + hi_count %}
{% set ia_count = conf['instances_alive_count'] %}
{% set i_count = conf['instances_total_count'] %}
{% set i_perc = 100.0 * ia_count / i_count %}
{% set first = (c == confs_keys[0]) %}
{% if first and h_perc > 99 %}
{% elif first and h_perc < 98 %}
{% else %}
{% endif %}
{{ '%.2f%%' % (h_perc) }}
{{ ha_count }} / {{ h_count }}
{% if first and i_perc > 99 %}
{% elif first and i_perc < 98 %}
{% else %}
{% endif %}
{{ '%.2f%%' % (i_perc) }} {{ ia_count }} / {{ i_count }}
{{ c }}
+h
{% endfor %}
{% for c in confs_keys %}
{% set conf = confs[c] %}
{% for m in conf['hosts_active'] %}
+{{ m }}
{% endfor %}
{% endfor %}
{% endif %}
{% endblock %}