async def add(self, rule, kwargs=None):
        """
        Increments the counter for the given *rule* and *kwargs*.

        If this pair of *rule* and *kwargs* doesn't already have a counter, it
        is created.

        *rule* is the :class:`rule.Rule` instance that got the match.

        *kwargs* is an optional dict of vars captured by the
        :class:`filter.Filter` that match the log entry.
        """
        index = self[rule.name].increment(kwargs)

        if self[rule.name][index] >= rule.limit:
            await rule.action.run(kwargs)
Increments the counter for the given *rule* and *kwargs*.

        If this pair of *rule* and *kwargs* doesn't already have a counter, it
        is created.

        *rule* is the :class:`rule.Rule` instance that got the match.

        *kwargs* is an optional dict of vars captured by the
        :class:`filter.Filter` that match the log entry.