def METHOD_NAME(self, signal):
    # type: (Signal) -> None
    if signal.state == SignalState.SKIP_COND:
        meter.increment("skip", tags={"cause": "cond", "probe_id": signal.probe.probe_id})
    elif signal.state in {SignalState.SKIP_COND_ERROR, SignalState.COND_ERROR}:
        meter.increment("skip", tags={"cause": "cond_error", "probe_id": signal.probe.probe_id})
    elif signal.state == SignalState.SKIP_RATE:
        meter.increment("skip", tags={"cause": "rate", "probe_id": signal.probe.probe_id})
    elif signal.state == SignalState.DONE:
        meter.increment("signal", tags={"probe_id": signal.probe.probe_id})
    if (
        isinstance(signal, LogSignal)
        and signal.state in {SignalState.DONE, SignalState.COND_ERROR}
        and signal.has_message()
    ):
        log.debug("Enqueueing signal %s", signal)
        # This signal emits a log message
        self._enqueue(signal)
    else:
        log.debug(
            "Skipping signal %s (has message: %s)", signal, isinstance(signal, LogSignal) and signal.has_message()
        )