fune/toolkit/components/telemetry/gen-histogram-bucket-ranges.py
Ryan Leake b388f89fe4 Bug 1419761 - Rename 'histogram_tools.py' to 'parse_histograms.py'. r=Dexter
MozReview-Commit-ID: J8wM1OZbMxd

--HG--
rename : toolkit/components/telemetry/histogram_tools.py => toolkit/components/telemetry/parse_histograms.py
extra : rebase_source : 5f81b85e097194c12d6c91057cc24057b52a337d
2017-11-23 20:21:09 +00:00

53 lines
1.5 KiB
Python

#!/usr/bin/env python
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Write out detailed histogram information, including the ranges of the
# buckets specified by each histogram.
import sys
import parse_histograms
import json
from collections import OrderedDict
def main(argv):
filenames = argv
all_histograms = OrderedDict()
for histogram in parse_histograms.from_files(filenames):
name = histogram.name()
parameters = OrderedDict()
table = {
'boolean': '2',
'flag': '3',
'enumerated': '1',
'linear': '1',
'exponential': '0',
'count': '4',
}
# Use __setitem__ because Python lambdas are so limited.
parse_histograms.table_dispatch(histogram.kind(), table,
lambda k: parameters.__setitem__('kind', k))
if histogram.low() == 0:
parameters['min'] = 1
else:
parameters['min'] = histogram.low()
try:
buckets = histogram.ranges()
parameters['buckets'] = buckets
parameters['max'] = buckets[-1]
parameters['bucket_count'] = len(buckets)
except parse_histograms.DefinitionException:
continue
all_histograms.update({name: parameters})
print json.dumps({'histograms': all_histograms})
main(sys.argv[1:])