gecko-dev/toolkit/components/telemetry/gen-histogram-bucket-ranges.py
Georg Fritzsche 85c688eba8 Bug 1149754 - Part 1: Rename TelemetryPing.jsm to TelemetryController.jsm. r=vladan
--HG--
rename : toolkit/components/telemetry/TelemetryPing.jsm => toolkit/components/telemetry/TelemetryController.jsm
rename : toolkit/components/telemetry/tests/unit/test_TelemetryPing.js => toolkit/components/telemetry/tests/unit/test_TelemetryController.js
rename : toolkit/components/telemetry/tests/unit/test_TelemetryPingBuildID.js => toolkit/components/telemetry/tests/unit/test_TelemetryControllerBuildID.js
rename : toolkit/components/telemetry/tests/unit/test_TelemetryPingShutdown.js => toolkit/components/telemetry/tests/unit/test_TelemetryControllerShutdown.js
rename : toolkit/components/telemetry/tests/unit/test_TelemetryPing_idle.js => toolkit/components/telemetry/tests/unit/test_TelemetryController_idle.js
2015-04-27 18:07:58 +02:00

59 lines
1.8 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 re
import histogram_tools
import json
from collections import OrderedDict
# Keep this in sync with TelemetryController.
startup_histogram_re = re.compile("SQLITE|HTTP|SPDY|CACHE|DNS")
def main(argv):
filenames = argv
all_histograms = OrderedDict()
for histogram in histogram_tools.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.
histogram_tools.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 histogram_tools.DefinitionException:
continue
all_histograms.update({ name: parameters });
if startup_histogram_re.search(name) is not None:
all_histograms.update({ "STARTUP_" + name: parameters })
print json.dumps({ 'histograms': all_histograms})
main(sys.argv[1:])