Merge pull request #1031 from mmunz/master

Repair cache status page in appadmin for welcome, admin and examples …
This commit is contained in:
mdipierro
2015-08-18 11:02:14 -05:00
6 changed files with 81 additions and 78 deletions
+11 -10
View File
@@ -445,15 +445,16 @@ def ccache():
gae_stats['oldest'] = GetInHMS(time.time() - gae_stats['oldest_item_age']) gae_stats['oldest'] = GetInHMS(time.time() - gae_stats['oldest_item_age'])
total.update(gae_stats) total.update(gae_stats)
else: else:
for key, value in cache.ram.storage.iteritems(): # get ram stats directly from the cache object
if isinstance(value, dict): ram_stats = cache.ram.stats[request.application]
ram['hits'] = value['hit_total'] - value['misses'] ram['hits'] = ram_stats['hit_total'] - ram_stats['misses']
ram['misses'] = value['misses'] ram['misses'] = ram_stats['misses']
try: try:
ram['ratio'] = ram['hits'] * 100 / value['hit_total'] ram['ratio'] = ram['hits'] * 100 / ram_stats['hit_total']
except (KeyError, ZeroDivisionError): except (KeyError, ZeroDivisionError):
ram['ratio'] = 0 ram['ratio'] = 0
else:
for key, value in cache.ram.storage.iteritems():
if hp: if hp:
ram['bytes'] += hp.iso(value[1]).size ram['bytes'] += hp.iso(value[1]).size
ram['objects'] += hp.iso(value[1]).count ram['objects'] += hp.iso(value[1]).count
@@ -464,11 +465,11 @@ def ccache():
for key in cache.disk.storage: for key in cache.disk.storage:
value = cache.disk.storage[key] value = cache.disk.storage[key]
if isinstance(value, dict): if isinstance(value[1], dict):
disk['hits'] = value['hit_total'] - value['misses'] disk['hits'] = value[1]['hit_total'] - value[1]['misses']
disk['misses'] = value['misses'] disk['misses'] = value[1]['misses']
try: try:
disk['ratio'] = disk['hits'] * 100 / value['hit_total'] disk['ratio'] = disk['hits'] * 100 / value[1]['hit_total']
except (KeyError, ZeroDivisionError): except (KeyError, ZeroDivisionError):
disk['ratio'] = 0 disk['ratio'] = 0
else: else:
+5 -5
View File
@@ -137,8 +137,8 @@
<h4>{{=T("Overview")}}</h4> <h4>{{=T("Overview")}}</h4>
<p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p> <p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p>
{{if total['entries'] > 0:}} {{if total['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses})", <p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict(ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}} dict( ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}}
</p> </p>
<p> <p>
{{=T("Size of cache:")}} {{=T("Size of cache:")}}
@@ -155,7 +155,7 @@
{{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}} dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle();')}} {{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="all_keys"> <div class="hidden" id="all_keys">
{{=total['keys']}} {{=total['keys']}}
</div> </div>
@@ -183,7 +183,7 @@
{{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}} dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle();')}} {{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="ram_keys"> <div class="hidden" id="ram_keys">
{{=ram['keys']}} {{=ram['keys']}}
</div> </div>
@@ -212,7 +212,7 @@
{{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}} dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}} {{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="disk_keys"> <div class="hidden" id="disk_keys">
{{=disk['keys']}} {{=disk['keys']}}
</div> </div>
+11 -10
View File
@@ -445,15 +445,16 @@ def ccache():
gae_stats['oldest'] = GetInHMS(time.time() - gae_stats['oldest_item_age']) gae_stats['oldest'] = GetInHMS(time.time() - gae_stats['oldest_item_age'])
total.update(gae_stats) total.update(gae_stats)
else: else:
for key, value in cache.ram.storage.iteritems(): # get ram stats directly from the cache object
if isinstance(value, dict): ram_stats = cache.ram.stats[request.application]
ram['hits'] = value['hit_total'] - value['misses'] ram['hits'] = ram_stats['hit_total'] - ram_stats['misses']
ram['misses'] = value['misses'] ram['misses'] = ram_stats['misses']
try: try:
ram['ratio'] = ram['hits'] * 100 / value['hit_total'] ram['ratio'] = ram['hits'] * 100 / ram_stats['hit_total']
except (KeyError, ZeroDivisionError): except (KeyError, ZeroDivisionError):
ram['ratio'] = 0 ram['ratio'] = 0
else:
for key, value in cache.ram.storage.iteritems():
if hp: if hp:
ram['bytes'] += hp.iso(value[1]).size ram['bytes'] += hp.iso(value[1]).size
ram['objects'] += hp.iso(value[1]).count ram['objects'] += hp.iso(value[1]).count
@@ -464,11 +465,11 @@ def ccache():
for key in cache.disk.storage: for key in cache.disk.storage:
value = cache.disk.storage[key] value = cache.disk.storage[key]
if isinstance(value, dict): if isinstance(value[1], dict):
disk['hits'] = value['hit_total'] - value['misses'] disk['hits'] = value[1]['hit_total'] - value[1]['misses']
disk['misses'] = value['misses'] disk['misses'] = value[1]['misses']
try: try:
disk['ratio'] = disk['hits'] * 100 / value['hit_total'] disk['ratio'] = disk['hits'] * 100 / value[1]['hit_total']
except (KeyError, ZeroDivisionError): except (KeyError, ZeroDivisionError):
disk['ratio'] = 0 disk['ratio'] = 0
else: else:
+5 -5
View File
@@ -137,8 +137,8 @@
<h4>{{=T("Overview")}}</h4> <h4>{{=T("Overview")}}</h4>
<p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p> <p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p>
{{if total['entries'] > 0:}} {{if total['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses})", <p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict(ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}} dict( ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}}
</p> </p>
<p> <p>
{{=T("Size of cache:")}} {{=T("Size of cache:")}}
@@ -155,7 +155,7 @@
{{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}} dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle();')}} {{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="all_keys"> <div class="hidden" id="all_keys">
{{=total['keys']}} {{=total['keys']}}
</div> </div>
@@ -183,7 +183,7 @@
{{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}} dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle();')}} {{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="ram_keys"> <div class="hidden" id="ram_keys">
{{=ram['keys']}} {{=ram['keys']}}
</div> </div>
@@ -212,7 +212,7 @@
{{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}} dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}} {{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="disk_keys"> <div class="hidden" id="disk_keys">
{{=disk['keys']}} {{=disk['keys']}}
</div> </div>
+11 -10
View File
@@ -445,15 +445,16 @@ def ccache():
gae_stats['oldest'] = GetInHMS(time.time() - gae_stats['oldest_item_age']) gae_stats['oldest'] = GetInHMS(time.time() - gae_stats['oldest_item_age'])
total.update(gae_stats) total.update(gae_stats)
else: else:
for key, value in cache.ram.storage.iteritems(): # get ram stats directly from the cache object
if isinstance(value, dict): ram_stats = cache.ram.stats[request.application]
ram['hits'] = value['hit_total'] - value['misses'] ram['hits'] = ram_stats['hit_total'] - ram_stats['misses']
ram['misses'] = value['misses'] ram['misses'] = ram_stats['misses']
try: try:
ram['ratio'] = ram['hits'] * 100 / value['hit_total'] ram['ratio'] = ram['hits'] * 100 / ram_stats['hit_total']
except (KeyError, ZeroDivisionError): except (KeyError, ZeroDivisionError):
ram['ratio'] = 0 ram['ratio'] = 0
else:
for key, value in cache.ram.storage.iteritems():
if hp: if hp:
ram['bytes'] += hp.iso(value[1]).size ram['bytes'] += hp.iso(value[1]).size
ram['objects'] += hp.iso(value[1]).count ram['objects'] += hp.iso(value[1]).count
@@ -464,11 +465,11 @@ def ccache():
for key in cache.disk.storage: for key in cache.disk.storage:
value = cache.disk.storage[key] value = cache.disk.storage[key]
if isinstance(value, dict): if isinstance(value[1], dict):
disk['hits'] = value['hit_total'] - value['misses'] disk['hits'] = value[1]['hit_total'] - value[1]['misses']
disk['misses'] = value['misses'] disk['misses'] = value[1]['misses']
try: try:
disk['ratio'] = disk['hits'] * 100 / value['hit_total'] disk['ratio'] = disk['hits'] * 100 / value[1]['hit_total']
except (KeyError, ZeroDivisionError): except (KeyError, ZeroDivisionError):
disk['ratio'] = 0 disk['ratio'] = 0
else: else:
+5 -5
View File
@@ -137,8 +137,8 @@
<h4>{{=T("Overview")}}</h4> <h4>{{=T("Overview")}}</h4>
<p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p> <p>{{=T.M("Number of entries: **%s**", total['entries'])}}</p>
{{if total['entries'] > 0:}} {{if total['entries'] > 0:}}
<p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses})", <p>{{=T.M("Hit Ratio: **%(ratio)s%%** (**%(hits)s** %%{hit(hits)} and **%(misses)s** %%{miss(misses)})",
dict(ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}} dict( ratio=total['ratio'], hits=total['hits'], misses=total['misses']))}}
</p> </p>
<p> <p>
{{=T("Size of cache:")}} {{=T("Size of cache:")}}
@@ -155,7 +155,7 @@
{{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("Cache contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}} dict(hours=total['oldest'][0], min=total['oldest'][1], sec=total['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle();')}} {{=BUTTON(T('Cache Keys'), _onclick='jQuery("#all_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="all_keys"> <div class="hidden" id="all_keys">
{{=total['keys']}} {{=total['keys']}}
</div> </div>
@@ -183,7 +183,7 @@
{{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("RAM contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}} dict(hours=ram['oldest'][0], min=ram['oldest'][1], sec=ram['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle();')}} {{=BUTTON(T('RAM Cache Keys'), _onclick='jQuery("#ram_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="ram_keys"> <div class="hidden" id="ram_keys">
{{=ram['keys']}} {{=ram['keys']}}
</div> </div>
@@ -212,7 +212,7 @@
{{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.", {{=T.M("DISK contains items up to **%(hours)02d** %%{hour(hours)} **%(min)02d** %%{minute(min)} **%(sec)02d** %%{second(sec)} old.",
dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}} dict(hours=disk['oldest'][0], min=disk['oldest'][1], sec=disk['oldest'][2]))}}
</p> </p>
{{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle();')}} {{=BUTTON(T('Disk Cache Keys'), _onclick='jQuery("#disk_keys").toggle().toggleClass( "hidden" );')}}
<div class="hidden" id="disk_keys"> <div class="hidden" id="disk_keys">
{{=disk['keys']}} {{=disk['keys']}}
</div> </div>