def METHOD_NAME(self, matches):
    # Matches is a list of match dictionaries.
    # It contains more than one match when the alert has
    # the aggregation option set
    zm = []
    for match in matches:
        if ':' not in match[self.timestamp_field] or '-' not in match[self.timestamp_field]:
            ts_epoch = int(match[self.timestamp_field])
        else:
            try:
                ts_epoch = int(datetime.strptime(match[self.timestamp_field], self.timestamp_strptime)
                               .timestamp())
            except ValueError:
                ts_epoch = int(datetime.strptime(match[self.timestamp_field], '%Y-%m-%dT%H:%M:%S%z')
                               .timestamp())
        if self.zbx_host_from_field:
            zbx_host = lookup_es_key(match, self.rule["zbx_host"])
        else:
            zbx_host = self.zbx_host
        zm.append(ZabbixMetric(host=zbx_host, key=self.zbx_key, value='1', clock=ts_epoch))
    try:
        response = ZabbixSender(zabbix_server=self.zbx_sender_host, zabbix_port=self.zbx_sender_port).send(zm)
        if response.failed:
            if self.zbx_host_from_field and not zbx_host:
                elastalert_logger.warning("Missing term '%s' or host's item '%s', alert will be discarded"
                                          % (self.zbx_host, self.zbx_key))
            else:
                elastalert_logger.warning("Missing zabbix host '%s' or host's item '%s', alert will be discarded"
                                          % (zbx_host, self.zbx_key))
        else:
            elastalert_logger.info("Alert sent to '%s:%s' zabbix server, '%s' zabbix host, '%s' zabbix host key"
                                   % (self.zbx_sender_host, self.zbx_sender_port, zbx_host, self.zbx_key))
    except Exception as e:
        raise EAException("Error sending alert to Zabbix: %s" % e)