Index: tracing/tracing/metrics/all_histogram_names.py |
diff --git a/tracing/tracing/metrics/all_histogram_names.py b/tracing/tracing/metrics/all_histogram_names.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a9847dc6f4bff0e2fefab39db8c6c197fd0d7fd1 |
--- /dev/null |
+++ b/tracing/tracing/metrics/all_histogram_names.py |
@@ -0,0 +1,33 @@ |
+# Copyright 2017 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 |
+ |
+ |
+_ALL_HISTOGRAM_NAMES_CMD_LINE = os.path.join( |
+ os.path.dirname(__file__), 'all_histogram_names_cmdline.html') |
+ |
+ |
+def AllHistogramNames(metrics): |
+ """ Returns a list of registered metrics. |
+ |
+ Args: |
+ metrics: a list of modules (string) to be loaded before discovering |
+ the registered metrics. |
+ """ |
+ assert isinstance(metrics, list) |
+ project = tracing_project.TracingProject() |
+ res = vinn.RunFile( |
+ _ALL_HISTOGRAM_NAMES_CMD_LINE, source_paths=list(project.source_paths), |
+ js_args=metrics) |
+ |
+ if res.returncode != 0: |
+ raise RuntimeError('Error running all_histogram_names_cmdline: ' + |
+ res.stdout) |
+ else: |
+ return [str(m) for m in json.loads(res.stdout)] |