def __init__(self, name, group, description=None, tags=None):
        """
        Arguments:
            name (str): The name of the metric.
            group (str): The logical group name of the metrics to which this
                metric belongs.
            description (str, optional): A human-readable description to
                include in the metric.
            tags (dict, optional): Additional key/val attributes of the metric.
        """
        if not (name and group):
            raise ValueError('name and group must be non-empty.')
        if tags is not None and not isinstance(tags, dict):
            raise ValueError('tags must be a dict if present.')

        self._name = name
        self._group = group
        self._description = description
        self._tags = copy.copy(tags)
        self._hash = 0

        Arguments:
            name (str): The name of the metric.
            group (str): The logical group name of the metrics to which this
                metric belongs.
            description (str, optional): A human-readable description to
                include in the metric.
            tags (dict, optional): Additional key/val attributes of the metric.
        
kafka/metrics/metric_name.py