packages feed

gc-monitoring-wai-0.1: munin/ghc_gcstats

#!/usr/bin/env python
import simplejson as json

sampledata = json.loads('{"counters": {"gc_wall_seconds":718.84982,"mutator_wall_seconds":18593.219972,"mutator_cpu_seconds":47.982996,"gc_cpu_seconds":708.656291,"num_bytes_usage_samples":3857,"cumulative_bytes_used":372753355456,"bytes_copied":371706782944,"bytes_allocated":44868015464,"num_gcs":86790,"cpu_seconds":756.643287,"wall_seconds":19312.069792},"gauges":{"par_max_bytes_copied":0,"current_bytes_used":104068488,"par_avg_bytes_copied":0,"peak_megabytes_allocated":302,"current_bytes_slop":0,"max_bytes_slop":1711464,"max_bytes_used":117574008}}')

if __name__ == '__main__':
    import sys
    args = len(sys.argv)
    if args==2 and sys.argv[1] == 'autoconf':
        print 'yes'
    elif args==2 and sys.argv[1] == 'config':
        print '''\
graph_title ghc gc stats
graph_vlabel count
graph_category ghc
'''
        for t in ['counters', 'gauges']:
            type = t[:-1].upper()
            for field in sampledata[t].keys():
                print '%(field)s.label %(field)s'%locals()
                print '%(field)s.type %(type)'%locals()

        print 'graph_args --base 1000'
    else:
        import urllib2
        data = json.loads(urllib2.urlopen('http://127.0.0.1:9002/stats').read())
        for t in ['counters', 'gauges']:
            for k,v in data[t].items():
                print '%s.value %s'%(k, v)