Skip to content

Instantly share code, notes, and snippets.

@brescia123
Last active August 29, 2015 14:17
Show Gist options
  • Save brescia123/c9343b364b5d4ee9bfdf to your computer and use it in GitHub Desktop.
Save brescia123/c9343b364b5d4ee9bfdf to your computer and use it in GitHub Desktop.
A script for collecting data aggregates from multiple simulations run with aDock - affear.github.io/adock
from firebase import firebase
import json
bifrost = firebase.FirebaseApplication('https://bifrost.firebaseio.com/', None)
sims = bifrost.get('/sims', None)
avgs = {}
for sim in sims:
proxies = sim['proxies']
for proxy in proxies:
proxy_addr = proxy['address']
proxy_addr = str(proxy_addr).replace(':', '-').replace('.', '_')
if proxy_addr not in avgs:
avgs[proxy_addr] = {
'no_sims' : 0,
'no_failures' : 0,
'aggr_no_active_cmps' : 0,
'aggr_r_local_gb' : 0,
'aggr_r_memory_mb' : 0,
'aggr_r_vcpus' : 0
}
avgs[proxy_addr]['no_sims'] += 1
proxy_no_sims = avgs[proxy_addr]['no_sims']
avgs[proxy_addr]['no_failures'] = (avgs[proxy_addr]['no_failures'] * (proxy_no_sims - 1) + proxy['no_failures']) / proxy_no_sims
avgs[proxy_addr]['aggr_no_active_cmps'] = (avgs[proxy_addr]['aggr_no_active_cmps'] * (proxy_no_sims - 1) + proxy['snapshots'][-1]['aggr_no_active_cmps']) / proxy_no_sims
avgs[proxy_addr]['aggr_r_local_gb'] = (avgs[proxy_addr]['aggr_r_local_gb'] * (proxy_no_sims - 1) + proxy['snapshots'][-1]['aggr_r_local_gb']) / proxy_no_sims
avgs[proxy_addr]['aggr_r_memory_mb'] = (avgs[proxy_addr]['aggr_r_memory_mb'] * (proxy_no_sims - 1) + proxy['snapshots'][-1]['aggr_r_memory_mb']) / proxy_no_sims
avgs[proxy_addr]['aggr_r_vcpus'] = (avgs[proxy_addr]['aggr_r_vcpus'] * (proxy_no_sims - 1) + proxy['snapshots'][-1]['aggr_r_vcpus']) / proxy_no_sims
print avgs
bifrost.put('/', 'aggr_avgs', avgs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment