summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/restful/api/perf.py
blob: 4224599f66995ae480cfd20855064ddd8cd05a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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