summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/restful/api/perf.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/pybind/mgr/restful/api/perf.py')
-rw-r--r--src/pybind/mgr/restful/api/perf.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/pybind/mgr/restful/api/perf.py b/src/pybind/mgr/restful/api/perf.py
new file mode 100644
index 00000000..4224599f
--- /dev/null
+++ b/src/pybind/mgr/restful/api/perf.py
@@ -0,0 +1,27 @@
+from pecan import expose, request, response
+from pecan.rest import RestController
+
+from restful import context
+from restful.decorators import auth, lock, paginate
+
+import re
+
+class Perf(RestController):
+ @expose(template='json')
+ @paginate
+ @auth
+ def get(self, **kwargs):
+ """
+ List all the available performance counters
+
+ Options:
+ - 'daemon' -- filter by daemon, accepts Python regexp
+ """
+
+ counters = context.instance.get_all_perf_counters()
+
+ if 'daemon' in kwargs:
+ _re = re.compile(kwargs['daemon'])
+ counters = {k: v for k, v in counters.items() if _re.match(k)}
+
+ return counters