#!/usr/bin/env python # Copyright 2016 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import argparse import json import os import sys sys.path.insert(1, os.path.join(os.path.dirname(__file__), '..')) from tracing.metrics import metric_runner def Main(argv): parser = argparse.ArgumentParser( description='Runs metrics on local traces') parser.add_argument('metric', help='A metric from tracing/metrics/') parser.add_argument('trace_file_or_dir', help='A trace file, or a dir containing trace files') args = parser.parse_args(argv[1:]) metric = args.metric if os.path.isdir(args.trace_file_or_dir): trace_dir = args.trace_file_or_dir traces = [os.path.join(trace_dir, trace) for trace in os.listdir(trace_dir)] else: traces = [args.trace_file_or_dir] results = {} for trace in traces: results[trace] = metric_runner.RunMetric(trace, metric).AsDict() print json.dumps(results, indent=2, sort_keys=True, separators=(',', ': ')) if __name__ == '__main__': sys.exit(Main(sys.argv))