def query_metric_definitions(self, metric_type=None, id_filter=None, **tags):
        """
        Query available metric definitions.

        :param metric_type: A MetricType to be queried. If left to None, matches all the MetricTypes
        :param id_filter: Filter the id with regexp is tag filtering is used, otherwise a list of exact metric ids
        :param tags: A dict of tag key/value pairs. Uses Hawkular-Metrics tag query language for syntax
        """
        params = {}

        if id_filter is not None:
            params['id'] = id_filter

        if metric_type is not None:
            params['type'] = MetricType.short(metric_type)

        if len(tags) > 0:
            params['tags'] = self._transform_tags(**tags)

        return self._get(self._get_url(), **params)
Query available metric definitions.

        :param metric_type: A MetricType to be queried. If left to None, matches all the MetricTypes
        :param id_filter: Filter the id with regexp is tag filtering is used, otherwise a list of exact metric ids
        :param tags: A dict of tag key/value pairs. Uses Hawkular-Metrics tag query language for syntax