{% macro render_stat(stats, name, max_diff=0.5) %} {% set value = stats[name] %} {{ value }} {% set diff = stats.get(name + '_diff', None) %} {% if diff %} {% if diff > max_diff %} {% set color='red' %} {% elif diff < -max_diff %} {% set color='green' %} {% else %} {% set color='gray' %} {% endif %} {{ '(%+.2f%%)' % (color, diff) }} {% endif %} {% endmacro %} {% macro _render_cell(source_stats, max_diff) -%} {% if source_stats.cache_miss_count != source_stats.sub_source_requests %} {{ render_stat(source_stats, 'cache_miss_count', max_diff) }}
{% endif %} {{ render_stat(source_stats, 'sub_source_requests', max_diff) }} {%- endmacro %} {% macro _render_row(region, region_stats, client_names, max_diff) -%} {{ region }} {{ region_stats['incoming_requests'] }} {{ _render_cell(region_stats['sources_stats']['all'], max_diff) }} {% for client_name in client_names %} {{ _render_cell(region_stats['sources_stats'][client_name], max_diff) }} {% endfor %} {%- endmacro %} {% macro render(stats, max_diff=0.5) -%} {% if stats %} {% set client_names = stats['all']['sources_stats'].keys() %} {% set tmp = client_names.remove('all') %} {% for client_name in client_names %} {% endfor %} {% for region, region_stats in stats.iteritems() %} {{ _render_row(region, region_stats, client_names, max_diff) }} {% endfor %}
region incoming requests cache miss count / requests to subsources
all{{ client_name }}
{% else %} cannot download stats resource {% endif %} {%- endmacro %}