blob: ef532c6d0df68ffd7e067e614544953930feef94 [file] [log] [blame]
# 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 json
import os
import tracing_project
import vinn
_DISCOVER_CMD_LINE = os.path.join(
os.path.dirname(__file__), 'discover_cmdline.html')
def DiscoverMetrics(modules_to_load):
""" Returns a list of registered metrics.
Args:
modules_to_load: a list of modules (string) to be loaded before discovering
the registered metrics.
"""
assert isinstance(modules_to_load, list)
project = tracing_project.TracingProject()
all_source_paths = list(project.source_paths)
res = vinn.RunFile(
_DISCOVER_CMD_LINE, source_paths=all_source_paths,
js_args=modules_to_load)
if res.returncode != 0:
raise RuntimeError('Error running metrics_discover_cmdline: ' + res.stdout)
else:
return [str(m) for m in json.loads(res.stdout)]